我的网络驱动程序测试因出现弹出窗口而卡住。我如何在测试中关闭它?
这是我的代码:
@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();
我以前从未使用过alert,我以前使用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; }");
关于java - WebDriver 关闭弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8034497/