我在AWS EC2实例上启动并运行了Selenium Grid。我想从我的本地机器使用Java通过RemoteWebDriver连接到我的测试,但是,我无法通过SSH或公共IP连接到服务器。
例如,我需要访问端口 4444 上的实例,获取http://123.456.78.910:4444/wd/hub的网址,然后需要建立连接并接收我的测试。
每当我尝试使用公共IP时,我只是暂时停止。
非常感谢任何帮助。
答案 0 :(得分:3)
您正在暂停,因为您的端口4444在EC2安全组中被阻止。检查下面您已将该规则添加到EC2安全组。您可以添加0.0.0.0/0但我建议只添加您的IP,因为您将是唯一一个从本地访问该端口并提高安全性的人。
答案 1 :(得分:0)
启动硒网格中心时,将显示诸如以下消息: 将节点注册到集线器:http:// {hub-ip}:4444 / grid / register
当我尝试向hub-ip注册节点时,它对我不起作用。 因此,我通过登录ec2控制台检查了ec2实例的public-ip。
然后我将节点注册到http:// {public-ip}:4444 / grid / register 它起作用了。
因此使用ec2实例的public ip注册该节点。 在ec2上,被硒网格屏蔽的集线器IP对我不起作用
如果我将hub,node放置在本地计算机上,则不会发生此问题。
您是否在不同的ec2实例上运行节点和集线器? 从不同于集线器实例的实例启动节点时,还应添加 remotehost 选项,以告诉集线器您的IP地址。
java -Dwebdriv.gecko.driver =“ geckodriver” -jar selenium-server-standalone-3.13.0.jar -role节点-hub http:// {hub-public-ip}:4444 / grid / register / -remoteHost“ http:// {node-public-ip}” 脚本实例的公共IP-34.224.113.203
答案 2 :(得分:0)
我对Selenium独立3-x遇到相同的问题。我安装了代理服务器(nginx)并进行了端口转发。然后它开始工作。
答案 3 :(得分:0)
请勿直接使用容器端口,而应使用与容器端口通信的主机端口。
例如:docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
"container id" selenium/hub "/opt/bin/entry_poinâ¦" 23 hours ago Up About an hour 0.0.0.0:32768->4444/tcp hub
此处使用端口32768
代替4444