я видел ожидания, в которых при помощи js проверяют все ли ajax запросы отработали. вот так: public void waitForAjax(int timeout) { final Wait<WebDriver> wait = new WebDriverWait(webDriver, timeout, defaultPolling()); wait.until(driver -> !((boolean) javaScript.call(ACTIVE_JQUERY)) && !((boolean) javaScript.call(ACTIVE_PRIME_FACES)) && !((boolean) javaScript.call(ACTIVE_WICKET)) ); } где ACTIVE_JQUERY = "if (typeof jQuery != 'undefined') " + "{return jQuery.active != 0;} " + "else {return false}"; ACTIVE_PRIME_FACES = "if (typeof PrimeFaces != 'undefined') " + "{return !PrimeFaces.ajax.Queue.isEmpty();} " + "else {return false;}"; ACTIVE_WICKET = "if (typeof Wicket == 'object') {" + "for (var c in Wicket.channelManager.channels) {" + " if (Wicket.channelManager.channels[c].busy) {" + " return true;" + " }" + "}" + "return false;" + "} else {return false;}";
Обсуждают сегодня