我正在尝试将我的登录过程自动化到我的家庭路由器,并且我想在警报消息中输入用户名和密码,很遗憾,我不能这样做
经过研究后,我发现我可以使用来接受警报
alert = driver.switch_to.alert alert.accept()
并将密钥发送到网络
使用称为send_keys()
但是我有两个文本框而不是一个
的问题from selenium import webdriver
driver = webdriver.Chrome()
driver.get("192.168.1.1")
#note i have both textboxes in the same alert
#and the alert popup once I request the page
alert = driver.switch_to.alert
alert.send_keys('admin')
alert.send_keys('admin')
alert.accept()
答案 0 :(得分:1)
我认为这是身份验证弹出窗口。我现在看到了您的屏幕截图,它的身份验证弹出窗口。请使用下面的代码,希望对您有用。
尝试:-
driver.get("https://UserName:Password@Example.com")
您可能会遇到三种弹出式窗口。
1)弹出网站,基本上可以轻松地操作它,因为您可以找到它的元素定位器,有时它是一个iframe,那么您也可以使用切换到iframe的方法。
2)第二个是弹出浏览器身份验证,如果您的浏览器弹出身份验证,则无需担心切换,您只需要通过URL作为https://<username>:<password>@<your-site-name>
传递身份验证凭据< / p>
3)第三是浏览器弹出窗口,浏览器弹出窗口很难处理,但是如果您看到的浏览器弹出窗口是正常的浏览器弹出窗口,则可以使用以下命令切换到该窗口。
>alert_obj = driver.switch_to.alert
有关更多信息,请阅读this和this also,Selenium Python Authenticating browser login pupup dialog at a HTTPS website
答案 1 :(得分:0)
看起来像个错误,Chrome Bug
尝试使用FireFox