Selenium wait for Ajax content to load - universal approach

前端 未结 4 2084
清歌不尽
清歌不尽 2020-11-29 02:49

Is there a universal approach for Selenium to wait till all ajax content has loaded? (not tied to a specific website - so it works for every ajax website)

4条回答
  •  借酒劲吻你
    2020-11-29 03:42

    As Mark Collin described in his book "Mastering Selenium Webdriver", use JavascriptExecutor let you figure out whether a website using jQuery has finished making AJAX calls

    public class AdditionalConditions {
    
      public static ExpectedCondition jQueryAJAXCallsHaveCompleted() {
        return new ExpectedCondition() {
    
            @Override
            public Boolean apply(WebDriver driver) {
                return (Boolean) ((JavascriptExecutor) driver).executeScript("return (window.jQuery != null) && (jQuery.active === 0);");
            }
        };
      }
    }
    

提交回复
热议问题