升级Selenium版本后遇WebDriverWait构造函数未定义错误求解决方案
解决Selenium升级后WebDriverWait构造方法报错问题
升级Selenium到4.x及以上版本后,原有的new WebDriverWait(WebDriver, int)构造方法被移除,因此会触发报错The constructor WebDriverWait(WebDriver, int) is undefined,这是官方API的破坏性更新,直接用以下方式解决即可:
正确调用方式
不需要自己重写WebDriverWait的构造方法,直接使用官方提供的带Duration参数的构造方法:
- 基础用法(仅指定超时时间):
// 导入java.time.Duration类 import java.time.Duration; import org.openqa.selenium.support.ui.WebDriverWait; // 初始化等待对象,设置10秒超时 WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
- 进阶用法(指定超时时间+轮询间隔):
如果需要自定义轮询元素的间隔时间(默认是500毫秒),可以使用重载构造方法:
// 10秒超时,每300毫秒轮询一次 WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10), Duration.ofMillis(300));
你尝试方案的问题说明
你贴出的代码是WebDriverWait类的源码构造方法,完全不需要自己去重写该方法——直接调用官方类的构造方法即可,核心是替换掉原来的int类型超时参数,改用Duration类来定义时长。另外要确保已经正确导入java.time.Duration,避免包导入错误。
内容的提问来源于stack exchange,提问作者janhvi
相关产品推荐
相关产品推荐

