Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法连接到AWS EC2上运行的Selenium网格_Java_Selenium_Amazon Web Services_Amazon Ec2_Remotewebdriver - Fatal编程技术网

Java 无法连接到AWS EC2上运行的Selenium网格

Java 无法连接到AWS EC2上运行的Selenium网格,java,selenium,amazon-web-services,amazon-ec2,remotewebdriver,Java,Selenium,Amazon Web Services,Amazon Ec2,Remotewebdriver,我有一个Selenium网格,并在AWS EC2实例上运行。我想使用Java从本地机器连接到它,通过RemoteWebDriver启动测试,但是,我无法通过SSH或公共IP连接到服务器 例如,我需要访问端口4444上的实例以获取url,然后需要建立连接并接收测试 每当我尝试使用公共IP时,我都会得到一个超时 任何帮助都将不胜感激。由于您的端口4444在EC2安全组中被阻止,您将获得超时。选中下面的复选框,您已将该规则添加到EC2安全组中。您可以添加0.0.0.0/0,但我建议只添加您的IP,因为

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

例如,我需要访问端口4444上的实例以获取url,然后需要建立连接并接收测试

每当我尝试使用公共IP时,我都会得到一个超时


任何帮助都将不胜感激。

由于您的端口4444在EC2安全组中被阻止,您将获得超时。选中下面的复选框,您已将该规则添加到EC2安全组中。您可以添加0.0.0.0/0,但我建议只添加您的IP,因为您将是唯一一个从本地访问该端口的人,并且为了更好的安全性


启动selenium grid hub时,会显示如下消息: 将节点注册到集线器:http://{hub ip}:4444/grid/register

当我尝试用集线器ip注册节点时,它对我不起作用。 因此,我通过登录ec2控制台来检查ec2实例的公共ip

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

所以使用ec2实例的公共ip注册节点。 selenium grid列出的集线器ip在ec2上对我不起作用

如果我把hub、node放在本地机器上,那么这些问题都不会发生

您是否在不同的ec2实例上运行node和hub? 您还应该添加remotehost选项,同时从与集线器实例不同的实例启动节点,以告知集线器您的ip地址

java-Dwebdriv.gecko.driver=“geckodriver”-jar selenium-server-standalone-3.13.0.jar-角色节点-中心http://{hub public ip}:4444/grid/register/-remoteHost“http://{node public ip}”
脚本实例-34.224.113.203的公共ip

我在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

谢谢您的帮助。我尝试了我的ip和所有,但它仍然拒绝连接,说它已经超时。以下是我的设置:在那里添加另一个规则http tcp 80 0.0.0.0/0尝试从家庭或公司网络外部访问控制台。如果您可以访问它,那么可能是您公司的代理/防火墙阻止您访问该URL。您也不能使用SSH?这是在Windows或Linux服务器上吗?这是一个Linux框,我可以通过SSH访问它,但我无法访问Linux框上的URL。@Smooey:几年后,我也遇到了同样的情况。您是如何解决此问题的?请帮忙。