You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Java/Kotlin Maven项目升级Selenium 4.28+后依赖库无法找到的问题

Java/Kotlin Maven项目升级Selenium 4.28+后依赖库无法找到的问题

我之前也碰到过这种100%复现的Maven依赖同步坑,尤其是在Selenium小版本升级的时候,结合你用IntelliJ的场景,咱们一步步排查解决:

1. 先确认Maven依赖声明的正确性

首先检查你的pom.xml里Selenium的依赖写法,Selenium 4.x的核心依赖是selenium-java,它会自动引入所有必要的子模块(比如chrome-driver、remote-driver、support等),如果你的依赖是拆分引入的,可能在4.28版本下有传递依赖的变化。

确保依赖声明是这种完整形式:

<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.28.0</version>
    <scope>test</scope> <!-- 非测试代码可以去掉scope或者改成compile -->
</dependency>

如果你之前是单独引入selenium-chrome-driverselenium-remote-driver等模块,建议改成引入selenium-java,避免遗漏必要的传递依赖。

2. 检查本地Maven仓库的依赖完整性

很多时候这种问题是因为4.28版本的依赖下载不完整或者损坏了:

  • 找到你的本地Maven仓库路径(默认是~/.m2/repository/org/seleniumhq/selenium
  • 删掉整个4.28.0的文件夹(包括所有子模块的4.28.0目录)
  • 回到IntelliJ,执行Maven -> Clean -> Install,强制重新下载完整的依赖包

3. 彻底重置IntelliJ的依赖索引与同步

IntelliJ的缓存有时候会“顽固”地保留旧的依赖信息,试试这些更彻底的操作:

  • 点击右侧Maven面板的Reload All Maven Projects按钮(刷新图标),等待同步完成(右下角会有进度提示)
  • 执行File -> Invalidate Caches...,选择Invalidate and Restart,让IntelliJ完全重启并重建索引
  • 检查File -> Project Structure -> Modules -> Dependencies,确认列表里有org.seleniumhq.selenium:selenium-java:4.28.0,如果没有,手动点击+ -> Library -> From Maven搜索添加

4. 排查依赖冲突

虽然你切回4.27就正常,但还是要确认有没有其他依赖间接引入了旧版本Selenium导致冲突:

  • 在IntelliJ的Maven面板里点击Show Dependencies,生成依赖树后搜索selenium,看所有相关依赖的版本是不是都是4.28.0
  • 或者在项目根目录执行Maven命令检查:
    mvn dependency:tree -Dincludes=org.seleniumhq.selenium
    
    如果发现有其他版本的Selenium,在对应的依赖里添加exclusions排除掉,比如:
    <dependency>
        <!-- 你的其他依赖 -->
        <groupId>xxx</groupId>
        <artifactId>xxx</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.seleniumhq.selenium</groupId>
                <artifactId>*</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    

5. 验证新项目的兼容性(排查项目配置问题)

如果以上操作都没用,创建一个全新的空Maven项目,只引入Selenium 4.28的依赖,写一个简单的测试代码:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class TestSelenium {
    public static void main(String[] args) {
        WebDriver driver = new ChromeDriver();
        driver.get("https://www.google.com");
        driver.quit();
    }
}

如果新项目里导入正常,说明你的原项目pom.xml可能有特殊配置(比如自定义镜像、依赖管理锁定、插件冲突等),对比两个项目的pom.xml找差异即可。

这种问题基本都是依赖同步或完整性导致的,按照上面的步骤来,大概率能解决~

内容来源于stack exchange

火山引擎 最新活动