如何使用Selenium& amp;处理浏览器登录弹出窗口Java的

时间:2017-11-08 07:14:29

标签: java selenium authentication popup alert

我尝试自动化的网站有一个身份验证弹出窗口,当有人访问它时会显示。我尝试了以下代码,但Chrome立即在代码的switchTo()行上抛出没有警报存在异常。 Firefox似乎没有工作。我目前正在使用Selenium 3.6.0以及这些浏览器的最新二进制文件。有人可以帮帮我吗?

driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.get("https://staging.brightsociety.com/");
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.alertIsPresent());
Alert alert = driver.switchTo().alert();
alert.authenticateUsing(new UserAndPassword(username, password));
driver.switchTo().defaultContent();

http://staging.brightsociety.com

https://i.stack.imgur.com/uMsbm.png

2 个答案:

答案 0 :(得分:0)

您需要检查或通过吗? 如果您需要传递,请将登录名和密码放在URL中。

http://username:password@your-web-site.com

答案 1 :(得分:0)

Selenium不通过switchto命令处理它,因为这是浏览器特定的而不是网站。

解决方案1:

driver.get(" http://username:password@url.com&#34);

但是这个方法的问题在于,当你遍历多个页面时,弹出窗口会一次又一次地出现,这也很难处理。

解决方案2 :(推荐)

AutoIt脚本,下载AutoIt here 并查找用于身份验证的脚本Pop here