Java WebDriverWait在Selenium 4中被弃用

Java WebDriverWait在Selenium 4中被弃用,java,selenium,selenium-webdriver,webdriverwait,selenium4,Java,Selenium,Selenium Webdriver,Webdriverwait,Selenium4,我得到一份工作 警告:(143,13)“WebDriverWait(org.openqa.selenium.WebDriver,long)”已被弃用 在硒4.0.0-α-3中 但只有官方名单 WebDriverWait(WebDriver driver, Clock clock, Sleeper sleeper, long timeOutInSeconds, long sleepTimeOut) 正如不赞成的那样 怎么了?我正在使用IntelliJ,这可能是他们的问题吗?此警告消息 Warni

我得到一份工作

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

在硒4.0.0-α-3中

但只有官方名单

WebDriverWait(WebDriver driver, Clock clock, Sleeper sleeper, long timeOutInSeconds, long sleepTimeOut)
正如不赞成的那样


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

此警告消息

Warning: (143,13) 'WebDriverWait(org.openqa.selenium.WebDriver, long)' is deprecated
…表示的当前构造函数已被弃用


查看代码,似乎:

  • 以下方法已弃用:

    • public-WebDriverWait(WebDriver-driver,long-timeoutin-seconds)

    • public-WebDriverWait(WebDriver-driver,long-timeoutingseconds,long-sleepinmilis)

    • 公共网络驱动程序wit(网络驱动程序驱动程序、时钟、睡眠者、长时间外出秒、长时间睡眠毫秒)

  • 同时添加了以下方法:

    • 公共WebDriverWait(WebDriver驱动程序,持续时间超时)

    • 公共WebDriverWait(WebDriver驱动程序、持续时间超时、持续时间睡眠)

    • WebDriver驱动程序、持续超时、持续睡眠、时钟、睡眠者)

因此,您可以看到错误


但是,在v4.0.0-alpha*Java客户端变更日志中,我没有看到对类的任何更改,并且该功能应该按照当前的实现继续运行

Selenium Java客户端
v4.0.0-alpha-3
changelog:
结论 Selenium的Java客户端v4.0.0-alpha-3仍然是alpha版本,需要经过beta版本,因此不应用于生产环境中的测试活动


解决方案
立即的解决办法是将此警告消息降级到当前的发布级别

Warning: (143,13) 'WebDriverWait(org.openqa.selenium.WebDriver, long)' is deprecated
…表示的当前构造函数已被弃用


查看代码,似乎:

  • 以下方法已弃用:

    • public-WebDriverWait(WebDriver-driver,long-timeoutin-seconds)

    • public-WebDriverWait(WebDriver-driver,long-timeoutingseconds,long-sleepinmilis)

    • 公共网络驱动程序wit(网络驱动程序驱动程序、时钟、睡眠者、长时间外出秒、长时间睡眠毫秒)

  • 同时添加了以下方法:

    • 公共WebDriverWait(WebDriver驱动程序,持续时间超时)

    • 公共WebDriverWait(WebDriver驱动程序、持续时间超时、持续时间睡眠)

    • WebDriver驱动程序、持续超时、持续睡眠、时钟、睡眠者)

因此,您可以看到错误


但是,在v4.0.0-alpha*Java客户端变更日志中,我没有看到对类的任何更改,并且该功能应该按照当前的实现继续运行

Selenium Java客户端
v4.0.0-alpha-3
changelog:
结论 Selenium的Java客户端v4.0.0-alpha-3仍然是alpha版本,需要经过beta版本,因此不应用于生产环境中的测试活动


解决方案
一个直接的解决方案是降级到当前的发布级别

它不会出现在文档中,但是如果您查看注释,您将看到
@不推荐的
注释

@Deprecated
public WebDriverWait(WebDriver driver, long timeoutInSeconds) {
    this(driver, Duration.ofSeconds(timeoutInSeconds));
}
在构造函数描述中,您有解决方案

@不推荐使用{@link WebDriverWait#WebDriverWait(WebDriver,Duration)}

这是在任何情况下从不推荐的构造函数调用的构造函数

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

它不会出现在文档中,但如果您查看,您将看到
@Deprecated
注释

@Deprecated
public WebDriverWait(WebDriver driver, long timeoutInSeconds) {
    this(driver, Duration.ofSeconds(timeoutInSeconds));
}
在构造函数描述中,您有解决方案

@不推荐使用{@link WebDriverWait#WebDriverWait(WebDriver,Duration)}

这是在任何情况下从不推荐的构造函数调用的构造函数

new WebDriverWait(driver, Duration.ofSeconds(10));
使用此选项,仅支持WebDriverWait(驱动程序、时钟)


使用此选项,仅支持WebDriverWait(驱动程序、时钟)

给出以下警告的代码:

driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
警告:
类型
WebDriver.timeout
中的方法
implicitlyWait(long,TimeUnit)
已被弃用

适用于selenium4的更新:

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

给出以下警告的代码:

driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
警告:
类型
WebDriver.timeout
中的方法
implicitlyWait(long,TimeUnit)
已被弃用

适用于selenium4的更新:

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

此代码段用于Selenium 4.0:

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

此代码段用于Selenium 4.0:

driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));

在selenium版本4.0.0-alpha-7中使用此选项后无警告在selenium版本4.0.0-alpha-7中使用此选项后无警告
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));