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

Selenium通过Maven运行测试时浏览器启动后立即关闭如何修复

问题根因

你的pom.xml存在严重的依赖版本冲突和配置冗余问题,不同版本的Selenium、WebDriverManager组件混用,导致本地运行时WebDriver生命周期管理异常,浏览器启动后直接被销毁,且老旧的测试插件会屏蔽错误日志输出。

修复步骤

  • 清理重复、冲突的依赖
    • 删除重复声明的io.github.bonigarcia:webdrivermanager依赖,仅保留3.2.0高版本即可,删除2.2.1版本的声明
    • 删除老旧的org.seleniumhq.selenium:selenium:2.0rc2依赖,你已经引入了3.14.0版本的selenium-java,这个2.0rc2的旧版本会导致核心API冲突
    • 删除多余的org.seleniumhq.selenium:selenium-chrome-driver依赖,selenium-java已经包含了各浏览器驱动的核心依赖,单独声明容易出现版本不匹配
  • 修正构建插件配置
    • 删除重复声明的maven-jar-plugin配置,当前build配置里重复写了两次该插件,保留任意一个即可
    • 升级maven-surefire-plugin版本到2.22.2以上,你当前使用的2.7.1版本过于老旧,和JDK8、新版测试框架兼容性差,容易出现测试执行日志丢失、进程提前终止的问题,修改后配置参考:
<plugin>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.22.2</version>
    <configuration>
        <systemPropertyVariables>
            <environment>${env}</environment>
            <browser>${browser}</browser>
        </systemPropertyVariables>
        <forkCount>1</forkCount>
        <reuseForks>false</reuseForks>
        <trimStackTrace>false</trimStackTrace>
    </configuration>
</plugin>
  • 清理本地缓存重新构建
    执行以下命令清空本地缓存的冲突依赖,重新构建项目:
mvn clean install -U

额外排查建议

如果修复依赖后问题仍存在,可在WebDriver初始化代码后添加Thread.sleep(10000)临时调试,确认是浏览器启动后直接崩溃还是测试代码执行完毕自动销毁,如果是自动销毁可检查你是否在测试用例的@After hook中提前执行了driver.quit()逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 13:21:03