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

Jenkins服务器上Java+Selenium自动化测试无法创建浏览器会话求助

Jenkins服务器上Java+Selenium自动化测试无法创建浏览器会话问题

问题背景

本地运行Java+Selenium自动化测试正常,但在Jenkins服务器(Linux Azure环境,内核版本6.2.0-1018-azure)上,Firefox和Chrome均无法创建会话。已确认服务器安装了两款浏览器,此前已解决代理问题,目前无服务器访问权限,需向管理员提供可行排查方案,但管理员称配置正常。

Firefox报错信息

[ERROR] Tests run: 3, Failures: 1, Errors: 0, Skipped: 2, Time elapsed: 1.763 s <<< FAILURE! - in XXX.Tests.LoginTests
[ERROR] XXX.Tests.LoginTests.beforeTest Time elapsed: 1.485 s <<< FAILURE!
org.openqa.selenium.SessionNotCreatedException:
Could not start a new session. Response code 500. Message: Process unexpectedly closed with status 1
Host info: host: ‘PFALT224183’, ip: ‘10.61.224.183’
Build info: version: ‘4.21.0’, revision: ‘79ed462ef4’
System info: os.name: ‘Linux’, os.arch: ‘amd64’, os.version: ‘6.2.0-1018-azure’, java.version: ‘17.0.9’
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Command: [null, newSession {capabilities=[Capabilities {acceptInsecureCerts: true, browserName: firefox, moz:debuggerAddress: true, moz:firefoxOptions: {binary: /usr/bin/firefox}}]}]

Chrome报错信息

org.openqa.selenium.SessionNotCreatedException:
Could not start a new session. Response code 500. Message: session not created: Chrome failed to start: exited normally.
(session not created: DevToolsActivePort file doesn’t exist)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Host info: host: ‘PFALT224183’, ip: ‘10.61.224.183’
Build info: version: ‘4.21.0’, revision: ‘79ed462ef4’
System info: os.name: ‘Linux’, os.arch: ‘amd64’, os.version: ‘6.2.0-1018-azure’, java.version: ‘17.0.9’
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: , binary: /usr/bin/google-chrome, extensions: }}]}]

给管理员的排查/解决方案清单

Chrome专项检查

  • 版本兼容性验证:确认Chrome浏览器与ChromeDriver版本完全匹配(Selenium 4.21.0要求Chrome 114+对应ChromeDriver 114+),两者版本不一致会直接导致启动失败。
  • 添加无头启动参数:在ChromeOptions中强制添加--headless=new、--no-sandbox、--disable-dev-shm-usage参数,适配Jenkins无图形界面环境,解决DevToolsActivePort文件缺失问题。
  • 权限检查:验证Jenkins运行用户对/usr/bin/google-chrome有执行权限,且能访问系统临时目录(用于生成DevToolsActivePort文件)。

Firefox专项检查

  • 驱动版本匹配:确认GeckoDriver版本与Firefox版本兼容(如Firefox 115+对应GeckoDriver 0.33+),且已正确配置环境变量或在测试代码中指定驱动路径。
  • 启用无头模式:在FirefoxOptions中添加-headless参数,避免无图形界面下的启动失败。
  • 依赖与权限:检查Jenkins用户可执行/usr/bin/firefox,且服务器已安装Firefox运行所需的GTK等依赖库。

通用检查项

  • 手动启动验证:让管理员在服务器终端执行/usr/bin/google-chrome --headless=new --no-sandbox和/usr/bin/firefox -headless命令,捕获终端输出的错误日志,定位具体启动失败原因(如依赖缺失、权限不足)。
  • 虚拟显示配置:若浏览器版本较旧,需安装Xvfb虚拟显示服务,并配置Jenkins在构建时加载Xvfb环境(如通过Jenkins插件或构建命令中添加xvfb-run前缀)。
  • Selenium驱动管理:确认项目中使用的WebDriverManager等自动驱动管理工具,是否能针对Linux环境自动下载匹配版本的驱动,而非使用本地Windows版本驱动。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 11:16:02