Почему Selenium Python Select возвращает пустой текст, если существует текст опции - PullRequest
0 голосов
/ 18 июня 2020

У меня есть select, который выглядит так:

<select data-origvalue="" multiple="multiple" name="project_9999" id="project_9999" style="display: none;">
<option value="1">Option1</option>
<option value="2">Option2</option>
</select>

Я пытаюсь просмотреть такие варианты ...

select = Select(driver.find_element_by_id('project_9999'))
print([o.text for o in select.options])

... что приводит к :

['','']

Почему текст каждой опции не отображается в списке? Как выбрать один из вариантов, чтобы они не были полностью видны?

1 Ответ

0 голосов
/ 18 июня 2020

Вам нужно перебирать дочерние элементы project_9999, а не родительский select элемент. Вы можете сделать это так:

options = driver.find_element(By.ID, 'project_9999')
for option in options.find_elements(By.TAG_NAME, 'option'):
    print(option.get_attribute('innerHTML'))

Возвращает

Option1
Option2

Возможно, вы захотите добавить обработку ошибок, если элемент не существует et c.

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