首页 > 解决方案 > Python Selenium 下拉菜单选择

问题描述

要单击此页面上的“县”下拉菜单,我将此 XPath 与 Selenium 一起使用:

driver.find_elements_by_xpath('//div[@class="masterCustomDropDown"]/img')[3].click() 

由于有时它不会出错,也不会实际执行点击操作,因此我通常会检查下拉菜单中的元素是否可见,以查看是否执行了点击功能。有一个更好的方法吗?

谢谢!

标签: pythonseleniumselenium-webdriveriframewebdriverwait

解决方案


要单击下拉菜单,您需要:

  • 诱导WebDriverWait使所需的帧可用并切换到它
  • 诱导WebDriverWait使所需元素可点击,您可以使用以下解决方案:
  • 代码块:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    options = Options()
    options.add_argument("start-maximized")
    options.add_argument("disable-infobars")
    options.add_argument("--disable-extensions")
    driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
    driver.get("https://reports.blm.gov/report/LR2000/23/Pub-MC-Geo-Index")
    WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.ID,"dispReport")))
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//label[@title='County']//following::img[1]"))).click()
    
  • 浏览器快照:

国家


推荐阅读