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

在Jenkins中集成Maven项目Selenium无头Chrome测试遇启动错误求助

解决Jenkins+Selenium Chrome无头模式启动失败问题

核心问题分析

  1. 驱动路径配置错误:你的代码中System.setProperty("webdriver.chrome.driver", "/usr/bin/google-chrome")指定的是Chrome浏览器的二进制文件路径,而非ChromeDriver的可执行文件路径,这会导致Selenium无法正确启动驱动。
  2. Linux无头模式缺少必要参数:Amazon Linux 2环境下,Chrome无头模式需要额外参数绕过X服务器依赖和系统限制。

解决方案步骤

1. 修正ChromeDriver路径

确认ChromeDriver的实际安装路径(通常为/usr/bin/chromedriver),修改代码中的路径配置。

2. 添加无头模式必备参数

在ChromeOptions中补充以下参数,解决X服务器缺失和系统权限问题:

  • --no-sandbox:禁用Chrome沙箱,Linux非root用户运行时必须
  • --disable-dev-shm-usage:规避/dev/shm空间不足的问题
  • --window-size=1920,1080:指定无头窗口尺寸,避免元素定位异常

修正后的完整代码:

System.setProperty("webdriver.chrome.driver", "/usr/bin/chromedriver");
ChromeOptions options = new ChromeOptions();
options.addArguments("headless");
options.addArguments("--no-sandbox");
options.addArguments("--disable-dev-shm-usage");
options.addArguments("--window-size=1920,1080");
driver = new ChromeDriver(options);
driver.get("https://www.google.com");

3. 环境验证与额外排查

  • 确认ChromeDriver与Chrome版本完全匹配:执行chromedriver --version和google-chrome --version对比输出
  • 确保Jenkins运行用户拥有ChromeDriver和Chrome文件的执行权限
  • 若仍存在X服务器依赖问题,可在Jenkins构建步骤中添加Xvfb虚拟桌面支持:
    # 启动虚拟X服务器
    Xvfb :99 -ac &
    export DISPLAY=:99
    # 再执行Maven测试命令
    mvn test
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 10:55:08