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

Selenium 3.10中ChromeOptions触发NoSuchMethodError的解决咨询

解决Selenium 3.10.0中Guava依赖导致的NoSuchMethodError异常

这个异常的核心原因很明确:com.google.common.collect.ImmutableList.toImmutableList()方法是Guava 21.0版本才新增的,而你的项目实际加载的Guava版本低于这个要求,导致Selenium调用该方法时找不到对应实现。

问题分析

你当前配置的Guava依赖用了<version>RELEASE</version>,这个标签会让Maven拉取最新的稳定版,但Maven的依赖调解机制(比如间接依赖的版本优先级、声明顺序)可能导致项目最终加载的是其他依赖引入的旧版Guava——比如你的依赖列表里的org.glassfish.jersey.bundles.repackaged:jersey-guava:jar:2.8,它内部包含了旧版Guava代码,很可能覆盖了你声明的版本。

另外,Selenium 3.10.0官方依赖的Guava版本是23.0,直接用RELEASE可能拉取到不兼容的版本(过高或过低)。

具体解决方案

以下是分步解决的方法:

  1. 指定明确的Guava版本,替代RELEASE标签
    把你的Guava依赖改成Selenium 3.10.0兼容的固定版本:

    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>23.0</version>
    </dependency>
    
  2. 排除所有间接引入的旧版Guava
    检查项目依赖树,找出所有自带Guava的依赖并排除。比如针对你依赖列表里的jersey-common,需要排除它引入的jersey-guava:

    <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-common</artifactId>
        <version>2.8</version>
        <exclusions>
            <exclusion>
                <groupId>org.glassfish.jersey.bundles.repackaged</groupId>
                <artifactId>jersey-guava</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    

    你可以用Maven命令mvn dependency:tree生成完整的依赖树,搜索guava关键词,逐个处理所有间接依赖。

  3. 在dependencyManagement中锁定Guava版本
    为了确保整个项目都使用指定的Guava版本,在pom.xml的<dependencyManagement>节点中添加版本锁定:

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>23.0</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    

    这会强制所有依赖(包括间接依赖)使用这个版本的Guava。

  4. 清理Maven缓存并重新构建
    执行以下命令清理本地仓库的缓存依赖,避免旧版本干扰:

    mvn clean install -U
    

    -U参数会强制Maven更新所有依赖的快照和版本信息。

验证方法

执行完上述步骤后,你可以再次用mvn dependency:tree | grep guava命令,确认项目中只存在23.0版本的Guava,然后重新运行测试代码,应该就能解决这个异常了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:01:08