Selenium Grid部署问题:节点未注册到Hub(Docker Compose环境)
Selenium Grid节点无法连接Hub问题解决建议
我通过Docker Compose部署Selenium Grid,容器创建成功(截图如下),但访问localhost:4444时显示错误:The Grid has no registered Nodes yet,节点无法连接到Hub,求解决建议。

当前docker-compose.yml配置
version: "3" services: hub: image: selenium/hub ports: - "4444:4444" chrome: image: selenium/node-chrome container_name: web-automation_chrome depends_on: - hub volumes: - /dev/shm:/dev/shm ports: - "9001:5900" links: - hub firefox: image: selenium/node-firefox container_name: web-automation_firefox depends_on: - hub volumes: - /dev/shm:/dev/shm ports: - "9002:5900" links: - hub
解决建议
- 等待Hub服务完全就绪:
depends_on仅保证容器启动顺序,不代表Hub服务已经可用。可以给节点添加启动延迟,修改chrome和firefox服务的配置:command: bash -c "sleep 10 && /opt/bin/entry_point.sh" - 显式配置事件总线参数:新版Selenium Grid通过事件总线通信,需给节点指定Hub的事件总线地址,在chrome和firefox服务中添加环境变量:
environment: - SE_EVENT_BUS_HOST=hub - SE_EVENT_BUS_PUBLISH_PORT=4442 - SE_EVENT_BUS_SUBSCRIBE_PORT=4443 - 验证容器网络连通性:进入节点容器测试与Hub的连通性,执行以下命令:
docker exec -it web-automation_chrome ping hub docker exec -it web-automation_chrome curl http://hub:4444/wd/hub/status - 统一镜像版本:避免版本不兼容问题,给所有镜像指定相同的稳定版标签,比如
selenium/hub:4.16、selenium/node-chrome:4.16 - 移除旧版links配置:Docker Compose v3默认桥接网络支持服务名访问,links是旧特性,直接移除该配置即可
内容的提问来源于stack exchange,提问作者gm85
相关产品推荐
相关产品推荐

