Python Selenium 页面上所有元素的 NoSuchElementException

NoSuchElementException on all elements on page with Python Selenium

设置

我正在尝试使用 Python + Selenium 登录 website

我加载网站的代码是,

browser = webdriver.Firefox(
    executable_path='/mypath/to/geckodriver')

url = 'https://secure6.e-boekhouden.nl/bh/'
browser.get(url)

问题

Selenium 找不到包含帐户和密码字段的元素。

例如,对于字段 'Gebruikersnaam',

browser.find_element_by_id('txtEmail')
browser.find_element_by_xpath('//*[@name="txtEmail"]')
browser.find_element_by_class_name('INPUTBOX')

都给NoSuchElementException: Unable to locate element

更糟糕的是,Selenium 无法在页面上找到 body 元素,

browser.find_element_by_xpath('/html/body')

给出 NoSuchElementException: Unable to locate element: /html/body.


我猜页面上的某些内容要么阻止了 Selenium(可能是 url 中的 'secure6'),要么是以 language/form Selenium 无法处理的方式编写的。

有什么建议吗?

所有元素都在框架内。因此,它抛出 No Such Element 异常。请尝试在执行以下所有操作之前切换到框架。

browser = webdriver.Firefox(
    executable_path='/mypath/to/geckodriver')

url = 'https://secure6.e-boekhouden.nl/bh/'
browser.get(url)

browser.switch_to.frame(browser.find_element_by_id("mainframe"))

browser.find_element_by_id('txtEmail')
browser.find_element_by_xpath('//*[@name="txtEmail"]')
browser.find_element_by_class_name('INPUTBOX')