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

Как с помощью Selenium FireFox выбрать значение из dropdown list?

locators
selenium
firefox
webdriver
Теги: #<Tag:0x00007f7b6540a730> #<Tag:0x00007f7b6540a5c8> #<Tag:0x00007f7b6540a460> #<Tag:0x00007f7b6540a258>

(Anatoliy Velikokhatskiy) #1

Как с помощью Selenium FireFox выбрать значение из dropdown list если он сделан как таблица и в нем нету ID?

< *input name="CountryId_input" class="k-input" type="text" autocomplete="off" title="" role="combobox" aria-expanded="false" placeholder="All" tabindex="0" aria-disabled="false" aria-readonly="false" aria-autocomplete="list" aria-owns="CountryId_listbox" aria-busy="false" aria-activedescendant="954e7ad9-55e5-41df-9b78-93fa0bb2e29b" style="width: 100%;"/> 

Это сама строка .

<*ul unselectable="on" class="k-list k-reset" tabindex="-1" aria-hidden="false" id="CountryId_listbox" aria-live="polite" data-role="staticlist" role="listbox">
<*li tabindex="-1" role="option" unselectable="on" class="k-item k-state-selected k-state-focused" data-offset-index="0" id="954e7ad9-55e5-41df-9b78-93fa0bb2e29b">All</li>
<*li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="1">Afghanistan</li>
<*li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="2">Albania</li>
<*li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="3">Algeria</li>
<*li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="4">American Samoa</li>
<*li tabindex="-1" role="option" unselectable="on" class="k-item" data-offset-index="5">Andorra</li>

а это Drop down list. Заранее спасибо.


(Ярослав Бойко) #2
//input[@name='CountryId_input']/ul[@id='CountryId_listbox']/li[2]

Xpath кликнет (Afghanistan) в зависимости что надо вибирать (можете написать подробнее и помогу)


(Vladislav Kulasov) #3

.findElement(By.id(“CountryId_input’]).click();
Тут возможно нужно либо даблклик или кнопку вывода списка нажать
потом
.findElement(By.xpath(”//ul[@id=‘CountryId_listbox’]/descendant::li[text()=’"+value+’"]")).click()

вообще по этому куску трудно что то сказать


(Ray Romanov) #4

Ошибочка, не[quote=“kulasovvlad, post:3, topic:10755”]

.findElement(By.id("CountryId_input']).click();

[/quote]
а:

.findElement(By.name("CountryId_input']).click();

(Vladislav Kulasov) #5

ага, есть такое


(Anatoliy Velikokhatskiy) #6

Нужно выбрать любую страну, но я использую чисто вебдрайвер в бразуере. Каким образом это можно сделать через select или type, или еще как то , подскажите пожалуйста.


(Ярослав Бойко) #7

Пишеш на robot framework?


(Anatoliy Velikokhatskiy) #8

Selenium IDE with FireFox.


(Anatoliy Velikokhatskiy) #9

Всем спасибо - путь можно указать через Xpath если нету ID.


(Ярослав Бойко) #10

да, можна я написал же

//input[@name='CountryId_input']/ul[@id='CountryId_listbox']/li[2]

(Anatoliy Velikokhatskiy) #11

сенкс


(Ярослав Бойко) #12

welcome


#13

Советую сделать как написал @kulasovvlad
//ul[@id=‘CountryId_listbox’]/descendant::li[2] в будущем будет меньше проблем.