docker-selenium

一行命令拉起多浏览器 Selenium Grid,测试并行跑不停

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 自动化工作流 🍴 复刻 2537 🐛 待处理 98 👀 关注 238
访问官网 ↗ GitHub ↗
GitHub 星标 ★ 8660
维护状态 活跃
是否开源 开源
定价模式 🏷️完全免费 开源免费,Apache 2.0 许可证

项目预览

docker-selenium 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类自动化工作流
开发团队SeleniumHQ
定价模式🏷️完全免费
价格说明开源免费,Apache 2.0 许可证
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议NOASSERTION
主要语言Go
技术栈/模型containerization,devops,distributed-systems,docker,docker-selenium-grid,helm-chart,keda,kubernetes,kubernetes-selenium-grid,selenium,selenium-grid,selenium-grid-4,selenium-grid-setup,selenium-server,tools-and-automation,webdriver
GitHub 星标★ 8660
上线时间2014-11-17 00:00:00
代码更新2026-11-04
仓库体积54.0 MB
本站数据更新2026-11-05
维护状态活跃
收录时间2026-09-18
浏览次数1

项目介绍

docker-selenium 提供了一套开箱即用的容器镜像与编排方案,让 Selenium Grid 能基于 Docker、Kubernetes 或 Helm 快速部署 Chrome、Firefox、Edge 等浏览器节点,解决传统自建 Selenium 集群环境配置繁琐、节点扩缩容困难、浏览器版本管理混乱的问题。核心能力包括:官方维护的多浏览器镜像,支持独立模式与 Hub-Node 分布式网格;提供 Helm Chart 和 Kubernetes 部署清单,可结合 KEDA 按队列负载自动扩缩容;支持视频录制、VNC 实时查看、动态节点注册与节点 drain,方便调试和灰度升级。项目用 Go 编写辅助工具,镜像发布到 Docker Hub 与 GitHub Container Registry,适合 CI/CD 中大规模并行执行端到端测试。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-09-18 · 当前星标 ★ 8660

使用教程

难度:入门 约 10 分钟 部署方式:Docker 7 步

环境要求

  • 已安装并启动 Docker(镜像发布在 Docker Hub 的 selenium 命名空间下)
  • 如需编排多节点,需安装 Docker Compose
  • Docker 有足够磁盘拉取浏览器镜像,且浏览器镜像需使用共享内存参数
  • 在 Apple Silicon / ARM 机器上注意,compose 示例中部分浏览器镜像指定了 platform: linux/amd64

安装与启动步骤

  1. 1准备 Docker 环境

    README 的安装说明全部基于 Docker,请先在本机安装并启动 Docker;浏览器镜像对共享内存有要求,需要在运行时通过参数放开。

  2. 2启动独立模式容器

    最快的方式:用 standalone 镜像同时跑 Hub 和 Firefox 节点,README 快速开始即用此命令;请注意必须带 --shm-size=2g。

    docker run -d -p 4444:4444 -p 7900:7900 --shm-size="2g" selenium/standalone-firefox:4.48.0-20260905
  3. 3创建 Docker 网络

    做 Hub-Node 分布式网格时,Hub 与 Node 必须处在同一网络,README 要求第一步先创建名为 grid 的网络。

    docker network create grid
  4. 4启动 Hub 容器

    启动 selenium/hub 并映射 4442-4444 端口,容器名固定为 selenium-hub,便于节点按容器名互相识别。

    docker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:4.48.0-20260905
  5. 5启动浏览器节点

    在 grid 网络内启动 Chrome 节点,用 SE_EVENT_BUS_HOST 指向 Hub 容器名;Edge、Firefox 节点只需替换镜像名。

    docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \
        --shm-size="2g" \
        selenium/node-chrome:4.48.0-20260905
  6. 6或用 Compose 起网格

    把仓库里的 compose 文件保存到本地,在文件所在目录执行启动;该文件会一并拉起 Hub 与 Chrome、Edge、Firefox 等节点。

    docker compose -f docker-compose-v3-beta-channel.yml up
  7. 7查看容器画面与停止

    调试时可访问 7900 端口的 VNC 页面实时观察容器内浏览器;结束时用 compose down 停止并清理容器。

    docker compose -f docker-compose-v3-beta-channel.yml down

关键配置

配置项必填说明示例
SE_EVENT_BUS_HOST是节点通过它找到 Hub,值填 Hub 容器名,节点与 Hub 需同网络selenium-hub
--shm-size / shm_size是浏览器共享内存大小,README 要求浏览器镜像使用 2g2g
端口 4442-4444是Hub 端口映射,WebDriver 测试使用 44444442-4444:4442-4444
镜像 tag是用完整 tag 固定浏览器与 Grid 版本,避免版本漂移4.48.0-20260905
VNC 密码否访问 7900 端口看容器画面时的密码参数secret

