【问题标题】:jQuery is undefined inside document.readyjQuery 在 document.ready 中未定义
【发布时间】:2016-03-02 00:51:34
【问题描述】:

如果 ajax 调用完成,我将检查我的 selenium 脚本,其中我首先检查文档是否准备好,然后检查 jQuery 是否已定义,然后检查活动状态

public class WaitForAjaxToLoad {
public static void waitForAjaxToLoad(WebDriver driver) {

        final JavascriptExecutor js= (JavascriptExecutor) driver;
        WebDriverWait wait = new WebDriverWait(driver, 15);
        ExpectedCondition<Boolean> e = new ExpectedCondition<Boolean>() {
            public Boolean apply(WebDriver driver) {

               if(js.executeScript("return document.readyState").equals("complete"))
               {
                    if((boolean) js.executeScript("return window.jQuery != undefined")) {
                      Boolean status= (Boolean) js.executeScript("return jQuery.active==0");
                      System.out.println("Jquery is defined active status:"+status+"for thread:"+Thread.currentThread().getId());
                        if (status) {
                            return true;
                        } else {
                            return false;
                        }
                    }
                    else {
                        System.out.println("jQuery is undefined for thread "+Thread.currentThread().getId());
                        return false;
                    }
               }
               else {
                   System.out.println("Document is not ready for thread "+Thread.currentThread().getId());
                   return false;
               }


            }
        };  
         wait.until(e);

 }
}

当我执行脚本时,文档已准备就绪,但 jQuery 未定义。 当测试方法并行执行时会发生这种情况。 为什么一旦文档准备好我会得到 jQuery 未定义?

【问题讨论】:

    标签: jquery ajax selenium-webdriver


    【解决方案1】:

    this answer 改编为 Java,您的测试可以大大简化 - 在我看来,不会丢失任何有价值的东西:

    WebDriverWait wait = new WebDriverWait(driver, 15);
    wait.until(new Function<WebDriver, WebElement>() {
        public Boolean apply(WebDriver driver) {
            return js.executeScript("return jQuery.active == 0");
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-14
      • 1970-01-01
      • 2010-11-06
      • 2012-03-28
      • 1970-01-01
      • 2018-01-26
      相关资源
      最近更新 更多