我需要选择第二个,第三个和最后一个下拉菜单selenium python。
我可以选择第一个下拉菜单,但不知道如何选择下一个下拉菜单。为了选择第一个下拉菜单,我使用了以下命令
from selenium import webdriver
driver =webdriver.Firefox()
driver.get("https://pmfby.gov.in")
driver.maximize_window()
em = driver.find_element_by_partial_link_text("Calculator")
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.select import Select
ActionChains(driver).click(em).perform()
Select(driver.find_element_by_tag_name("select")).select_by_index(2)
网页截图如下:enter image description here
请帮我解决这个问题。
由于下拉列表中的placeholder
文本对于页面上显示的所有下拉列表都相同,因此您可以创建一个通用函数来从下拉列表中选择值,并在需要的地方调用它。
你可以这样做:
def select_dropdown_value(dropdown_number):
select = Select(driver.find_element_by_xpath("(//select[@placeholder='Select Pack'])["+dropdown_number+"]")))
select.select_by_index(1)
现在你可以通过发送dropdown_number
来调用这个函数,它将从页面上的下拉列表中选择值。
您可以将此功能称为:
select_dropdown_value(1) or
select_dropdown_value(2)
在这里,您可以根据需要参数化索引号。
您可以只索引到表单控件类返回的webElements列表。这比xpath快。
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://pmfby.gov.in")
driver.maximize_window()
em = driver.find_element_by_partial_link_text("Calculator")
em.click()
dropDowns = driver.find_elements_by_css_selector('.form-control')
for i in range(len(dropDowns)):
dropDowns[i].click()