让Selenium选择特定的下拉菜单PYTHON3

时间:2019-02-21 02:19:34

标签: python selenium drop-down-menu html-select

我需要Selenium选择从抓取中获得的VALUE菜单。 这是下拉菜单的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 :(得分:2)

您需要创建一个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文档以查看更多选择选项。

答案 1 :(得分:1)

您应该使用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

让我知道是否可行。