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
相关产品推荐
相关产品推荐

