繁体   English   中英

webdriverio 等待页面加载

[英]webdriverio wait for page to load

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

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

或者

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

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

  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'
      });

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

有关详细信息,请参阅https://webdriver.io/docs/timeouts.html

@Sadeesh 代码的简化版:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM