You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何消除Selenium Java Client v3.11.0中timeout与polling的弃用警告

解决Selenium 3.11.0中FluentWait的弃用警告问题

这个问题我升级Selenium版本时也碰到过,核心原因是Selenium 3.x对FluentWait的时间相关API做了调整——弃用了依赖TimeUnit的方法,转而使用Java 8引入的java.time.Duration类来处理时间,这是为了贴合现代Java的时间API规范。

重写后的完整代码

你只需要替换withTimeout和pollingEvery的参数形式,同时确保导入Duration类即可:

import java.time.Duration;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.support.ui.FluentWait;
import org.openqa.selenium.support.ui.Wait;

private Wait<WebDriver> mFluentWait(WebDriver pDriver) {
    Wait<WebDriver> gWait = new FluentWait<WebDriver>(pDriver)
            .withTimeout(Duration.ofSeconds(100))  // 替换原TimeUnit.SECONDS形式
            .pollingEvery(Duration.ofMillis(600))  // 替换原TimeUnit.MILLISECONDS形式
            .ignoring(NoSuchElementException.class);
    return gWait;
}

关键修改说明

  • 时间API替换:用Duration.ofXxx()方法替代原来的「数值+TimeUnit」组合,比如Duration.ofSeconds(100)直接表示100秒,Duration.ofMillis(600)表示600毫秒,API更直观易懂,还支持ofMinutes()、ofHours()等扩展用法。
  • 兼容性保障:Duration是Java 8的特性,而Selenium 3.11.0本身就要求Java 8及以上版本,所以不用担心版本兼容问题。

修改完成后,弃用警告就会消失,代码也完全符合Selenium的最新API规范。

内容的提问来源于stack exchange,提问作者kripindas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:17:37