项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-09-18 · 当前星标 ★ 8660
使用教程
环境要求
- 已安装并启动 Docker(镜像发布在 Docker Hub 的 selenium 命名空间下)
- 如需编排多节点,需安装 Docker Compose
- Docker 有足够磁盘拉取浏览器镜像,且浏览器镜像需使用共享内存参数
- 在 Apple Silicon / ARM 机器上注意,compose 示例中部分浏览器镜像指定了 platform: linux/amd64
安装与启动步骤
-
1准备 Docker 环境
README 的安装说明全部基于 Docker,请先在本机安装并启动 Docker;浏览器镜像对共享内存有要求,需要在运行时通过参数放开。
-
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创建 Docker 网络
做 Hub-Node 分布式网格时,Hub 与 Node 必须处在同一网络,README 要求第一步先创建名为 grid 的网络。
docker network create grid -
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启动浏览器节点
在 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或用 Compose 起网格
把仓库里的 compose 文件保存到本地,在文件所在目录执行启动;该文件会一并拉起 Hub 与 Chrome、Edge、Firefox 等节点。
docker compose -f docker-compose-v3-beta-channel.yml up -
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 要求浏览器镜像使用 2g | 2g |
端口 4442-4444 | 是 | Hub 端口映射,WebDriver 测试使用 4444 | 4442-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
同类项目推荐
terminator
开源
用代码操控 Windows 桌面应用,像 Playwright 操控网页一样简单。
playwright for windows computer use
Data-Copilot
开源
说一句话,让智能体自动跑完海量数据处理流程
Data-Copilot: Bridging Billions of Data and Humans with Autonomous Workflow
on-device-browser-agent
开源
浏览器里跑本地大模型,动嘴就能自动操作网页,数据不出门
On-device AI browser automation using WebLLM. No cloud, no API keys, fully private.
chatgpt-scraper
开源
免费用网页抓取ChatGPT回复,省下API钱
Easily collect responses from ChatGPT scraper by providing a prompt along with valid···
ffmpeg-skill
开源
让 AI 代理本地剪视频,42 个 FFmpeg 工具开箱即用
Local video editor for coding agents: 42 FFmpeg tools with a machine-readable contra···
OpenBrowser
开源
本地多开浏览器环境,隔离指纹和代理,自动化操作提效
本地指纹浏览器 · 多环境隔离 · 代理 / 指纹 / 同步 / RPA
DJZ-Nodes
开源
给 ComfyUI 加特效和自动化,批量处理更省心
Custom nodes for ComfyUI — video effects, batch processing, prompt tools, image man···
FSB
开源
让 AI 直接读 DOM 操作 Chrome,自动化更稳更准
DOM-first AI browser automation for Chrome and MCP clients.
comfyui-workflow-versatile
开源
导入即用,一键搞定文生图、图生图、重绘和扩图
A general purpose ComfyUI workflow for common use cases.
