Selenium 3.14迁移至4.8.1时SessionNotCreatedException报错求助
解决Selenium 4.8.1迁移中的SessionNotCreatedException(Guava方法缺失)
你遇到的SessionNotCreatedException本质是Guava版本不兼容导致的方法缺失:Selenium 4.x对Guava的版本要求远高于Selenium 3.14,旧版本Guava没有ImmutableMap.of的12参数重载方法,因此抛出NoSuchMethodError。
以下是具体解决步骤:
强制升级Guava到兼容版本
Selenium 4.8.x要求Guava 31.1-jre及以上版本,直接在项目依赖中指定该版本:
Maven(pom.xml):<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>31.1-jre</version> <scope>compile</scope> </dependency>Gradle(build.gradle):
implementation 'com.google.guava:guava:31.1-jre'排除冲突的旧Guava依赖
第三方库(如TestNG、其他测试组件)可能引入低版本Guava,需在依赖中排除这些冲突:
Maven示例(以TestNG为例):<dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <version>7.7.1</version> <exclusions> <exclusion> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </exclusion> </exclusions> </dependency>验证依赖树
执行命令确认最终依赖的Guava版本是否正确:
Maven:mvn dependency:tree | grep guavaGradle:
gradle dependencies | grep guava确保输出版本为31.1-jre或更高。
清理并重新构建项目
清理本地仓库的旧依赖缓存,重新构建项目:
Maven:mvn clean install -UGradle:
gradle clean build --refresh-dependencies
额外注意:Selenium 4.x迁移时,需同步确保ChromeDriver版本与Chrome浏览器版本匹配(ChromeDriver 111+对应Selenium 4.8.x),避免触发其他浏览器启动失败类问题。
内容的提问来源于stack exchange,提问作者Hareesh psn
相关产品推荐
相关产品推荐

