Selenium Grid 与不同主机上的 Docker 容器

2024-02-10

我喜欢使用官方 Docker 镜像在 AWS 上设置 Selenium Grid,可以在此处找到https://github.com/SeleniumHQ/docker-selenium https://github.com/SeleniumHQ/docker-selenium

集线器和节点应驻留在不同的机器/docker 主机上。

我使用大使容器,如下所述:https://docs.docker.com/articles/ambassador_pattern_linking/ https://docs.docker.com/articles/ambassador_pattern_linking/

(集线器) --> (硒大使) --网络--> (硒大使) --> (节点)

我创建了两个 EC2 实例并执行了以下命令:

在轮毂机器上:

$ docker run -d --name selenium-hub selenium/hub:2.47.1
$ docker run -d --link selenium-hub:selenium-hub --name selenium_ambassador -p 4444:4444 svendowideit/ambassador

在节点机器上:

$ docker run -d --name selenium_ambassador --expose 4444 -e SELENIUM_PORT_4444_TCP=tcp://<public-AWS-EC2-IP>:4444 svendowideit/ambassador
$ docker run -d --link selenium_ambassador:selenium-hub selenium/node-chrome:2.47.1

运行最后一个命令后,我在节点计算机上收到以下错误消息:

Not linked with a running Hub container

每台 EC2 计算机上的安全组允许端口 22 和 4444。

我希望,有人可以帮助我或给我线索吗?提前致谢。


经过更多研究后,我发现不需要额外的大使容器。设置适当的参数/环境变量REMOTE_HOST、HUB_PORT_4444_TCP_ADDR、HUB_PORT_4444_TCP_PORT后,节点和集线器可以直接通信。还有一个相应已解决的问题https://github.com/SeleniumHQ/docker-selenium/issues/51 https://github.com/SeleniumHQ/docker-selenium/issues/51

简而言之,只需执行以下命令:

Hub

$ docker run -d -p 4444:4444 --name selenium-hub selenium/hub:2.47.1

Node

$ docker run -d -p 5555:5555 -e REMOTE_HOST="http://<PASTE-NODE-IP>:5555" -e HUB_PORT_4444_TCP_ADDR="<PASTE-HUB-IP>" -e HUB_PORT_4444_TCP_PORT="4444" --name chrome-node selenium/node-chrome:2.47.1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Selenium Grid 与不同主机上的 Docker 容器 的相关文章

随机推荐