Index: ssts-web/src/test/java/test/forgon/disinfectsystem/selenium/tools/JSWaiter.java =================================================================== diff -u -r19110 -r19286 --- ssts-web/src/test/java/test/forgon/disinfectsystem/selenium/tools/JSWaiter.java (.../JSWaiter.java) (revision 19110) +++ ssts-web/src/test/java/test/forgon/disinfectsystem/selenium/tools/JSWaiter.java (.../JSWaiter.java) (revision 19286) @@ -24,13 +24,18 @@ private final static Logger logger = Logger.getLogger(JSWaiter.class); private static WebDriver jsWaitDriver; - private static WebDriverWait jsWait; + private static Wait jsWait; private static JavascriptExecutor jsExec; // Get the driver from relevant test public static void setDriver(WebDriver driver) { jsWaitDriver = driver; - jsWait = new WebDriverWait(jsWaitDriver, 20); + jsWait = new FluentWait(jsWaitDriver) + .withTimeout(20000, TimeUnit.MILLISECONDS) + .pollingEvery(250, TimeUnit.MILLISECONDS) + .ignoring(JavascriptException.class); + + jsExec = (JavascriptExecutor) jsWaitDriver; } @@ -41,9 +46,16 @@ .executeScript("return jQuery.active") == 0); // Get JQuery is Ready - boolean jqueryReady = (Boolean) jsExec - .executeScript("return jQuery.active==0"); - + boolean jqueryReady = false; + // 捕获JavascriptException异常 + try{ + jqueryReady = (Boolean) jsExec + .executeScript("return jQuery.active==0"); + } + catch(JavascriptException e){ + e.printStackTrace(); + logger.debug(e.getMessage()); + } // Wait JQuery until it is Ready! if (!jqueryReady) { logger.debug("JQuery is NOT Ready!");