我每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。但我认为限制仅限于登录后的后续步骤。
答案 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()