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

使用docker-compose运行Selenium测试报Chrome启动崩溃错误如何解决

Docker环境Selenium启动Chrome崩溃解决方案

你遇到的报错为:

(node:231) UnhandledPromiseRejectionWarning: WebDriverError: unknown error: Chrome failed to start: crashed.
  (chrome not reachable)
  (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'
System info: host: '1a84fd607b36', ip: '172.27.0.3', os.name: 'Linux', os.arch: 'amd64', os.version: '5.10.47-linuxkit', java.version: '1.8.0_292'
Driver info: driver.version: unknown
remote stacktrace: #0 0x00400068e949 <unknown>

可按照以下步骤逐一排查修复:

1. 补充Chrome启动强制参数

在Selenium的ChromeOptions配置中添加以下三个参数,为Docker容器环境适配:

--no-sandbox
--disable-dev-shm-usage
--headless=new
  • --no-sandbox:关闭Chrome默认开启的沙箱安全机制,Docker非特权容器默认不具备沙箱运行所需的系统权限,缺少该参数会直接导致Chrome启动崩溃
  • --disable-dev-shm-usage:禁用/dev/shm共享内存存储方案,Docker默认给/dev/shm分配的空间仅为64MB,不足以支撑Chrome正常运行,极易触发内存不足崩溃
  • --headless=new:启用Chrome新版无界面运行模式,无需依赖图形界面相关组件,适配无GUI的容器环境

2. 调整Docker容器启动配置

启动容器时添加--shm-size=2g参数,手动扩容共享内存空间,进一步避免Chrome运行时内存不足问题,示例启动命令:
docker run --shm-size=2g <你的镜像名称>

3. 校验运行用户权限

不要直接使用root用户启动Chrome进程,如必须使用root用户运行测试任务,确保已经添加了--no-sandbox启动参数。你也可以在Dockerfile中创建普通用户来运行测试进程,参考配置如下:

RUN useradd -m testuser
USER testuser

4. 校验版本匹配性

确认已安装的Google Chrome和ChromeDriver大版本完全一致,例如Chrome版本为118.x,则ChromeDriver也必须为118.x,即使是小版本差异也可能导致启动异常。可通过以下命令分别查看二者版本:
google-chrome --version
chromedriver --version


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:15:05