如何在 Selenium Java 客户端 v3.11.0 中删除关于超时和轮询的弃用警告

How to remove deprecation warning on timeout and polling in Selenium Java Client v3.11.0

下面是我的代码,在我将 Selenium Webdriver 版本更新到 3.11.0 后显示为已弃用。

    private Wait<WebDriver> mFluentWait(WebDriver pDriver) {
    Wait<WebDriver> gWait = new FluentWait<WebDriver>(pDriver).withTimeout(100, TimeUnit.SECONDS)
            .pollingEvery(600, TimeUnit.MILLISECONDS).ignoring(NoSuchElementException.class);   
    return gWait;
}

在代码的 withTimeoutpollingEvery 部分显示弃用警告。

如何重写此代码,以便删除已弃用的警告。

由于我是 selenium 的新手,所以我不确定变化。任何帮助将不胜感激。

检查 FluentWait 的源代码,其中提到使用使用 Duration 作为参数的方法。

  1. withTimeout - 使用 withTimeout(Duration duration) 方法。
  2. pollingEvery - 使用 pollingEvery(Duration duration) 方法。

@Grasshopper 的回答向我们指出了 FluentWait 的确切修改 constructor 以及您从 [= 中删除弃用警告的要求14=]withTimeout 和 pollingEvery 字段。如果您遇到更多困难,可以使用下面的代码行:

import java.time.Duration;
//lines of code
Wait<WebDriver> gWait = new FluentWait<WebDriver>(pDriver).withTimeout(Duration.ofSeconds(100))
        .pollingEvery(Duration.ofMillis(600)).ignoring(NoSuchElementException.class);

You can find a detailed discussion in

您可以使用以下代码行:

  Wait<Browser> wait = new FluentWait<>(driver)
            .withTimeout(Duration.ofSeconds(*timeToWaitInSec*))
            .pollingEvery(Duration.ofMillis(*TimeToTryinMillisec*))
            .ignoring(WebDriverException.class);

升级到 Selenium 4 后,很少有旧方法被弃用,Fluent wait 是其中的一部分。

以类似的顺序使用以下代码无缝执行:

 Wait<Browser> wait = new FluentWait<>(driver)
            .withTimeout(Duration.ofSeconds(*timeToWaitInSec*))
            .ignoring(WebDriverException.class)
            .pollingEvery(Duration.ofMillis(*TimeToTryinMillisec*));

另请参阅下面的文章,了解 Selenium 4 中的其他 changes/upgrade。

https://applitools.com/blog/selenium-4-migration/