Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用selenium(Python)定位元素_Python_Selenium_Webdriverwait - Fatal编程技术网

无法使用selenium(Python)定位元素

无法使用selenium(Python)定位元素,python,selenium,webdriverwait,Python,Selenium,Webdriverwait,我一直试图找到一个按钮,点击它,但无论我尝试它一直无法找到它。我尝试过使用所有的驱动程序。通过…方法查找元素,但似乎没有任何效果 from selenium import webdriver import time driver = webdriver.Chrome(executable_path="/Users/shreygupta/Documents/ComputerScience/PythonLanguage/Automation/corona/chromedriver") drive

我一直试图找到一个按钮,点击它,但无论我尝试它一直无法找到它。我尝试过使用所有的
驱动程序。通过…
方法查找元素,但似乎没有任何效果

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()
我正在尝试单击下面屏幕截图上的数据选项卡

以下是您可以使用的逻辑,脚本将最多等待30秒,等待
数据
菜单项,如果元素在30秒内出现,它将单击该元素

url = "https://ourworldindata.org/grapher/covid-confirmed-cases-since-100th-case"
driver.get(url)
driver.maximize_window()
wait = WebDriverWait(driver,30)
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,"a[data-track-note='chart-click-data']"))).click()

以下是您可以使用的逻辑,脚本将等待
数据
菜单项最多30秒,如果元素在30秒内出现,它将单击该元素

url = "https://ourworldindata.org/grapher/covid-confirmed-cases-since-100th-case"
driver.get(url)
driver.maximize_window()
wait = WebDriverWait(driver,30)
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,"a[data-track-note='chart-click-data']"))).click()

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

driver.get(“https://ourworldindata.org/grapher/total-cases-covid-19")
驱动程序。最大化_窗口()
然后您可以添加
隐式等待
而不是
睡眠
。隐式等待告诉WebDriver在尝试查找任何不立即可用的元素()时轮询DOM一段时间。它会工作得更快,因为它一找到元素就会与它交互

driver.implicitly_wait(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")
驱动程序。最大化_窗口()
然后您可以添加
隐式等待
而不是
睡眠
。隐式等待告诉WebDriver在尝试查找任何不立即可用的元素()时轮询DOM一段时间。它会工作得更快,因为它一找到元素就会与它交互

driver.implicitly_wait(5)
driver.find_element_by_css_selector("a[data-track-note='chart-click-data']").click()
希望这有帮助,祝你好运