无法在网站上使用 Selenium 定位元素
Unable to locate element with Selenium on a website
我正在尝试使用 selenium 访问某个网站并单击按钮加载数据然后下载 csv 文件,我尝试使用 id,Xpath,class 我仍然收到错误消息:任何提示会有所帮助。
下面是我的代码:
from selenium import webdriver
driver = webdriver.Chrome('chromedriver.exe')
driver.get('https://eatradingacademy.com/software/forex-historical-data/')
driver.find_element_by_id("webpushr-deny-button").click()
driver.find_element_by_class_name('text-center')
这是我遇到的错误:
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".text-center"}
(会话信息:chrome=91.0.4472.124)
我认为错误是由于您尝试单击的按钮被包裹在 iframe
内。
通常,您必须切换到 iframe
才能访问其中的元素。
尝试
driver.switch_to.frame(driver.find_element_by_id('data-app-frame'))
这会将 webdriver 切换到具有 id
data-app-frame
的 iframe
现在尝试使用 driver.find_element_by_id('btn-load-data')
点击您的按钮
这应该有效。
我在这里访问的是您在问题中尝试访问的同一个按钮。在问题中,您试图访问父 div
而不是 button
元素本身。建议访问实际元素而不是它的父元素
您可以了解有关帧切换的更多信息here
我正在尝试使用 selenium 访问某个网站并单击按钮加载数据然后下载 csv 文件,我尝试使用 id,Xpath,class 我仍然收到错误消息:任何提示会有所帮助。
下面是我的代码:
from selenium import webdriver
driver = webdriver.Chrome('chromedriver.exe')
driver.get('https://eatradingacademy.com/software/forex-historical-data/')
driver.find_element_by_id("webpushr-deny-button").click()
driver.find_element_by_class_name('text-center')
这是我遇到的错误:
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".text-center"}
(会话信息:chrome=91.0.4472.124)
我认为错误是由于您尝试单击的按钮被包裹在 iframe
内。
通常,您必须切换到 iframe
才能访问其中的元素。
尝试
driver.switch_to.frame(driver.find_element_by_id('data-app-frame'))
这会将 webdriver 切换到具有 id
data-app-frame
iframe
现在尝试使用 driver.find_element_by_id('btn-load-data')
这应该有效。
我在这里访问的是您在问题中尝试访问的同一个按钮。在问题中,您试图访问父 div
而不是 button
元素本身。建议访问实际元素而不是它的父元素
您可以了解有关帧切换的更多信息here