为什么我不能关闭警报弹出窗口?

时间:2017-02-13 11:40:32

标签: java selenium selenium-webdriver webdriver

1。为什么我不能关闭Alert弹出窗口?

  1. 我已经尝试了警告等,它关闭了弹出窗口,但后来我得到奇怪的测试,其中popup dosnt关闭/
  2. 第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());
        }
    }
    
    1. 上面的代码可以正常工作,但我得到了一个不会关闭的奇怪弹出窗口,并且测试将失败。

    2. 使用以下所需功能,但我在TestNG上收到错误,其中显示有“意外弹出窗口”,但代码仍然接受并关闭弹出窗口。

    3. 我的代码:

                      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);
      
    4. 有什么想法找到解决这个问题的方法吗? enter image description here 谢谢你的帮助

2 个答案:

答案 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 = () => {};