2014-02-19 7 views
1

Я получаю доступ к нескольким веб-сайтам для загрузки данных клиента каждые 30 минут. Selenium (python) помогает мне автоматически заполнять всю входную информацию и контролировать все последующие шаги выбора/нажатия. С этой настройкой мне никогда не нужно вручную ничего нажимать. Однако с одной конкретной страницей https://services.ehousingplus.com/Default.htm я не могу заполнить «Имя пользователя»/«Пароль» и не могу нажать кнопку «Вход». Если факт, я не могу использовать browser.find_element_by_xpath() для управления любыми элементами на веб-странице вообще. Не уверен, использует ли он какую-либо специальную технологию. Пожалуйста помоги.Заполните регистрационную информацию с помощью selenium

Я использую код:

browser = webdriver.Firefox() 
browser.get("https://services.ehousingplus.com/Default.htm") 
browser.find_element_by_css_selector('#igtxtmyAuthentication_utxeUserName') 

Там есть уведомление на веб-странице говорят, что поддерживает только IE 8/9. Но я думаю, что ограничение происходит только на последующих этапах после входа в систему.

ответ

4

Элементы внутри рамки. Селен может получать доступ только к элементам в текущем кадре. Чтобы получить доступ к элементам входа в систему на этой странице, вам необходимо переключиться на фрейм, содержащий элементы.

Вы должны будете использовать:

browser.get("https://services.ehousingplus.com/Default.htm") 
browser.switch_to_frame("HDSApplications") 
browser.find_element_by_css_selector('#igtxtmyAuthentication_utxeUserName') 

Для того, чтобы перейти назад к верхней раме, вы должны будете использовать:

browser.switch_to_default_content() 
+0

Спасибо за ответ. Я новый HTML. Замечательно знать концепцию фрейма. – KLI

Смежные вопросы