咨询Jenkins环境下Chrome浏览器启动失败的解决方案
报错关键信息
Caused by: org.openqa.selenium.SessionNotCreatedException:无法启动新会话。响应码500。消息:未知错误:Chrome启动失败:异常退出。(未知错误:DevToolsActivePort文件不存在)(从路径/usr/bin/google-chrome启动的进程已不再运行,因此ChromeDriver判定Chrome已崩溃。)
构建信息:版本:'4.1.2',修订版本:'9a5a329c5a'
系统信息:主机:'bluehole-Lenovo-V15-G2-ITL-Ua',IP:'127.0.1.1',操作系统名称:'Linux',操作系统架构:'amd64',操作系统版本:'5.15.0-46-generic',Java版本:'9.0.4'
驱动信息:org.openqa.selenium.chrome.ChromeDriver
可行解决方案
添加无头模式及启动参数
Jenkins运行在无图形界面环境下,需给Chrome添加适配参数,示例Java代码:ChromeOptions options = new ChromeOptions(); options.addArguments("--headless=new"); // 适配Selenium 4+的无头模式 options.addArguments("--no-sandbox"); // 禁用沙箱模式,规避权限限制 options.addArguments("--disable-dev-shm-usage"); // 解决/dev/shm空间不足问题 options.addArguments("--remote-debugging-port=9222"); // 指定调试端口,解决DevToolsActivePort缺失问题 WebDriver driver = new ChromeDriver(options);匹配Chrome与ChromeDriver版本
确保Chrome浏览器和ChromeDriver版本严格对应,可通过以下命令查看当前Chrome版本:google-chrome --version下载对应版本的ChromeDriver替换现有驱动文件。
调整Jenkins用户权限
检查Jenkins运行用户是否有执行/usr/bin/google-chrome的权限,可执行命令授权:sudo chmod +x /usr/bin/google-chrome同时确保该用户能访问Chrome安装目录及临时文件存储路径。
配置虚拟显示环境(可选)
若需非无头模式运行,可安装Xvfb虚拟显示服务,在Jenkins构建任务中先执行:Xvfb :10 -ac & export DISPLAY=:10再启动自动化测试脚本。
内容的提问来源于stack exchange,提问作者Rahul Pawar

