如何使用Python(Selenium)在下拉菜单中查找值的数量

如何使用Python(Selenium)在下拉菜单中查找值的数量,python,selenium,xpath,dropdown,Python,Selenium,Xpath,Dropdown,我正在使用Python(Selenium)。我想通过循环红色圆圈中的下拉菜单来下载数据。我可以选择下拉菜单中的第四个 driver.find_element_by_xpath("""//*[@id="criteriaContainer"]/div[3]/div/select[1]/option[4]""").click() 但我想知道如何在下拉菜单中找到元素的总数,以便进行自动循环 谢谢 你能做一些类似于: select = driver.find_element_by_xpath("""//

我正在使用Python(Selenium)。我想通过循环红色圆圈中的下拉菜单来下载数据。我可以选择下拉菜单中的第四个

driver.find_element_by_xpath("""//*[@id="criteriaContainer"]/div[3]/div/select[1]/option[4]""").click()
但我想知道如何在下拉菜单中找到元素的总数,以便进行自动循环


谢谢

你能做一些类似于:

select = driver.find_element_by_xpath("""//*[@id="criteriaContainer"]/div[3]/div/select[1]""")
options = [x for x in select.find_elements_by_tag_name("option")]
# len(options) will give you the number of how many options are in select box

看看这个结构:

您会注意到,您可以像这样使用
xpath
指示符:
'//选项[@value=“1”]
,您需要将值
1
更改为从0循环到特定的最大值

在国际海事组织,你有两种方法:

  • 找到一种方法来获取这些选项标记的最大值编号,并遍历它们

  • 例如,创建一个从0到1.000的
    范围
    ,并使用
    try/except
    子句;如果选择器存在,则执行其他操作,
    中断
    循环

  • 例如:

    第一种方法:

    for i in range(max_value_of_options):
        do_something()
    
    for i in range(1000):
        try:
            do_something()
        except:
            break
    
    第二种方法:

    for i in range(max_value_of_options):
        do_something()
    
    for i in range(1000):
        try:
            do_something()
        except:
            break