无法连接到 AWS EC2 上的 Selenium Grid 运行
Unable to connect to Selenium Grid running on AWS EC2
我在 AWS EC2 实例上安装了 Selenium Grid 和 运行。我想使用 Java 从我的本地计算机连接到此以通过 RemoteWebDriver 启动我的测试,但是,我无法通过 SSH 或 Public IP 连接到服务器。
例如,我需要访问 4444 端口上的实例以获得 http://123.456.78.910:4444/wd/hub 的 url,然后需要建立连接并接收我的测试。
每当我尝试使用 Public IP 时,我都会超时。
如有任何帮助,我们将不胜感激。
您正在超时,因为您的端口 4444 在 EC2 安全组中被阻止。在下面检查您是否已将该规则添加到您的 EC2 安全组。您可以添加 0.0.0.0/0,但我建议只添加您的 IP,因为您将是唯一一个从本地访问该端口并获得更好安全性的人。
当您启动 selenium 网格集线器时 - 您会看到一条消息,例如:
将节点注册到集线器:http://{hub-ip}:4444/grid/register
当我尝试使用 hub-ip 注册节点时,它对我不起作用。
所以我通过登录到 ec2 控制台检查了我的 ec2 实例的 public-ip。
然后我用 http://{public-ip}:4444/grid/register 注册了节点
成功了。
所以使用ec2实例的publicip来注册节点。
selenium grid 挖掘的 hub-ip 在 ec2
上对我不起作用
如果我将集线器、节点放在本地机器上 - 那么 none 就会出现这个问题。
您 运行 节点和集线器在不同的 ec2 实例上吗?
您还应该在从不同于集线器实例的实例启动节点时添加 remotehost 选项,以告知集线器您的 IP 地址。
java -Dwebdriv.gecko.driver="geckodriver" -jar selenium-server-standalone-3.13.0.jar -role node -hub http://{hub-public-ip}:4444/grid/register/ -remoteHost "http://{node-public-ip}"
public 脚本实例的 ip - 34.224.113.203
我在使用 Selenium standalone 3-x 时遇到了同样的问题。我安装了一个代理服务器(nginx)并进行了端口转发。然后就开始工作了。
不要直接使用容器端口,而是使用主机端口,主机端口又与容器端口通信。
例如: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
我在 AWS EC2 实例上安装了 Selenium Grid 和 运行。我想使用 Java 从我的本地计算机连接到此以通过 RemoteWebDriver 启动我的测试,但是,我无法通过 SSH 或 Public IP 连接到服务器。
例如,我需要访问 4444 端口上的实例以获得 http://123.456.78.910:4444/wd/hub 的 url,然后需要建立连接并接收我的测试。
每当我尝试使用 Public IP 时,我都会超时。
如有任何帮助,我们将不胜感激。
您正在超时,因为您的端口 4444 在 EC2 安全组中被阻止。在下面检查您是否已将该规则添加到您的 EC2 安全组。您可以添加 0.0.0.0/0,但我建议只添加您的 IP,因为您将是唯一一个从本地访问该端口并获得更好安全性的人。
当您启动 selenium 网格集线器时 - 您会看到一条消息,例如: 将节点注册到集线器:http://{hub-ip}:4444/grid/register
当我尝试使用 hub-ip 注册节点时,它对我不起作用。 所以我通过登录到 ec2 控制台检查了我的 ec2 实例的 public-ip。
然后我用 http://{public-ip}:4444/grid/register 注册了节点 成功了。
所以使用ec2实例的publicip来注册节点。 selenium grid 挖掘的 hub-ip 在 ec2
上对我不起作用如果我将集线器、节点放在本地机器上 - 那么 none 就会出现这个问题。
您 运行 节点和集线器在不同的 ec2 实例上吗? 您还应该在从不同于集线器实例的实例启动节点时添加 remotehost 选项,以告知集线器您的 IP 地址。
java -Dwebdriv.gecko.driver="geckodriver" -jar selenium-server-standalone-3.13.0.jar -role node -hub http://{hub-public-ip}:4444/grid/register/ -remoteHost "http://{node-public-ip}" public 脚本实例的 ip - 34.224.113.203
我在使用 Selenium standalone 3-x 时遇到了同样的问题。我安装了一个代理服务器(nginx)并进行了端口转发。然后就开始工作了。
不要直接使用容器端口,而是使用主机端口,主机端口又与容器端口通信。
例如: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