首页 > 解决方案 > 无法使用硒(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()

我正在尝试单击下面屏幕截图上的 DATA 选项卡 在此处输入图像描述

标签: pythonseleniumwebdriverwait

解决方案


您可以修改脚本以直接打开此图:

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()

希望这有帮助,祝你好运。


推荐阅读