Selenium Grid Hub镜像提供Selenium Grid Hub功能,需与一个或多个Selenium Grid Node配合使用,用于实现WebDriver测试的远程执行。Hub作为Selenium Grid的中心节点,负责协调和分发测试任务至连接的Node节点,支持分布式测试环境的构建。
http://localhost:4444/ui),用于查看Grid运行状态和任务执行情况Hub与Node需在同一网络中通过容器名称通信,首先创建专用网络:
bashdocker network create grid
使用创建的网络启动Hub容器,映射必要端口:
bashdocker run -d -p 4442-4444:4442-4444 --net grid --name selenium-hub selenium/hub:latest
参数说明:
-d:后台运行容器-p 4442-4444:4442-4444:映射端口(4442=事件总线发布端口,4443=事件总线订阅端口,4444=Hub服务端口)--net grid:加入之前创建的grid网络--name selenium-hub:指定容器名称(Node需通过此名称通信)在同一网络中启动Node容器,需配置与Hub的事件总线通信参数。以下示例包含Chrome、Edge、Firefox三种浏览器节点:
bash# Chrome节点 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ selenium/node-chrome:latest # Edge节点 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ selenium/node-edge:latest # Firefox节点 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub \ --shm-size="2g" \ -e SE_EVENT_BUS_PUBLISH_PORT=4442 \ -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 \ selenium/node-firefox:latest
powershell# Chrome节点 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` selenium/node-chrome:latest # Edge节点 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` selenium/node-edge:latest # Firefox节点 docker run -d --net grid -e SE_EVENT_BUS_HOST=selenium-hub ` --shm-size="2g" ` -e SE_EVENT_BUS_PUBLISH_PORT=4442 ` -e SE_EVENT_BUS_SUBSCRIBE_PORT=4443 ` selenium/node-firefox:latest
Node配置参数说明:
--shm-size="2g":设置共享内存大小(浏览器运行需较大共享内存,避免崩溃)SE_EVENT_BUS_HOST:Hub容器名称(需与Hub的--name一致)SE_EVENT_BUS_PUBLISH_PORT:Hub事件总线发布端口(固定4442)SE_EVENT_BUS_SUBSCRIBE_PORT:Hub事件总线订阅端口(固定4443)将测试代码中的远程WebDriver目标地址指向Hub服务端口:
java// Java示例 WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444"), new ChromeOptions());
通过Grid UI查看节点状态和任务执行情况:
访问 http://localhost:4444/ui
测试完成后,停止并删除容器,可选择删除网络:
bash# 停止所有Grid容器(Hub和Node) docker stop selenium-hub $(docker ps -q --filter "network=grid") # 删除所有Grid容器 docker rm selenium-hub $(docker ps -aq --filter "network=grid") # 删除Grid网络(可选) docker network rm grid
镜像标签遵循以下结构,用于指定Selenium Grid版本和发布日期:
selenium/hub-<Major>.<Minor>.<Patch>-<YYYYMMDD>
示例:Selenium Grid Server 4.9.0(2023年4月26日发布)对应标签:
selenium/hub:4(主版本4的最新版)selenium/hub:4.9(主版本4.9的最新版)selenium/hub:4.9.0(具体版本4.9.0)selenium/hub:4.9.0-20230426(包含发布日期的完整标签)建议:生产环境使用完整标签(如4.9.0-20230426)以固定版本,避免latest标签带来的版本变动风险。
| 环境变量名 | 作用 | 示例值 |
|---|---|---|
SE_EVENT_BUS_HOST | Hub容器名称(Node与Hub通信地址) | selenium-hub |
SE_EVENT_BUS_PUBLISH_PORT | Hub事件总线发布端口 | 4442 |
SE_EVENT_BUS_SUBSCRIBE_PORT | Hub事件总线订阅端口 | 4443 |
更多配置示例和高级用法,请参考GitHub项目文档:
Docker-Selenium***文档
本项目基于Apache License 2.0开源许可协议,源代码由社区志愿者维护。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429