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')
设置
我正在尝试使用 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')