我已经尝试了三种方式,只有第一种方式可以工作。 1.在网址前添加用户信息,这只是成功。
url_address = "http://username:passwd@abc.cde.com/"
browser = webdriver.Firefox()
browser.get(url_address)
2.第二种方法是使用.switch_to_alert()切换到弹出窗口 并使用send_keys()键入用户信息,直到send_key(Keys.TAB)使用它才能正常工作;它会将输入制造商TAB输入密码字段但是当send_key(&#34;密码&#34;)行,< strong>它跳回用户名字段,然后输入密码!我在下面制作了一个Demo gif链接 Demo with Key.TAB
browser = webdriver.Firefox()
browser.get(url_address)
WebDriverWait(browser,10).until(EC.alert_is_present(),"wait for alert pop out")
alert_window=browser.switch_to_alert()
alert_window.send_keys("username")
time.sleep(5)
alert_window.send_keys(Keys.TAB)
time.sleep(5)
alert_windows.send_keys("passwd")
time.sleep是为了知道TAB是否真的有效。 如果删除了相同的结果
更新11/14将send_keys更改为一行,它按预期工作 喜欢这个alert_window.send_keys(&#34;用户名&#34; + Keys.TAB +&#34; passwd&#34;)
3.第三种方法是使用alert_window.authenticate()但它返回
selenium.common.exceptions.WebDriverException:消息:POST / session / c7411dfa-5a0e-41e3-b8b3-e8f7d9dc9843 / alert / credentials与已知命令不匹配
有任何想法解决2和3的问题吗? 工具清单: python 3.6.2 硒 firefox 54.0.1(32位)