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

Maven环境下Selenium 4.2.0测试报错:ImmutableList方法缺失

解决Selenium 4.2.0 + Maven的java.lang.NoSuchMethodError问题

错误原因

这个错误是由于Guava版本不兼容导致的:com.google.common.collect.ImmutableList.toImmutableList()方法是Guava 21.0及以后版本新增的Collector实现,而你的项目中存在更低版本的Guava依赖,与Selenium 4.2.0所需的高版本Guava冲突,导致JVM加载了低版本Guava,找不到目标方法。

Selenium 4.2.0官方依赖的Guava版本为31.1-jre,需确保项目使用该版本或兼容的高版本。

解决方案

1. 显式声明Guava依赖

在pom.xml中直接添加指定版本的Guava依赖,让Maven优先加载该版本:

<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>31.1-jre</version>
</dependency>

2. 锁定Guava版本(推荐)

使用dependencyManagement强制项目中所有依赖统一使用指定版本的Guava,彻底避免版本冲突:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>31.1-jre</version>
        </dependency>
    </dependencies>
</dependencyManagement>

3. 排查并排除低版本Guava依赖

如果上述方法无效,先找出引入低版本Guava的依赖:

  • 执行Maven命令查看完整依赖树:
mvn dependency:tree -Dverbose | grep guava
  • 在输出中定位版本较低的Guava来源,然后在对应依赖中排除Guava:
    例如,若xxx:some-dependency引入了低版本Guava,修改该依赖配置:
<dependency>
    <groupId>xxx</groupId>
    <artifactId>some-dependency</artifactId>
    <version>x.x.x</version>
    <exclusions>
        <exclusion>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
        </exclusion>
    </exclusions>
</dependency>

4. 清理Maven缓存

清理本地缓存的旧依赖,确保重新拉取正确版本:

mvn clean install -U

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 03:20:14