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

Ubuntu环境下Selenium无法启动Google Chrome的排查求助

解决Ubuntu+Jenkins+Selenium Chrome启动失败的额外方案

我之前在Jenkins环境里折腾Selenium自动化测试时,也碰到过和你完全一样的报错——Chrome总是异常退出,DevToolsActivePort文件找不到。除了你已经配置的--no-sandbox和--disable-dev-shm-usage,还有几个靠谱的修复方向可以挨个试试:

  • 指定Chrome二进制文件的完整路径
    有时候Jenkins的运行环境找不到正确的Chrome安装位置,尤其是你手动安装Chrome而非通过apt的情况。可以在ChromeOptions里显式设置:

    ChromeOptions options = new ChromeOptions();
    options.setBinary("/opt/google/chrome/chrome"); // 根据你的实际路径调整
    options.addArguments("--no-sandbox");
    options.addArguments("--disable-dev-shm-usage");
    

    可以先在Jenkins机器上执行which google-chrome命令,确认Chrome的实际路径。

  • 启用Chrome无头模式(新版参数)
    Jenkins通常运行在无桌面的服务器环境下,必须让Chrome以无头模式启动。注意新版Chrome(112+)推荐使用--headless=new参数,旧版的--headless可能存在兼容性问题:

    options.addArguments("--headless=new");
    
  • 检查Jenkins用户的权限与文件权限
    确保Jenkins进程的运行用户(默认是jenkins用户)对Chrome、ChromeDriver有执行权限,同时对临时目录有读写权限:

    1. 给ChromeDriver添加执行权限:sudo chmod +x /path/to/your/chromedriver
    2. 让jenkins用户拥有Chrome目录的访问权限:sudo chown -R jenkins:jenkins /opt/google/chrome
    3. 避免直接给jenkins用户sudo权限,优先调整文件所属组或权限。
  • 严格匹配Chrome与ChromeDriver版本
    版本不兼容是这类问题的重灾区!一定要保证Chrome和ChromeDriver的大版本完全一致:

    1. 在Jenkins机器上执行google-chrome --version查看Chrome版本(比如Google Chrome 119.0.6045.105)
    2. 下载对应大版本的ChromeDriver,替换掉当前项目中或环境里的旧驱动。
  • 配置虚拟显示(Xvfb)
    如果你的Jenkins环境没有任何显示服务,即使开了无头模式也可能出问题。可以通过Xvfb创建虚拟桌面:

    1. 先安装Xvfb:sudo apt-get install xvfb
    2. 在Jenkins的构建步骤中,先执行启动命令:Xvfb :99 -ac & export DISPLAY=:99,再运行mvn test
    3. 更省心的方式是安装Jenkins的Xvfb插件,它会自动管理虚拟显示环境。
  • 禁用GPU加速
    虽然新版无头模式下这个参数不是必须,但在某些特殊的服务器环境中,添加它能解决启动异常:

    options.addArguments("--disable-gpu");
    

建议你按照「版本匹配→无头模式→路径指定→权限检查」的顺序来排查,大部分情况下前三个步骤就能解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:57:54