我正在尝试第一次设置Selenium Grid。我能够运行集线器,也可以运行本地节点。一旦我试图在VM上运行一个节点,就会收到一个错误:
信息-无法注册此节点:错误发送注册请求:连接到:4445 /失败:连接超时:连接 信息-无法注册此节点:此中心已关闭或没有响应:连接到:4445 / failed: Connection : Connect
我运行集线器时:
java -jar selenium-server-standalone-3.4.0.jar -role hub -port 4445的本地节点
java -jar selenium-server-standalone-3.4.0.jar -role node -hub http://localhost:4445/grid/register/并尝试运行远程节点。
java -jar selenium-server-standalone-3.4.0.jar -role node -hub http://<local machine ip>:4445/grid/register/并使用
java -jar selenium-server-standalone-3.4.0.jar -role node -hub http://<host ip>:4445/grid/register/我从集线器终端会话中获得了以下消息:
12:24:55.593信息节点应该注册到http://:4445/grid/register/
我在双方(中心和节点)防火墙中打开了端口4444和4445(以防万一)。
任何人都知道它为什么不能工作,我能做些什么来帮助新节点连接我的集线器呢?
Thx
在Murthi第一次评论之后编辑:我尝试运行这两个:
java -jar selenium-server-standalone-3.4.0.jar -role node -hub <hub-machine-ip>以及:
java -jar selenium-server-standalone-3.4.0.jar -role node -hub <hub-machine-ip> -hubHost <host-ip>在这两种情况下,cmd都列出了Selenium Grid的所有选项。
我还试着跑:
java -jar selenium-server-standalone-3.4.0.jar -role node -hub http://<hub-machine-ip>:4445/grid/register -host <host-ip>然后我又回到了先前收到的连接超时错误。
编辑25/7: hub OS是,节点OS是Windows7 SP1,我从集线器机器运行集线器创建,从节点机器运行节点创建。我收到的错误总是相同的: INFO -无法注册这个节点:集线器已经关闭或没有响应:连接到:4444 / failed:Connection timed : Connect我在命令行终端上看到了这个消息,在节点机器上
发布于 2017-07-22 04:28:46
当您开始一个节点时,Selenium尝试找出您的IP地址,然后使用它将自己注册到集线器。在某些情况下,您的机器可能有两个IP地址(一个是公开的,另一个是不公开的),selenium可能找到一个没有公开的IP地址,并使用它注册自己。当这种情况发生时,节点将向中心发送注册请求,注册也将成功,但其侧的集线器尝试定期轮询节点,以检查节点是否活动,如果没有,则将该节点标记为已失效并将其删除。当集线器试图平分节点时,它将使用节点标识自己的id ( id通常是使用节点发送的节点的IP和端口形成的)。
这里是你可以尝试做的,找出瓶颈到底在哪里。
首先,我们需要找出在您的节点上是否真的存在端口(或) IP问题,这导致了破坏。为此,在节点计算机上,使用以下命令启动节点
java -jar selenium-server-standalone-3.4.0.jar -role node
这将派生出一个Selenium节点,该节点侦听5555端口,并尝试将自己注册到运行在localhost上并侦听端口4444的集线器上。你会在你的屏幕上看到很多故障(暂时忽略它们)。
现在,从另一台机器上尝试触发一个HTTPGET (通过wget或通过curl,或者通过在web浏览器上打开下面的URL )。
http://<IP_Of_Node_Machine_Goes_Here>:5555/assets/selenium.png
您应该在浏览器上下载(或) selenium徽标。
如果您遇到问题,在这个步骤中,它基本上确认您有IP问题(或)端口问题。
要确定是哪一个端口,首先尝试切换到另一个端口,如8080,然后使用命令启动节点。
java -jar selenium-server-standalone-3.4.0.jar -role node -port 8080
试着点击http://<IP_Of_Node_Machine_Goes_Here>:8080/assets/selenium.png
如果您现在看到了徽标,那么这意味着在您的节点机器上阻止传入流量的确实是5555 (您需要打开它)。
如果您仍然没有看到徽标,那么您最可能面临的是内部IP /外部IP问题。为了解决这个问题,找出在外部公开的框的IP,并在启动节点时通过-host参数提供这个IP。
另一种选择是让您的集线器和节点在8080端口上运行(因为它们运行在不同的机器上,所以不应该有任何端口争用)。我建议使用8080的原因是因为这个端口通常从未被阻塞,因为这是默认的Http端口。
希望这能帮你解决问题。
发布于 2017-07-20 11:47:43
在本地机器中启动集线器,使用
java -jar selenium-server-standalone-3.4.0.jar -role hub 和vm上的节点使用
java -jar selenium-server-standalone-3.4.0.jar -role node -hub http://<host ip>:4444/grid/register/ 在vm节点上启用TCP/UDP端口转发4444,在集线器计算机上启用5555。这可能对你有用。
https://stackoverflow.com/questions/45212817
复制相似问题