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

docker-compose部署Selenium Grid4报无法新建会话错误求助

Selenium 4 Grid 适配Mac M1设备异常问题解决步骤

1. 解决selenium-distributor进程退出码137问题

退出码137代表进程因内存不足被系统强制终止,对应处理方案:

  • 打开Docker Desktop设置,进入「资源」-「高级」页签,将分配给Docker的内存上限从默认的2GB调整至≥4GB,CPU核心数调整至≥4核,修改后重启Docker并重跑容器集群。
  • 若内存资源有限,可简化Grid部署模式:单机测试场景无需使用全分布式架构,去掉独立部署的distributor、session-map、event-bus等组件,改用Hub+Node的简化部署模式,降低资源占用。

2. 修复Mac M1芯片架构兼容性问题

M1为arm64架构,官方默认Selenium镜像多为amd64架构,使用Rosetta转译运行会出现节点无法注册、Hub服务异常的问题:

  • 替换所有Selenium镜像为arm64适配版本:
    • Hub使用seleniarm/hub:4.x(社区维护的arm架构适配镜像,而非官方的selenium/hub)
    • Chrome节点使用seleniarm/node-chromium,M1设备无适配的官方Chrome容器镜像,需使用Chromium的arm适配版本,禁止使用默认的selenium/node-chrome镜像。
  • 给docker-compose中每个Selenium服务新增platform: linux/arm64配置,强制指定容器运行架构,避免自动转译异常。

3. 服务连通性与代码配置校验

  • 容器启动后等待30s再访问http://localhost:4444,Selenium4 Hub服务初始化需要一定时间,刚启动时无法访问属于正常现象。
  • 若仍无法访问,执行docker ps确认所有核心容器处于运行状态,若有服务异常退出,执行docker logs <容器ID>查看具体报错信息。
  • 调整RemoteWebDriver初始化时的ChromeOptions配置,新增容器运行必备参数:
    ChromeOptions options = new ChromeOptions();
    options.addArguments("--no-sandbox");
    options.addArguments("--disable-dev-shm-usage");
    options.addArguments("--remote-allow-origins=*");
    // 使用Chromium镜像时需指定浏览器二进制路径
    options.setBinary("/usr/bin/chromium");
    

4. 最简场景验证

如果分布式部署始终异常,可先通过单机Standalone模式验证环境可用性:

  • 执行命令直接启动单机测试环境:docker run -d -p 4444:4444 --platform linux/arm64 seleniarm/standalone-chromium:latest
  • 服务启动完成后访问http://localhost:4444/ui确认控制台可正常打开,再运行测试验证功能,排查是否为分布式部署配置问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 21:54:02