使用selenium填写登录信息

时间:2014-02-19 17:47:33

标签: python selenium selenium-webdriver

我每30分钟访问一些网站下载客户端数据。 Selenium(python)帮助我自动填写所有登录信息并控制所有后续选择/点击步骤。通过这种设置,我不需要手动点击任何东西。但是,对于一个特定页面https://services.ehousingplus.com/Default.htm,我似乎无法填写“用户名”/“密码”,也无法单击“登录”按钮。事实上,我无法使用browser.find_element_by_xpath()来控制网页上的任何元素。不确定它是否使用任何特殊技术。请帮忙。

我使用代码:

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

网页上有一条通知说它只支持IE 8/9。但我认为限制仅限于登录后的后续步骤。

1 个答案:

答案 0 :(得分:4)

元素在框架内。 Selenium只能访问当前帧中的元素。要访问该页面上的登录元素,您需要切换到包含元素的框架。

您需要使用:

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()