首页 > 解决方案 > Webdriver.io 的 Selenium Fluentwait 实现

问题描述

是否有任何可用于 WebdriverIO 的FluentWait实现?

寻找类似于 Selenium JavaFluentWait实现的东西,例如下面的一个:

Wait wait = new FluentWait(WebDriver reference)
  .withTimeout(timeout, SECONDS)
  .pollingEvery(timeout, SECONDS)
  .ignoring(Exception.class);

WebElement foo=wait.until(new Function<WebDriver, WebElement>() {
  public WebElement apply(WebDriver driver) {
    return driver.findElement(By.id("foo"));
  }
});

我尝试搜索各种文档,但找不到等效文档。谢谢!

标签: seleniumwebdriverwebdriver-io

解决方案


你可以使用waitUntil api

    it('should wait until element is existing for 5000ms with 250ms polling', () => {
      browser.waitUntil(() => {
         return $('#someText').isExisting();  // condition
       }, 5000, 'expected element to be exist after 5s', 250);
    });

它没有忽略异常,但也许您可以在条件函数中添加 try catch。但它将提供所有其他功能。


推荐阅读