python - Python Selenium 下拉菜单选择
问题描述
要单击此页面上的“县”下拉菜单,我将此 XPath 与 Selenium 一起使用:
driver.find_elements_by_xpath('//div[@class="masterCustomDropDown"]/img')[3].click()
由于有时它不会出错,也不会实际执行点击操作,因此我通常会检查下拉菜单中的元素是否可见,以查看是否执行了点击功能。有一个更好的方法吗?
谢谢!
解决方案
要单击县下拉菜单,您需要:
- 诱导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()
浏览器快照:
推荐阅读
- android - 如何解决依赖冲突?
- c# - 使用 google play 游戏检索玩家排名
- bash - bash - 破折号案例到骆驼案例
- angular - 我们如何在角度 2 中动态加载第三方模块
- python - pymysql-ProgrammingError(1064, "你的 SQL 语法有错误;
- html - 使用 CSS 在 Bootstrap 中删除导航栏切换器汉堡图标的边框颜色
- android - Fabric:无法从 https://settings.crashlytics.com 检索设置
- php - php 缺少字符串 '%1800236%'
- vb.net - Visual Studio Community 2015 调试访问被拒绝
- php - 你知道为什么没有出现选择菜单、输入类型文本和文本区域表单元素吗?