无法连接到在AWS EC2上运行的Selenium Grid

时间:2016-08-03 10:25:16

标签: java selenium amazon-web-services amazon-ec2 remotewebdriver

我在AWS EC2实例上启动并运行了Selenium Grid。我想从我的本地机器使用Java通过RemoteWebDriver连接到我的测试,但是,我无法通过SSH或公共IP连接到服务器。

例如,我需要访问端口 4444 上的实例,获取http://123.456.78.910:4444/wd/hub的网址,然后需要建立连接并接收我的测试。

每当我尝试使用公共IP时,我只是暂时停止。

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:3)

您正在暂停,因为您的端口4444在EC2安全组中被阻止。检查下面您已将该规则添加到EC2安全组。您可以添加0.0.0.0/0但我建议只添加您的IP,因为您将是唯一一个从本地访问该端口并提高安全性的人。

enter image description here

答案 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