1。为什么我不能关闭Alert弹出窗口?
第3。我的代码:
public void closeAlertPopupBox() throws AWTException, InterruptedException {
try {
Alert alert = this.wait.until(ExpectedConditions.alertIsPresent());
alert.accept();
System.out.println("The popup has been successfully closed");
} catch (UnhandledAlertException f) {
Alert alert = this.driver.switchTo().alert();
alert.accept();
} catch (Exception e) {
System.out.println("Unable to close the popup");
Assert.assertFalse(true, "Unable to close the popup, Exception: " + e.getMessage());
}
}
上面的代码可以正常工作,但我得到了一个不会关闭的奇怪弹出窗口,并且测试将失败。
使用以下所需功能,但我在TestNG上收到错误,其中显示有“意外弹出窗口”,但代码仍然接受并关闭弹出窗口。
我的代码:
System.setProperty("webdriver.chrome.driver", Constant.CHROME_DRIVER_DIRECTORY);
DesiredCapabilities caps = DesiredCapabilities.chrome();
LoggingPreferences logPrefs = new LoggingPreferences();
logPrefs.enable(LogType.BROWSER, Level.ALL);
UnexpectedAlertBehaviour.ACCEPT);
caps.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);
webdriver = new ChromeDriver(caps);
答案 0 :(得分:1)
因为你只接受弹出窗口。要关闭弹出窗口,我们必须使用dismiss方法来提醒 请按照以下代码了解详情
Alert alert= driver.switchTo().alert();
alert.dismiss();
如果问题仍然存在,那么你可以尝试处理相同的问题,即
Alert alert= driver.switchTo().alert();
Thread.sleep(500)
alert.dismiss();
答案 1 :(得分:0)
解决方法是禁用弹出窗口作为驱动程序会话的开始。我的意思是您需要在当前浏览器上下文中调用下一个脚本(例如executeScript
-取决于框架):
document.alert = window.alert = alert = () => {};