无法在网站上使用 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