如何处理具有两个文本输入的警报/弹出窗口?

时间:2019-05-14 10:39:40

标签: python python-3.x selenium selenium-webdriver

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

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

alert = driver.switch_to.alert alert.accept()

并使用名为send_keys()的方法将密钥发送到网络中

但是我有两个而不是一个文本框的问题

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("http://admin:admin@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.accept()

1 个答案:

答案 0 :(得分:1)

我也面临类似的问题。 driver.get(“ http://admin:admin@192.168.1.1”)应该实际上已经登录到URL,就像您已经在url中提到admin:admin作为用户名和密码一样。我相信您所获得的弹出窗口不是浏览器的一部分,而是来自底层操作系统的。因此不能使用硒与其相互作用。因此,默认情况下,用户名和密码会传递到url进行登录。 您无需进一步与auth窗口进行交互,因为它在url本身中进行了处理。 我提到了http://learn-automation.com/handle-windows-authentication-using-selenium-webdriver/

您能够检查弹出窗口的2个文本框吗?如果不是,则它们来自底层操作系统,而不是浏览器。