如何使用selenium python选择下一个下拉菜单

问题描述 投票:0回答:2

我需要选择第二个,第三个和最后一个下拉菜单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

请帮我解决这个问题。

python selenium-webdriver drop-down-menu
2个回答
0
投票

由于下拉列表中的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)

在这里,您可以根据需要参数化索引号。


0
投票

您可以只索引到表单控件类返回的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()
© www.soinside.com 2019 - 2024. All rights reserved.