Как я могу выбрать опцию из выпадающего меню в Python Selen? - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь выбрать вариант в следующем меню:

<select class="form-control" id="DayBirthDate" name="DayBirthDate"> . 
<option value="">--</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>


day1 = 5
day = driver.find_element_by_id('DayBirthDate')
for option in day.find_elements_by_tag_name('option'):
    if option.text == day1:
        option.click()

, но не могу найти решение для этого

Ответы [ 2 ]

0 голосов
/ 04 октября 2019

Приведенное выше решение не работает, потому что вы объявляете значение day1 =5, которое является целочисленным значением, а при возврате значения option.text это строковое значение, поэтому код не может сравнивать эти значения.

Изменитьдо day1 ='5'

day1 ='5'
day = driver.find_element_by_id('DayBirthDate')
for option in day.find_elements_by_tag_name('option'):        
    if option.text == day1:
        option.click()
0 голосов
/ 04 октября 2019

Ваш HTML имеет выбор для выпадающего списка, поэтому используйте сам класс Selenium Select вместо стандартного скрипта

Пример:

select = Select(driver.find_element_by_id('DayBirthDate'))

# select by visible text
select.select_by_visible_text('1')

# select by value 
select.select_by_value('1')

# select by index
select.select_by_index(1)

Используйте любой, он будет работать для вас

Источник:

Как выбрать значение параметра раскрывающегося меню с помощью Selenium (Python)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...