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

ChromeDriver+Selenium在Jenkins运行自动化测试超时问题求助

解决Jenkins中Selenium+ChromeDriver自动化测试超时问题

兄弟,你遇到的这个Timed out receiving message from renderer: 20.000错误,在Jenkins这种无头环境里真的太常见了——毕竟Eclipse和本地命令行都是有桌面界面的,Chrome能正常渲染,但Jenkins跑测试的时候根本没图形界面支撑,自然就卡壳了。下面给你几个针对性的解决办法,亲测有效:

1. 给Chrome加上无头模式配置

这是最核心的一步,Jenkins服务器没有桌面,Chrome必须以无头模式启动才能干活。你得在初始化ChromeDriver的时候加上这些参数:

ChromeOptions options = new ChromeOptions();
// 新版Chrome用这个参数,旧版可以换成--headless
options.addArguments("--headless=new");
// 禁用GPU加速,避免无头模式下的兼容问题
options.addArguments("--disable-gpu");
// 关闭沙箱模式,Jenkins运行的用户一般没沙箱权限
options.addArguments("--no-sandbox");
// 解决/dev/shm空间不足导致的渲染卡顿
options.addArguments("--disable-dev-shm-usage");

WebDriver driver = new ChromeDriver(options);

2. 核对ChromeDriver和Chrome的版本兼容性

你用的ChromeDriver是2.33版本,这版本老得掉牙了,只支持Chrome 60-62左右的版本。如果Jenkins服务器上装的Chrome是新版的,那肯定会出现兼容性问题,直接导致渲染超时。

  • 先查下Jenkins服务器上的Chrome版本,然后去下载对应版本的ChromeDriver(比如Chrome 114就对应ChromeDriver 114.x.x.x)
  • 把新的ChromeDriver路径加到Jenkins的环境变量里,或者在测试代码里直接指定绝对路径

3. 适当延长超时时间

有时候页面加载确实慢,默认20秒的渲染超时不够用,你可以调长一点:

ChromeOptions options = new ChromeOptions();
// 把页面加载超时设为60秒,根据实际情况调整
options.setPageLoadTimeout(Duration.ofSeconds(60));
// 或者直接给driver设置超时
driver.manage().timeouts().pageLoadTimeout(Duration.ofSeconds(60));

4. 检查Jenkins运行用户的权限

Jenkins的运行用户可能没权限访问Chrome或者ChromeDriver,你可以:

  • 看看Chrome和ChromeDriver的执行权限,确保Jenkins用户有execute权限
  • 在Jenkins任务里加个whoami命令,看看当前跑任务的用户是谁,然后切换到这个用户,在服务器命令行手动跑测试,看能不能复现问题——这样能快速定位是不是权限的锅

5. 确认Jenkins的环境配置

确保Jenkins的JDK8环境是对的,而且ChromeDriver的路径已经加到PATH里了,要是没加,就在测试代码里明确指定:

// 替换成你Jenkins服务器上ChromeDriver的绝对路径
System.setProperty("webdriver.chrome.driver", "/opt/chromedriver");

要是还是不行,你可以先在Jenkins服务器上手动执行和任务里一样的Ant命令,看看能不能复现问题,这样更容易揪出具体原因。

内容的提问来源于stack exchange,提问作者Andrew C.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:53:38