Selenium ChromeDriverService出现NoSuchMethodError错误求助
这个错误的核心原因是类路径中存在版本不兼容的Selenium依赖:ChromeDriverService$Builder类的getLogOutput方法签名不匹配,要么是旧版本Selenium包缺少该方法,要么是不同Selenium组件(如selenium-chrome-driver和selenium-remote-driver)版本不一致导致的。以下是针对性的解决步骤:
统一所有Selenium依赖版本
确保Maven/Gradle配置中,所有selenium-*开头的依赖使用完全相同的版本,避免混合不同版本。如果使用selenium-java,它已包含核心组件,无需重复引入其他selenium-*依赖:<!-- Maven示例配置 --> <dependencies> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.15.0</version> <!-- 使用最新稳定版,所有Selenium依赖统一此版本 --> </dependency> </dependencies>排查并排除冲突依赖
用依赖树命令找出间接引入的旧版本Selenium:# Maven查看Selenium相关依赖树 mvn dependency:tree -Dverbose -Dincludes=org.seleniumhq.selenium如果发现第三方依赖间接引入旧版Selenium,添加排除规则:
<dependency> <groupId>第三方依赖groupId</groupId> <artifactId>第三方依赖artifactId</artifactId> <version>x.x.x</version> <exclusions> <exclusion> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-remote-driver</artifactId> </exclusion> <exclusion> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-chrome-driver</artifactId> </exclusion> </exclusions> </dependency>清理本地仓库并重新构建
删除本地仓库中Selenium相关目录(Maven路径:~/.m2/repository/org/seleniumhq/selenium),然后重新执行构建命令:# Maven mvn clean install # Gradle ./gradlew clean build --refresh-dependencies检查IDE运行配置
确认IntelliJ运行配置中未手动添加旧版Selenium包到类路径,执行File -> Invalidate Caches...选择"Invalidate and Restart"彻底清理缓存。验证ChromeDriver与浏览器版本匹配
确保ChromeDriver版本和本地Chrome浏览器版本兼容(如Chrome 119对应ChromeDriver 119.x),避免额外兼容性问题。
内容的提问来源于stack exchange,提问作者NP06

