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

Jenkins运行Java+Selenium+TestNG自动化测试时无法找到Chrome浏览器的解决办法

Jenkins中Selenium ChromeDriver无法启动Chrome的解决方案

问题情况

本地IDE运行Java+Selenium+TestNG的自动化测试(比如获取google.com页面标题)完全正常,代码托管到Git后Jenkins能正常启动并编译项目,简单打印方法也能执行,ChromeDriver能启动,但出现报错:

"从路径/usr/bin/google-chrome启动的进程已停止运行,ChromeDriver认为Chrome已崩溃。"

已确认Chrome浏览器和ChromeDriver版本匹配,推测是WebDriver找不到正确的Chrome路径或运行环境存在问题。

解决方法

1. 显式指定Chrome的实际路径

在初始化ChromeDriver时,通过ChromeOptions指定Chrome的真实可执行文件路径。示例代码:

ChromeOptions options = new ChromeOptions();
// 先通过服务器命令`which google-chrome-stable`确认真实路径,再替换此处
options.setBinary("/usr/bin/google-chrome-stable");
WebDriver driver = new ChromeDriver(options);

注:有时候/usr/bin/google-chrome只是软链接,实际可执行文件可能是google-chrome-stable,得先在服务器上确认真实路径。

2. 开启Chrome无头模式并添加必要参数

Jenkins一般在无桌面环境下运行,必须启用无头模式,否则Chrome会因缺少GUI崩溃。在代码中添加以下参数:

options.addArguments("--headless=new");
options.addArguments("--no-sandbox");
options.addArguments("--disable-dev-shm-usage");
options.addArguments("--disable-gpu");

各参数作用:

  • --headless=new:新版无头模式,行为更接近正常浏览器
  • --no-sandbox:禁用沙箱,避免权限不足问题
  • --disable-dev-shm-usage:解决Linux系统下临时空间不足的问题
  • --disable-gpu:无头模式不需要GPU加速,直接禁用

3. 检查Jenkins用户的权限

确保Jenkins运行的用户(默认是jenkins用户)能访问Chrome可执行文件:

# 给Chrome可执行文件添加执行权限
sudo chmod +x /usr/bin/google-chrome-stable
# 把jenkins用户加入sudo组(视实际情况选择是否执行)
sudo usermod -aG sudo jenkins

也可以直接测试jenkins用户能否启动Chrome:

sudo -u jenkins google-chrome-stable --headless=new --dump-dom https://google.com

如果这步执行失败,说明权限或路径肯定存在问题。

4. 再次核对版本兼容性

虽然你已确认版本匹配,还是再检查一遍:

  • 查看Chrome版本:google-chrome-stable --version
  • 查看ChromeDriver版本:chromedriver --version
    要保证ChromeDriver的大版本和Chrome一致,比如Chrome是114.x系列,ChromeDriver也要是114.x.x.x系列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 00:20:18