启动ChromeDriver遇java.lang.NoSuchMethodError问题求助
解决ChromeDriver启动时的Gson方法缺失错误
看起来你遇到的是典型的依赖版本冲突问题,具体是Gson库和Selenium的版本不兼容导致的。我来帮你拆解一下:
问题根源
你看到的java.lang.NoSuchMethodError: com.google.gson.GsonBuilder.setLenient(),本质是Selenium的Json模块需要调用Gson的setLenient()方法,但你的项目里实际引入的Gson版本太旧——这个方法是在Gson 2.3版本才新增的,低版本Gson根本没有这个方法。
虽然你说依赖和另一个正常项目一致,但大概率是本地缓存或者依赖解析的细节差异导致的。
具体解决步骤
第一步:检查并升级Gson版本
先打开你的依赖配置文件(Maven的pom.xml或者Gradle的build.gradle),如果直接引入了Gson,确保版本在2.3及以上。建议选择和你的Selenium版本匹配的Gson版本(比如Selenium 3.x系列通常依赖Gson 2.8.x版本)。第二步:排查隐藏的依赖冲突
如果你没有直接引入Gson,那肯定是其他依赖偷偷带入了低版本的Gson。可以用命令排查:- Maven用户:执行
mvn dependency:tree,搜索com.google.gson:gson,看看哪些依赖引入了低版本Gson。 - Gradle用户:执行
./gradlew dependencies,同样搜索Gson相关条目。
- Maven用户:执行
第三步:强制锁定Gson版本
找到冲突后,在依赖管理里强制指定正确的Gson版本,避免被其他依赖覆盖:- Maven:在
<dependencyManagement>节点中添加:<dependency> <groupId>com.google.gson</groupId> <artifactId>gson</artifactId> <version>2.8.9</version> <!-- 替换为合适的版本 --> </dependency> - Gradle:在
build.gradle中添加:configurations.all { resolutionStrategy.force 'com.google.gson:gson:2.8.9' }
- Maven:在
第四步:清理缓存并重新构建
有时候本地依赖缓存会残留旧版本,执行清理命令:- Maven:
mvn clean install - Gradle:
./gradlew clean build
如果是IDE的问题,比如IntelliJ,可以试试File -> Invalidate Caches / Restart来同步依赖。
- Maven:
内容的提问来源于stack exchange,提问作者Romita Thakur
相关产品推荐
相关产品推荐

