【问题标题】:Unable to connect to Selenium Grid running on AWS EC2无法连接到在 AWS EC2 上运行的 Selenium Grid
【发布时间】:2016-12-09 00:25:56
【问题描述】:

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

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

每当我尝试使用公共 IP 时,我都会遇到超时。

任何帮助将不胜感激。

【问题讨论】:

  • 你也不能SSH?
  • 这是在 Windows 还是 Linux 服务器上?
  • 这是一个 linux 机器,我可以 SSH 到它,但我无法访问 linux 机器上的 url。
  • @Smoeey:多年后,我也处于同样的境地。你是如何解决这个问题的?请帮忙。

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


【解决方案1】:

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

【讨论】:

  • 感谢您的帮助。我用我的 ip 和 all 都试过了,但它仍然拒绝连接,说它已经超时。这些是我的设置:i.imgur.com/28s1Ghl.jpg
  • 在此处添加另一个规则 http tcp 80 0.0.0.0/0
  • 尝试从家中或公司网络外部访问控制台。如果您可以访问它,那么它可能是您公司的代理/防火墙阻止您访问该 URL。
【解决方案2】:

当您启动 selenium 网格集线器时 - 您会看到一条消息,例如: 将节点注册到集线器:http://{hub-ip}:4444/grid/register

当我尝试使用 hub-ip 注册节点时,它对我不起作用。 所以我通过登录 ec2 控制台检查了我的 ec2 实例的公共 IP。

然后我用 http://{public-ip}:4444/grid/register 注册了节点 成功了。

所以使用 ec2 实例的公共 ip 来注册节点。 selenium grid 挖掘的 hub-ip 在 ec2 上对我不起作用

如果我将集线器、节点放在本地机器上 - 那么这个问题就不会发生。

您是否在不同的 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}" 脚本实例的公共 ip - 34.224.113.203

【讨论】:

  • 感谢以上内容,请您提供有关脚本实例公共 IP 的更多信息 - 34.224.113.203。这是否意味着 Selenium 客户端的 IP?
  • @TinasheChinyanga 是的,检查您机器的公共 IP => 集线器,节点。我想我刚刚添加了集线器的示例 IP 地址。添加集线器IP,节点IP我猜集线器是服务器,节点是客户端。对不起,我已经工作了很长时间。如果您使用的是 aws,则 ec2 控制台具有公共 IP。一切顺利。 selenium 还提供 irc 聊天支持,您可以在其中提出问题。
【解决方案3】:

Selenium Standalone 3-x 也有同样的问题。我安装了代理服务器(nginx)并进行了端口转发。然后它开始工作了。

【讨论】:

    【解决方案4】:

    不要直接使用容器端口,而是使用主机端口,主机端口反过来与容器端口通信。

    例如: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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-29
      • 2020-04-19
      • 2019-11-10
      • 2017-03-14
      • 2021-09-18
      • 2016-05-14
      • 2021-10-06
      • 2020-01-09
      相关资源
      最近更新 更多