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

Jenkins构建报错:org.openqa.selenium.WebDriverException: 等待驱动服务器启动超时

解决Jenkins上Maven自动化测试ChromeDriver启动失败问题

我之前在Jenkins的Linux节点上跑Selenium自动化测试时,也碰到过和你几乎一模一样的情况——本地跑完全正常,一到Jenkins就报错。结合我的排查经验,给你几个具体的解决方向:

  • 严格匹配Chrome浏览器与ChromeDriver版本
    哪怕你下载了最新的ChromeDriver,如果Jenkins虚拟机上的Chrome浏览器不是对应版本,大概率会出问题。先在Jenkins机器上执行命令查Chrome版本:

    google-chrome --version
    

    然后找完全对应大版本的ChromeDriver(比如Chrome是118.0.5993.x,ChromeDriver也要选118.0.5993开头的版本),小版本尽量保持一致。

  • 给ChromeDriver添加可执行权限
    Linux系统下,刚下载的ChromeDriver默认可能没有执行权限,Jenkins运行时会因为权限不足无法启动。可以在构建脚本里加一行权限设置:

    chmod +x ${WORKSPACE}/path/to/your/chromedriver
    

    或者提前在虚拟机里手动给驱动文件设置chmod +x权限。

  • 明确指定ChromeDriver路径并配置无头模式
    Linux虚拟机通常没有图形界面,必须用无头模式启动Chrome,同时要确保代码里正确指定驱动路径:

    ChromeOptions options = new ChromeOptions();
    // 新版Chrome的无头模式启动参数
    options.addArguments("--headless=new");
    // 解决Linux下的沙箱权限限制问题
    options.addArguments("--no-sandbox");
    // 避免/dev/shm空间不足导致浏览器崩溃
    options.addArguments("--disable-dev-shm-usage");
    // 明确指定ChromeDriver的绝对路径
    System.setProperty("webdriver.chrome.driver", "/var/lib/jenkins/workspace/your-project/src/test/resources/chromedriver");
    
    WebDriver driver = new ChromeDriver(options);
    

    这里的--no-sandbox和--disable-dev-shm-usage两个参数在Jenkins环境下几乎是必须的,很多权限和资源不足的问题靠这两个参数就能解决。

  • 检查Jenkins执行用户的环境变量
    Jenkins默认用jenkins用户运行任务,和你本地登录的用户环境可能不一样。如果代码里依赖环境变量中的ChromeDriver路径,要确保jenkins用户的PATH里包含驱动所在目录,或者直接在代码里用绝对路径(推荐后者,更稳定)。

  • 查看详细构建日志定位问题
    如果以上步骤都试过还没解决,建议把Jenkins的构建日志调至更详细级别,或者在构建脚本里添加调试命令:

    # 打印ChromeDriver版本
    ${WORKSPACE}/path/to/chromedriver --version
    # 测试Chrome是否能正常启动
    google-chrome --headless --no-sandbox --dump-dom https://www.google.com
    

    从这些命令的输出里,你能更精准地定位是驱动本身的问题,还是Chrome浏览器无法启动的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 10:27:41