我正在尝试将我的登录过程自动化到我的家庭路由器,并且我想在警报消息中输入用户名和密码,很遗憾,我不能这样做
经过研究后,我发现我可以使用来接受警报
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()
答案 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个文本框吗?如果不是,则它们来自底层操作系统,而不是浏览器。