WebDriverWait 在 Selenium 4 中被弃用

我得到一个

警告:(143,13)'WebDriverWait(org.openqa.selenium.WebDriver, long)'已被弃用

在硒4.0.0-α-3中。

但官方硒页面仅列出

WebDriverWait(WebDriver driver, Clock clock, Sleeper sleeper, long timeOutInSeconds, long sleepTimeOut)

已弃用。

怎么了?我正在使用IntelliJ,这可能是他们的问题吗?


答案 1

它不会出现在文档中,但如果你看一下源代码,你会看到注释@Deprecated

@Deprecated
public WebDriverWait(WebDriver driver, long timeoutInSeconds) {
    this(driver, Duration.ofSeconds(timeoutInSeconds));
}

在构造函数描述中,您有解决方案

@deprecated相反,请使用 {@link WebDriverWait#WebDriverWait(WebDriver, Duration)}。

在任何情况下,这都是从已弃用的构造函数调用的构造函数。

new WebDriverWait(driver, Duration.ofSeconds(10));

答案 2

用Selenium 4这样写,因为你试图使用的东西被弃用了,正如你所说。首次导入。

import java.time.Duration;

        driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
        driver.manage().timeouts().scriptTimeout(Duration.ofSeconds(30));
        driver.manage().timeouts().pageLoadTimeout(Duration.ofSeconds(60));

为了流畅的等待。

 Wait<WebDriver> wait= new FluentWait<WebDriver>(driver)
        .withTimeout(Duration.ofSeconds(30))
        .pollingEvery(Duration.ofSeconds(5))
        .ignoring(NoSuchElementException.class);

WebDriverWait 语句

WebDriverWait wait = new WebDriverWait(driver,Duration.ofSeconds(10));

推荐