如何处理selenium webdriver中的org.openqa.selenium.UnhandledAlertException

时间:2016-02-08 12:50:01

标签: selenium selenium-webdriver

执行脚本时弹出窗口:

  

存在模式对话框:此页面上的脚本可能正忙,或者可能正在运行   已经停止响应。您现在可以停止脚本,也可以   继续查看脚本是否完整。

你能否提一下如何通过点击继续按钮来处理这个问题。请查看下面的网址以查看截图 http://i.stack.imgur.com/eXXFO.png

3 个答案:

答案 0 :(得分:2)

这是因为驱动程序达到警报时的默认行为。默认行为 - “接受”,因此警报自动关闭。这就是switchTo().alert()无法找到它的原因。

在创建desirecapabilities时,您可以对其进行修改。

DesiredCapabilities dc = new DesiredCapabilities();
dc.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR, UnexpectedAlertBehaviour.IGNORE);
WebDriver driver = new FirefoxDriver(dc);

要处理,

// untill timeout
try {  
   Alert alt = driver.switchTo().alert();
   alt.accept();
} catch(NoAlertPresentException noe) {
   // no alert.
}

答案 1 :(得分:0)

尝试在Firefox配置文件中设置以下值 -

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("dom.max_chrome_script_run_time", 0);
profile.setPreference("dom.max_script_run_time",  0); 
WebDriver driver = new FirefoxDriver(profile);

答案 2 :(得分:0)

尝试以下方法。通过Web URL截屏时,这对我来说非常有用。

                        Alert alert = driver.switchTo().alert();
                        String alertText = alert.getText();
                        System.out.println("ERROR: (ALERT BOX DETECTED) - ALERT MSG : " + alertText);
                        alert.accept();
                        File outputFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
                        String imageDetails = "C://Images";
                        File screenShot = new File(imageDetails).getAbsoluteFile();
                        FileUtils.copyFile(outputFile, screenShot);
                        System.out.println("Screenshot saved: {}" + imageDetails);
                        driver.close();