新机器配置Selenium自动化时初始化ChromeDriver遇NoSuchMethodError异常
问题原因
这个NoSuchMethodError是因为Guava(谷歌核心工具库)版本不兼容:Selenium的ChromeDriver实现依赖了Guava中ImmutableMap.of()的12参数重载方法,但你项目里引入的Guava版本太低,根本没有这个方法。
解决步骤
升级Guava依赖
如果用Maven,在pom.xml里添加/更新Guava依赖,版本至少选28.0以上(建议用和当前Selenium兼容的最新稳定版):<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>32.1.3-jre</version> </dependency>Gradle用户则在
build.gradle中添加:implementation 'com.google.guava:guava:32.1.3-jre'排除冲突的低版本Guava
要是项目里其他依赖间接引入了旧版Guava,得把这些冲突依赖排除掉。比如Maven中给对应的依赖加排除规则:<!-- 示例:排除某依赖自带的旧Guava --> <dependency> <groupId>第三方依赖组ID</groupId> <artifactId>第三方依赖 artifactID</artifactId> <version>版本号</version> <exclusions> <exclusion> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </exclusion> </exclusions> </dependency>验证依赖版本一致性
用命令查看项目依赖树,确认Guava版本是否统一:
Maven:mvn dependency:treeGradle:
gradle dependencies额外检查
确保WebDriverManager和Selenium版本匹配,建议使用Selenium 4.10.0以上版本,WebDriverManager会自动适配对应ChromeDriver版本;另外清理本地依赖缓存(Maven的.m2目录、Gradle的.gradle缓存),避免旧依赖残留。
内容的提问来源于stack exchange,提问作者Fayaz
相关产品推荐
相关产品推荐

