Selenium Java打开浏览器触发java.lang.NoSuchMethodError错误求助
Selenium启动ChromeDriver报错解决方案
核心错误分析
报错里的java.lang.NoSuchMethodError是关键问题:Guava(谷歌工具库)版本和Selenium不兼容,Selenium调用了高版本Guava才有的ImmutableMap.of重载方法,当前项目里的Guava版本不支持这个方法。另外SLF4J的提示是日志实现缺失的警告,不影响程序运行但可以消除。
解决步骤
1. 修复Guava版本不兼容
Maven项目:
打开pom.xml,移除旧的Guava依赖(如果存在),添加匹配Selenium版本的Guava依赖:<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>31.0.1-jre</version> <!-- Selenium 4.x推荐版本 --> </dependency>保存后让Maven自动下载依赖。
普通Java项目:
- 右键项目 →
Build Path→Configure Build Path - 在
Libraries标签下找到旧的Guava jar包,点击移除 - 下载对应版本的Guava jar包,添加到项目的Build Path中
- 右键项目 →
2. 消除SLF4J警告(可选)
如果不想看到日志警告,添加一个SLF4J的日志实现:
- Maven项目添加依赖:
<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.11</version> </dependency> - 普通项目:下载
logback-classic和logback-core的jar包,添加到Build Path即可。
3. 额外验证
- 确认ChromeDriver版本和本地Chrome浏览器版本完全匹配,版本不匹配也可能引发兼容性问题
- 执行
Project -> Clean清理项目缓存,再重新运行程序
内容的提问来源于stack exchange,提问作者Shrivijay Kale
相关产品推荐
相关产品推荐