如何确认成功

把 WebDriver 测试指向 http://localhost:4444;浏览器打开 http://localhost:7900/?autoconnect=1&resize=scale&password=secret 能看到容器内画面,

常见问题

Q:为什么运行浏览器镜像必须加 --shm-size=2g?

A:README 明确提示:执行包含浏览器的镜像时要用 --shm-size=2g 使用宿主机共享内存,否则共享内存过小容易导致浏览器崩溃;单容器装全部浏览器时示例用 3g。

Q:为什么建议用完整 tag 而不是 latest?

A:README 强调始终使用带完整 tag 的镜像来固定具体的浏览器和 Grid 版本,便于复现与升级,避免 latest 变动带来的不兼容。

Q:Hub 和 Node 是怎么互相发现的?

A:它们位于同一个 Docker 网络(示例为 grid)中,靠容器名互相识别;节点通过环境变量 SE_EVENT_BUS_HOST=selenium-hub 连接到 Hub。

Q:怎么停止并清理这套网格?

A:Compose 方式启动的用 docker compose down 停止并清理容器;手工 docker run 启动的容器退出后,README 提到可以删除先前创建的网络。

注意事项

  • 浏览器镜像运行务必带 --shm-size,单浏览器节点用 2g,全浏览器节点示例用 3g。
  • 镜像不要用 latest,用完整 tag 固定浏览器和 Grid 版本。
  • compose 示例里 Edge、chrome-for-testing 等镜像标注了 platform: linux/amd64,非 amd64 机器需留意。
  • 除 Docker 外,README 还提供 Helm Chart,可在 Kubernetes 中创建 Selenium Grid。

核心亮点

  • 官方镜像覆盖 Chrome、Firefox、Edge 及对应 Debug 版本,浏览器与驱动版本匹配由项目维护,省去手动对齐成本
  • 提供 Helm Chart 与 KEDA 集成,Kubernetes 下可按会话队列自动扩缩容,显著降低空闲资源开销
  • 支持 VNC 实时观察、视频录制和节点动态注册/drain,调试与滚动升级体验完整

不足之处

  • 镜像体积较大,冷启动拉取耗时明显,在弹性扩缩容场景下会拖慢节点就绪速度
  • 大规模高并发下的稳定性与性能调优文档偏少,更多依赖社区 issue 与经验摸索

适用场景

  • CI/CD 流水线中并行执行跨浏览器端到端测试
  • Kubernetes 集群内按测试负载弹性伸缩的 Selenium Grid
  • 需要录制测试视频或 VNC 远程排查失败用例的自动化团队

替代项目

SeleniumHQ/selenium、zalenium、Moon

上一篇:SeleniumBase

下一篇:awesome-browser-automation

同类项目推荐

terminator 开源

用代码操控 Windows 桌面应用,像 Playwright 操控网页一样简单。

playwright for windows computer use

★ 1666 2026-08-09
Data-Copilot 开源

说一句话,让智能体自动跑完海量数据处理流程

Data-Copilot: Bridging Billions of Data and Humans with Autonomous Workflow

★ 1512 2026-10-23
on-device-browser-agent 开源

浏览器里跑本地大模型,动嘴就能自动操作网页,数据不出门

On-device AI browser automation using WebLLM. No cloud, no API keys, fully private.

★ 305 2026-09-18
chatgpt-scraper 开源

免费用网页抓取ChatGPT回复,省下API钱

Easily collect responses from ChatGPT scraper by providing a prompt along with valid···

★ 3369 2026-08-09
ffmpeg-skill 开源

让 AI 代理本地剪视频,42 个 FFmpeg 工具开箱即用

Local video editor for coding agents: 42 FFmpeg tools with a machine-readable contra···

★ 4489 2026-10-20
OpenBrowser 开源

本地多开浏览器环境,隔离指纹和代理,自动化操作提效

本地指纹浏览器 · 多环境隔离 · 代理 / 指纹 / 同步 / RPA

★ 781 2026-08-10
DJZ-Nodes 开源

给 ComfyUI 加特效和自动化,批量处理更省心

Custom nodes for ComfyUI — video effects, batch processing, prompt tools, image man···

★ 81 2026-08-09
FSB 开源

让 AI 直接读 DOM 操作 Chrome,自动化更稳更准

DOM-first AI browser automation for Chrome and MCP clients.

★ 204 2026-09-18
comfyui-workflow-versatile 开源

导入即用,一键搞定文生图、图生图、重绘和扩图

A general purpose ComfyUI workflow for common use cases.

★ 65 2026-08-09