WebDriver关闭弹出窗口

我有网页驱动程序测试,因为弹出窗口出现而被卡住了。 我怎么在测试中关闭它?

这是我的代码:

@Test public void canGoToSomePage() throws Exception { final WebDriver webDriver = getFireFoxDriver(); webDriver.get(getRouteAbsolute("Application.index")); WebElement someElement = webDriver.findElement(By.id("some_id_here")); someElement.click(); // HERE I GOT AUTHENTICATION POP-UP I WANT TO CLOSE assertNotNull(webDriver.findElement(By.id("some_2_id"))); } 

试试这个,

  Alert alert = driver.switchTo().alert(); alert.accept(); 

我之前从未使用过警报,我曾经使用JS沉默弹出。 你也可以这样做,但我猜警报将是第一选择。

编辑#1

以下是如何使用Java脚本静默弹出窗口。 请注意,必须在导致弹出窗口显示的单击之前执行它。 根据您的弹出窗口是否提醒,确认或提示,您将必须使用如下所示的内容。

 ((JavascriptExecutor)driver).executeScript("window.alert = function(msg) { return true; }"); ((JavascriptExecutor)driver).executeScript("window.confirm = function(msg) { return true; }"); ((JavascriptExecutor)driver).executeScript("window.prompt = function(msg) { return true; }");