NoSuchElementException для всех элементов на странице с Python Selenium - PullRequest
0 голосов
/ 24 мая 2018

Настройка

Я пытаюсь зайти на веб-сайт , используя Python + Selenium.

Мой код для загрузки сайта:

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 (возможно, 'secure6' в URL), либо написан на языке / форме, которые Selenium не может обработать.

Есть предложения?

1 Ответ

0 голосов
/ 24 мая 2018

Все элементы находятся внутри рамки.Так что, это исключение Нет такого элемента.Пожалуйста, попробуйте переключиться на фрейм перед всеми действиями, как указано ниже.

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')
...