未处理的警报异常:模态对话存在(Selenium)

Vig*_*ran 6 javascript java firefox selenium

我正面临一个问题,其中我得到一个异常说UnhandledAlertException模态对话框存在,下面是一些跟踪

org.openqa.selenium.UnhandledAlertException:模态对话框存在:此页面,要求您确认您要离开 - 您所输入的数据可能无法saved.Build信息:版本:"2.41.0",修订版:"3192d8a6c4449dc285928ba024779344f5423c58" ,时间:'2014-03-27 11:29:39'系统信息:主机:'NCESEPBLRNRE16',ip:'172.16.137.213',os.name:'Windows XP',os.arch:'x86',os .version: '5.1',java.version:"1.6.0_26'Session ID:bda22089-a586-4cd8-b7ac-778c98581e11Driver信息:org.openqa.selenium.firefox.FirefoxDriverCapabilities [{平台= XP,acceptSslCerts =真,javascriptEnabled = TRUE,browserName =火狐,旋转=假,locationContextEnabled = TRUE,版本= 23.0,cssSelectorsEnabled = TRUE,databaseEnabled = TRUE,handlesAlerts = TRUE,browserConnectionEnabled = TRUE,nativeEvents =假,webStorageEnabled = TRUE,applicationCacheEnabled = TRUE,takesScreenshot =真在sun.reflect.NativeConstructorAccessorImpl.newInstance的sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)(NativeConstructorAccessorImpl.java:39)在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)在java.lang.reflect.Constructor.newInstance(Constructor.java:513)在org.openqa.selenium.remote.ErrorHandler. createThrowable(ErrorHandler.java:193)在org.openqa.selenium.remote.ErrorHandler.createUnhandledAlertException(ErrorHandler.java:174)在org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:141)在org.openqa .selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:595)org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:348)org.openqa.selenium.remote.RemoteWebDriver.findElementById(RemoteWebDriver.java) 1:389)在org.openqa.selenium.By $ ById.findElement(By.java:214)在org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:340)在com.amadeus.selenium.runner. SEPWebDriverWrapper.findElement(SEPWebDriverWrapper.java:141)

我搜索了一些解决方案并得到以下代码片段来处理这个问题

//现在出现警报 警报警报= driver.switchTo().alert(); alert.accept();

它工作正常,但警报弹出窗口出现在不同的实例(或不同的场景)中,无法在所有代码块中处理警报

请告诉我是否有任何常见的方法,我可以通过一些firefox配置文件设置或任何其他通用方法永久禁用此警报弹出窗口

我使用Selenium Java和浏览器作为Firefox

Rip*_*sim 5

写一个像这样的方法:

protected boolean isAlertPresent() {
        try {
          driver.switchTo().alert();
          return true;
        } catch (NoAlertPresentException e) {
          return false;
        }
      }
Run Code Online (Sandbox Code Playgroud)

调用上述方法以验证警报是否存在,如下所示:

if(isAlertPresent()){
            System.out.println(isAlertPresent());
            driver.switchTo().alert().accept();
        }
Run Code Online (Sandbox Code Playgroud)