Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Клик на css selector option с использованием переменной

css-selectors
selenium
ruby
Теги: #<Tag:0x00007f7b638eee88> #<Tag:0x00007f7b638eeb68> #<Tag:0x00007f7b638ee820>

#1

Нужно кликнуть на элемент option, работает если делаю:

click 'option[value="77"]' 

Но мне надо кликнуть не на значение, а на регион. Получаю все значения из селектора и складываю их в массив(там список регионов, Москва, Питер, Астрахань и тд. не код региона. Далее проверяю, если в массиве есть нужный мне регион, нужно кликнуть на него.

region = "Москва"
if list.include?(region)
click !!!option[region]

сам элемент:

<option value="77">Москва</option>

(Vasiliy Rakshin) #2

С селектами надо работать как с объектами Select
тогда вы сможете выбирать нужные значения по тексту или по валуе.

Select selDr = new Select(WebElement);
selDr.selectByVisibleText(text_to_select);


#3

Можно чуть подробнее на примере?


(Vasiliy Rakshin) #4

Смотрите какие есть методы у объекта типа селект, много чего полезного.


#5

Просто задавать вопросы, которые относятся к самой базовой документации по вебдрайверу не есть хорошо. Там не так уж и много материала, лучше один раз прочитать.
Ответ на ваш конкретный вопрос изложен тут. И пример на Ruby приложен.


#6

Решил проблему с помощью regexp, спасибо :slight_smile:

var = '29'
ff.select_list(:id => 'reg-region').select_value(/#{var}/)