python - 无法使用硒(Python)定位元素
问题描述
我一直试图找到一个单击它的按钮,但无论我尝试什么,它都无法找到它。我已经尝试使用所有driver.find_element_by...
方法,但似乎没有任何效果
from selenium import webdriver
import time
driver = webdriver.Chrome(executable_path="/Users/shreygupta/Documents/ComputerScience/PythonLanguage/Automation/corona/chromedriver")
driver.get("https://ourworldindata.org/coronavirus")
driver.maximize_window()
time.sleep(5)
driver.find_element_by_css_selector("a[data-track-note='chart-click-data']").click()
解决方案
您可以修改脚本以直接打开此图:
driver.get("https://ourworldindata.org/grapher/total-cases-covid-19")
driver.maximize_window()
然后你可以添加implicitly_wait
而不是sleep
. 隐式等待告诉 WebDriver 在尝试查找任何不能立即可用的元素(或多个元素)时轮询 DOM 一段时间(来自 python 文档)。它会更快地工作,因为它会在找到元素后立即与它进行交互。
driver.implicitly_wait(5)
driver.find_element_by_css_selector("a[data-track-note='chart-click-data']").click()
希望这有帮助,祝你好运。
推荐阅读
- sql-server - SQL Server - 将前 5 个月的销售数据汇总到当月
- php - 在php数组中将科学记数法更改为十进制
- ruby - Ruby,将方法名称作为参数,然后将其消息传递给对象
- python - Tensorflow:无法从 tfrecord 中提取文件名
- php - 正确管理用于重定向的 php 会话
- angularjs - NVD3 折线图中的工具提示打滑
- php - 如何在不删除 php 文件的情况下清除 .txt 文件内容
- amazon-web-services - AWS Beanstalk Tomcat 和 Terraform
- javascript - 我应该使用事件监听器还是应该在 React 的生命周期方法中?
- excel - Excel 公式显示为“=#NULL”返回正确结果