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

Selenium 4.4调用WebDriverWait构造方法出现NoSuchMethodError问题排查

问题原因及解决办法

你的代码:

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

报错信息:

Exception in thread "main" java.lang.NoSuchMethodError: 'void org.openqa.selenium.support.ui.WebDriverWait.<init>(org.openqa.selenium.WebDriver, java.time.Duration)'
    at com.web.Power.Web.Webproject.<init>(Webproject.java:82)

出现这个错误的核心原因是JVM找不到对应的WebDriverWait构造方法,具体可能有以下几种情况:

  • Selenium依赖版本不统一:WebDriverWait属于selenium-support模块,接收java.time.Duration参数的构造方法是Selenium 4.x才新增的。如果你的项目中selenium-support版本低于4.0,或者和selenium-java的版本不一致(比如selenium-java用4.4,但selenium-support是3.x),就会触发该错误。
  • Classpath存在旧版本Selenium包:若项目类路径中同时存在Selenium 3.x和4.x的Jar包,JVM可能优先加载旧版本的WebDriverWait类,而旧版本仅支持传入long类型的超时时间,没有适配Duration的构造方法。
  • 依赖引入不完整或缓存异常:构建工具(如Maven/Gradle)可能未正确下载Selenium 4.4的完整依赖,或者本地依赖缓存中存在损坏/旧版本的包,导致selenium-support模块缺失或版本错误。

对应的解决办法:

  1. 统一Selenium依赖版本:确保所有Selenium相关依赖的版本都是4.4.0。以Maven为例,只需引入selenium-java即可(它已包含selenium-support),配置如下:
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.4.0</version>
</dependency>

如果单独引入了selenium-support,必须保证其版本与selenium-java完全一致。

  1. 清理并重新下载依赖:删除本地依赖缓存(比如Maven的~/.m2/repository/org/seleniumhq/selenium目录,Gradle的~/.gradle/caches/modules-2/files-2.1/org.seleniumhq.selenium目录),然后重新执行构建命令(mvn clean install或gradle clean build)。

  2. 检查并清理Classpath:移除项目中所有Selenium 3.x版本的Jar包,确保类路径中仅保留Selenium 4.4.0的相关包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 18:40:09