如何使用Selenium和Java处理浏览器登录弹出窗口

我尝试自动化的网站有一个身份validation弹出窗口,当有人访问它时会出现。 我尝试了以下代码,但Chrome会立即在代码的switchTo()行上抛出没有警报存在的exception。 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

http://sofzh.miximages.com/java/uMsbm.png

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

解决方案1:

driver.get(“ http:// username:password@url.com ”);

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

解决方案2 :(推荐)

AutoIt脚本, 在此处下载AutoIt并在此处查找用于身份validationPopUp的脚本

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

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