Заставьте Selenium выбрать выпадающее меню PYTHON3 - PullRequest
0 голосов
/ 21 февраля 2019

Мне нужно, чтобы Selenium выбрал меню со значением, которое я получил при сканировании.Вот фрагмент HTML-кода выпадающего меню:

<select class="graySelect" name="sch_bub_nm" id="sch_bub_nm" 
title="Case Number" onchange="onChangeBub();">
<option value="000100">Case1</option>
<option value="000200">Case2</option>
<option value="000201">Case3</option>
.
.
.

Вот код, который я написал до сих пор:

def MenuChoose():
   driver.find_element_by_css_selector('#sch_bub_nm').click()
   driver.find_element_by_xpath("//*[@id="sch_bub_nm"]/option[1]")

Как видите, я попытался выбрать меню,и я застрял, поскольку xpath не показал значения, на которое я могу направить код.

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Вам необходимо создать элемент select для взаимодействия с ним.

from selenium.webdriver.support.ui import Select

select = Select(driver.find_element_by_css_selector('#sch_bub_nm'))
select.select_by_index(1)  # Choose the position you want

Проверьте документацию selenium-python , чтобы увидеть больше опций для выбора.

0 голосов
/ 21 февраля 2019

Вы должны использовать Select, чтобы получить раскрывающееся значение.Я дал 3 варианта выбора значения.

from selenium.webdriver.support.select import Select
select=Select(driver.find_element_by_id("sch_bub_nm"))
select.select_by_index(1) #select index value
select.select_by_visible_text("Case2") # select visible text
select.select_by_value("000201") # Select option value

Дайте мне знать, если это работает.

...