带有模式的 webdriverio waitUntil 和 getUrl

webdriverio waitUntil and getUrl with pattern

在 WebdriverIO 中,我想等到浏览器被重定向到一个 URL,其中包含单词 project。我试图结合 waitUntilgetUrl 函数,但它给出了错误消息。

TypeError: browser.getUrl(...).indexOf is not a function

如何建立一个条件来等待 URL 匹配特定模式?

代码:

browser.waitUntil(() => {
  return browser.getUrl().indexOf('project') > -1
}, 5000)

browser.getUrl() returns 一个承诺,没有 indexOf 功能。您需要保存 getUrl 的结果,然后 运行 indexOf 就可以了。

在同步模式中:

browser.waitUntil(() => {
  let pageUrl = browser.getUrl();
  return pageUrl.indexOf('project') > -1
}, 5000)

在非同步模式下:

browser.waitUntil(() => {
  return browser.getUrl().then((pageUrl) => {
    return pageUrl.indexOf('project') > -1
  });
}, 5000)