【问题标题】:webdriverio wait for page to loadwebdriverio 等待页面加载
【发布时间】:2020-07-30 11:10:32
【问题描述】:

有没有办法让 webdriverio 等待页面加载? 我看到在java中我可以有类似的东西:

executeScript("return document.readyState").equals("complete"));

driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);

有没有办法在 webdriverio 中做到这一点? 我知道我可以使用等待来等待特定元素,但我正在寻找一种方法来等待整个页面加载

【问题讨论】:

    标签: javascript webdriver-io


    【解决方案1】:
    1. 我们可以使用关键字 waitUntil(https://webdriver.io/docs/api/browser/waitUntil.html) 来完成这项工作。

    2. 有关 document.readyState 属性的详细信息,请参阅此处(https://developer.mozilla.org/en-US/docs/Web/API/Document/readyState)

    代码:

    browser.waitUntil(function () {
          const state = browser.execute(function () {
            return document.readyState;
          });
          //console.log("state:" + state)
          return state === 'complete';
        },
          {
            timeout: 60000, //60secs
            timeoutMsg: 'Oops! Check your internet connection'
          });
    
    

    【讨论】:

      【解决方案2】:

      @Sadeesh 代码的简化版:

      browser.waitUntil(
        () => browser.execute(() => document.readyState === 'complete')),
        {
          timeout: 60 * 1000, // 60 seconds
          timeoutMsg: 'Message on failure'
        }
      );
      

      【讨论】:

        【解决方案3】:

        您可以将browser.setTimeout({ 'pageLoad': 10000 }) 添加到wdio.conf.js 文件中的before: function

        详情请参阅https://webdriver.io/docs/timeouts.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-09-13
          • 2016-11-16
          • 1970-01-01
          • 1970-01-01
          • 2018-03-20
          • 2020-01-04
          • 2017-03-27
          • 1970-01-01
          相关资源
          最近更新 更多