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

Selenium、IntelliJ与Maven版本适配问题求助

问题排查建议:Selenium 4.24升级后NoSuchMethodError及Maven依赖树异常

错误核心分析

你遇到的java.lang.NoSuchMethodError是典型的类版本冲突/类加载不一致问题:运行时加载的Selenium类库版本与编译时依赖的版本不匹配,导致找不到目标方法。结合Maven依赖树无法显示Selenium条目的现象,问题根源大概率出在Maven依赖解析或项目配置层面。

报错详情

Step failed
java.lang.NoSuchMethodError: 'java.util.Optional org.openqa.selenium.devtools.CdpEndpointFinder.getCdpEndPoint(org.openqa.selenium.remote.http.HttpClient$Factory, java.net.URI)'
at org.openqa.selenium.chromium.ChromiumDriver.lambda$new$1(ChromiumDriver.java:112)
at java.base/java.util.Optional.flatMap(Optional.java:289)
at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:112)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:88)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:83)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:72)
at no.husbanken.e2e.rammeverk.selenium.Browser.opprettLokalBrowser(Browser.java:77)
at no.husbanken.e2e.rammeverk.selenium.Browser.init(Browser.java:60)
at e2e.support.Hooks.beforeAll(Hooks.java:83)
at e2e.support.Hooks.beforeEach(Hooks.java:41)

具体排查步骤

  • 检查Maven继承与依赖管理配置

    • 确认项目是否继承了父pom,查看父pom的<dependencyManagement>节点,是否存在对Selenium依赖的版本锁定或排除规则。
    • 执行mvn help:effective-pom生成有效pom文件,搜索selenium关键字,确认实际生效的依赖版本、来源及是否被排除。
  • 强制过滤Selenium依赖树

    • 执行mvn dependency:tree -Dverbose -Dincludes=org.seleniumhq.selenium,强制只显示Selenium相关依赖,排查是否存在被其他依赖排除的情况。
    • 检查手动添加的Selenium依赖是否设置了异常scope(如provided),导致默认依赖树不显示。
  • 清理本地缓存与IDE缓存

    • 删除本地Maven仓库中org/seleniumhq/selenium目录下的所有文件,执行mvn clean install -U强制重新拉取依赖。
    • 清理IntelliJ缓存:通过File -> Invalidate Caches...选择"Invalidate and Restart",消除IDE缓存的旧依赖干扰。
  • 验证运行时类路径

    • 在IntelliJ的Run Configuration中,查看Classpath标签,确认Selenium 4.24的jar包存在且无旧版本Selenium jar包共存。
    • 执行mvn dependency:build-classpath -Dmdep.outputFile=classpath.txt,生成运行时类路径文件,搜索selenium确认所有相关jar包的版本一致性。
  • 排查自定义框架依赖

    • 你的代码依赖自定义框架no.husbanken.e2e.rammeverk.selenium.Browser,执行mvn dependency:tree -Dincludes=no.husbanken.e2e.rammeverk查看该框架的依赖树,确认是否内部依赖了旧版本Selenium,导致版本冲突。
  • 最小化依赖测试

    • 创建临时测试项目,仅添加Selenium 4.24核心依赖(selenium-java)和基础Cucumber依赖,运行简单的ChromeDriver初始化测试。如果正常,再逐步添加原有项目的依赖,定位冲突来源。

内容的提问来源于stack exchange,提问作者Frank H.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 01:52:34