Я использую ниже для ожидания до завершения загрузки загрузчика ajax
var wait = new WebDriverWait(BrowserFactory.Driver, TimeSpan.FromSeconds(60));
wait.Until(d => (bool) (d as IJavaScriptExecutor).ExecuteScript(
"return (window.jQuery != undefined) && (jQuery.active == 0)"));
Но я получаю
«Ошибка: OpenQA.Selenium .WebDriverTimeoutException: прошло через 60 секунд "Попробуйте js ниже:
var result = true; try { result = (typeof jQuery != 'undefined') ? jQuery.active == 0 : true } catch (e) {}; return result;
Это код Java, но логический же:
WebDriver driver = WebDriverRunner.getWebDriver ();
new WebDriverWait(driver, 20).until(d ->
{
try{
return (boolean) ((JavascriptExecutor) d).executeScript("var result = true; try { result = (typeof jQuery != 'undefined') ? jQuery.active == 0 : true } catch (e) {}; return result;"));
}
catch (Exception e) {
System.out.println("Error: " + e.getMessage());
}
});