python selenium无法处理具有两个文本输入的Alert-popup

时间:2019-05-14 09:00:15

标签: python python-3.x selenium selenium-chromedriver alert

我正在尝试将我的登录过程自动化到我的家庭路由器,并且我想在警报消息中输入用户名和密码,很遗憾,我不能这样做

经过研究后,我发现我可以使用来接受警报

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

2 个答案:

答案 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

有关更多信息,请阅读thisthis alsoSelenium Python Authenticating browser login pupup dialog at a HTTPS website

答案 1 :(得分:0)

看起来像个错误,Chrome Bug

尝试使用FireFox