You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle依赖异常:Selenium 4.6.0引入旧版传递依赖问题

问题原因与解决方案

旧版本依赖的来源

问题出在Spring Boot的依赖管理机制上:
Spring Boot的spring-boot-starter-parent父POM会预定义大量第三方依赖的版本,确保整个生态的兼容性。Spring Boot 2.6.1的父POM中,Selenium相关依赖(如selenium-api、selenium-chrome-driver等)的默认版本就是3.141.59。即使你在testImplementation里指定了selenium-java:4.6.0,它的传递依赖仍会被父POM的依赖管理规则强制替换为旧版本,这就是你看到多数传递依赖是3.141.59的原因。

验证方式

你可以用Gradle命令查看依赖树,确认版本被管理的情况:

./gradlew dependencies --configuration testRuntimeClasspath

在输出中找到旧版本的依赖项,会看到类似(managed from 3.141.59)的标注,说明该版本由Spring Boot的依赖管理控制。

合理的解决方法

不要手动逐个覆盖依赖,而是直接在项目的依赖管理中指定Selenium的版本,让所有相关传递依赖自动同步到4.6.0:

Gradle配置

在build.gradle中添加依赖管理规则:

dependencyManagement {
    imports {
        // 引入Selenium的BOM,一次性统一所有子模块版本
        mavenBom "org.seleniumhq.selenium:selenium-bom:4.6.0"
    }
}

// 你的原有依赖声明保持不变
testImplementation group: 'org.seleniumhq.selenium', name: 'selenium-java', version: '4.6.0'

或者也可以单独指定核心依赖的版本:

dependencyManagement {
    dependencies {
        dependency 'org.seleniumhq.selenium:selenium-java:4.6.0'
        dependency 'org.seleniumhq.selenium:selenium-api:4.6.0'
        dependency 'org.seleniumhq.selenium:selenium-chrome-driver:4.6.0'
    }
}

这样配置后,所有Selenium相关的传递依赖都会自动使用4.6.0版本,解决类找不到的问题,同时避免手动逐个覆盖的繁琐。

内容的提问来源于stack exchange,提问作者Vincent F

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 23:07:38