Как выбрать значение выпадающего меню без идентификатора с Selenium, используя Python? - PullRequest
0 голосов
/ 23 января 2020

Мне нужно выбрать элемент / элемент из выпадающего меню, в котором нет элемента id, используя Python и Selenium.

Часть кода HTML:

<mbo-transaction-mode-select mode="filters.mode" class="ng-isolate-scope">
    <select class="form-control input-sm ng-pristine ng-untouched ng-valid ng-empty" ng-model="mode" ng-options="value for (key,value) in vm.modes">
        <option value="" class="" selected="selected"></option>
        <option label="LIVE" value="string:LIVE">LIVE</option>
        <option label="TEST" value="string:TEST">TEST</option>
    </select>

Текущая опция, которую я нашел в Stackoverflow или Google, использовала метод Select , но эта опция использовала find_element_by_id , которого, к сожалению, у меня нет. Я пытался использовать:

select = Select(browser.find_element_by_xpath("//input[@ng-model='mode']"))
select.select_by_visible_text('LIVE')

Но это выдало ошибку:

selenium.common.exceptions.NoSuchElementException: Сообщение: Невозможно найти элемент: // input [@ng -model = 'mode']

Есть ли другой способ выбрать выпадающий список и один из его вариантов?

1 Ответ

2 голосов
/ 23 января 2020

Вам нужно исправить свой xpath, как здесь:

element = browser.find_element_by_xpath("//select[@ng-model='mode']")
driver.execute_script("arguments[0].scrollIntoView();", element)
select = Select(element)
select.select_by_visible_text('LIVE')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...