Selenium身份验证弹出窗口阻止驱动程序关闭或退出

时间:2017-03-29 19:31:09

标签: c# selenium

我有一个selenium自动化任务设置来登录网站以检索一些信息。它在自动化中非常基础。只需登录并单击两个链接即可。我遇到了一个被证明是个问题的问题。

有问题的网站使用“需要身份验证”弹出窗口,该弹出窗口不是javascript弹出窗口,而是常规窗口身份验证弹出窗口。据我所知,这不是开箱即用的硒。

我正在使用“http://Username:Password@url.com”来访问该网站,但网站本身一直存在问题,它会在用户名/密码中随机提示我。有时我必须在手动导航时连续两次输入用户名/密码。

由于我的任务只是连续几个小时循环获取所需的信息,我想我会使用WebDriverWait来验证页面上是否存在元素。如果出现身份验证弹出窗口,则该元素不存在。无需关心此次运行,所以重新开始吧。

我遇到的问题是,当显示身份验证弹出窗口并且我达到超时限制时,我想关闭驱动程序/浏览器窗口,以便我可以重新启动任务。但是,driver.Close()和driver.Quit()没有做任何事情。浏览器保持打开状态,卸载的页面仍然存在登录弹出窗口。

无论如何我可以强迫关闭吗?将焦点切换到浏览器窗口然后强行关闭?

1 个答案:

答案 0 :(得分:0)

警报方法authenticateUsing()允许您跳过Http基本身份验证框。以下代码在Google Chrome上的Google Chrome上进行了测试。

Alert alert = driver.switchTo().alert();
alert.authenticateUsing(new UserAndPassword(Username, Password));

如果它不起作用,您可能想尝试这样做: https://stackoverflow.com/a/40757504/7071055