Selenium 服务器:将节点 http://172.294.80.80:5566 标记为关闭:无法访问该节点 2 次尝试
Selenium Server: Marking the node http://172.294.80.80:5566 as down: cannot reach the node for 2 tries
将节点 http://169.254.80.80:5566 标记为关闭:尝试 2 次无法到达该节点。
我认为这可能是一个 security/port 问题,所以我打开了端口 4444 和 5566 并告诉防火墙允许来自 selenium-server-standalone-3.141.59.jar 的连接。然而,Selenium Grid hub 仍然 "marks the node as down: cannot reach the node for 2 tries"。
selenium-server-standalone-3.141.59.jar 和 selenium-server-standalone-3.12.0.jar.
都会发生这种情况
问题:为什么 Selenium Grid Hub 会生成 "Marks the node as down: cannot reach the node for 2 tries"?我是 运行 同一台机器上的 Hub 和 Node。我猜这没问题。
我确实找到了类似 post 但不完全相同的错误消息,答案看起来像是错字。
Similar Stack Overflow post
图 1:来自 Selenium Grid Hub 和 Selenium 服务器节点的消息
图 2:允许连接 to/from 端口 4444
图 3:允许 Selenium 服务器通过防火墙
图 4:允许连接 to/from 端口 5566
我使用的是旧版本的 Selenium Server。
最新版本的 Selenium Projects/Products 可以在这里找到:
lastest version of Selenium Projects
最终能够在此处找到关于此问题的类似 post:
node not registering in earlier versions of Selenium Server
完整修复的描述(对我有用):
- 将 Selenium 升级到 3.5。 注意-1:不要依赖 VS 中的 Nuget 包管理器来告诉你最新的包是什么。 Nuget 包管理器 (UI) 认为 3.141 是最新的,但实际上是 3.5。 注意-2:看起来 DebanjanB 能够毫无问题地连接 1.141 Selenium 服务器,因此不需要升级到 3.5。
- 已与 Cisco AnyConnect 断开连接
- 运行 集线器:打开 cmd 并输入 java -jar selenium-server-standalone-3.5.0.jar -role hub
- 运行 节点:打开 cmd 并输入 java -Dwebdriver.chrome.driver=C:\RepoTests\WebDrivers\chromedriver.exe -Dwebdriver.gecko.driver=C:\RepoTests\WebDrivers\geckodriver.exe -Dwebdriver.edge.driver=C:\RepoTests\WebDrivers\MicrosoftWebDriver.exe -jar selenium-server-standalone-3.5.0.jar -role node -hub http://localhost:4444/grid/register -browser "browserName=chrome,version=66.0,maxInstances=5,seleniumProtocol=WebDriver"-浏览器"browserName=firefox,version=60.0.1,maxInstances=5,seleniumProtocol=WebDriver"-浏览器"browserName=MicrosoftEdge,version=10.0,maxInstances=5,seleniumProtocol=WebDriver"
注 1:我不必创建任何入站或出站防火墙规则(如原始问题中所述),因为节点使用“http://localhost:4444/..”连接到集线器。
注 2:无法让节点使用 DebanjanB 建议的实际 IP 地址连接到集线器。最终需要弄清楚这一点。想通了会post。
更多地了解您的用例和您使用的命令以及文本格式的跟踪日志将有助于更好地分析问题。但是在我的 localhost (Windows 10) 上,当我通过以下命令启动 Selenium Grid Hub 时:
C:\selenium-server-standalone>java -jar selenium-server-standalone-3.141.59.jar -role hub
生成的日志消息如下:
02:40:05.385 INFO [GridLauncherV3.parse] - Selenium server version: 3.141.59, revision: e82be7d358
02:40:06.025 INFO [GridLauncherV3.lambda$buildLaunchers] - Launching Selenium Grid hub on port 4444
2019-08-03 02:40:07.963:INFO::main: Logging initialized @4684ms to org.seleniumhq.jetty9.util.log.StdErrLog
02:40:10.538 INFO [Hub.start] - Selenium Grid hub is up and running
02:40:10.554 INFO [Hub.start] - Nodes should register to http://192.168.43.186:4444/grid/register/
02:40:10.554 INFO [Hub.start] - Clients should connect to http://192.168.43.186:4444/wd/hub
因此,Selenium Grid Node 应该注册到 http://192.168.43.186:4444/grid/register/
(而不是 http://localhost:4444/grid/register/
),如下所示:
C:\selenium-server-standalone>java -jar selenium-server-standalone-3.141.59.jar -role node -port 5566 -hub http://192.168.43.186:4444/grid/register
02:45:55.856 INFO [GridLauncherV3.parse] - Selenium server version: 3.141.59, revision: e82be7d358
02:45:56.216 INFO [GridLauncherV3.lambda$buildLaunchers] - Launching a Selenium Grid node on port 5566
2019-08-03 02:45:57.638:INFO::main: Logging initialized @2866ms to org.seleniumhq.jetty9.util.log.StdErrLog
02:45:58.747 INFO [WebDriverServlet.<init>] - Initialising WebDriverServlet
02:45:59.153 INFO [SeleniumServer.boot] - Selenium Server is up and running on port 5566
02:45:59.153 INFO [GridLauncherV3.lambda$buildLaunchers] - Selenium Grid node is up and ready to register to the hub
02:45:59.669 INFO [SelfRegisteringRemote.run] - Starting auto registration thread. Will try to register every 5000 ms.
02:46:01.731 INFO [SelfRegisteringRemote.registerToHub] - Registering the node to the hub: http://192.168.43.186:4444/grid/register
02:46:02.278 INFO [SelfRegisteringRemote.registerToHub] - The node is registered to the hub and ready to use
以下日志消息由 Selenium Grid Hub 生成:
02:46:02.278 INFO [DefaultGridRegistry.add] - Registered a node http://192.168.43.186:5566
将节点 http://169.254.80.80:5566 标记为关闭:尝试 2 次无法到达该节点。
我认为这可能是一个 security/port 问题,所以我打开了端口 4444 和 5566 并告诉防火墙允许来自 selenium-server-standalone-3.141.59.jar 的连接。然而,Selenium Grid hub 仍然 "marks the node as down: cannot reach the node for 2 tries"。
selenium-server-standalone-3.141.59.jar 和 selenium-server-standalone-3.12.0.jar.
都会发生这种情况问题:为什么 Selenium Grid Hub 会生成 "Marks the node as down: cannot reach the node for 2 tries"?我是 运行 同一台机器上的 Hub 和 Node。我猜这没问题。
我确实找到了类似 post 但不完全相同的错误消息,答案看起来像是错字。 Similar Stack Overflow post
图 1:来自 Selenium Grid Hub 和 Selenium 服务器节点的消息
图 2:允许连接 to/from 端口 4444
图 3:允许 Selenium 服务器通过防火墙
图 4:允许连接 to/from 端口 5566
我使用的是旧版本的 Selenium Server。
最新版本的 Selenium Projects/Products 可以在这里找到: lastest version of Selenium Projects
最终能够在此处找到关于此问题的类似 post: node not registering in earlier versions of Selenium Server
完整修复的描述(对我有用):
- 将 Selenium 升级到 3.5。 注意-1:不要依赖 VS 中的 Nuget 包管理器来告诉你最新的包是什么。 Nuget 包管理器 (UI) 认为 3.141 是最新的,但实际上是 3.5。 注意-2:看起来 DebanjanB 能够毫无问题地连接 1.141 Selenium 服务器,因此不需要升级到 3.5。
- 已与 Cisco AnyConnect 断开连接
- 运行 集线器:打开 cmd 并输入 java -jar selenium-server-standalone-3.5.0.jar -role hub
- 运行 节点:打开 cmd 并输入 java -Dwebdriver.chrome.driver=C:\RepoTests\WebDrivers\chromedriver.exe -Dwebdriver.gecko.driver=C:\RepoTests\WebDrivers\geckodriver.exe -Dwebdriver.edge.driver=C:\RepoTests\WebDrivers\MicrosoftWebDriver.exe -jar selenium-server-standalone-3.5.0.jar -role node -hub http://localhost:4444/grid/register -browser "browserName=chrome,version=66.0,maxInstances=5,seleniumProtocol=WebDriver"-浏览器"browserName=firefox,version=60.0.1,maxInstances=5,seleniumProtocol=WebDriver"-浏览器"browserName=MicrosoftEdge,version=10.0,maxInstances=5,seleniumProtocol=WebDriver"
注 1:我不必创建任何入站或出站防火墙规则(如原始问题中所述),因为节点使用“http://localhost:4444/..”连接到集线器。
注 2:无法让节点使用 DebanjanB 建议的实际 IP 地址连接到集线器。最终需要弄清楚这一点。想通了会post。
更多地了解您的用例和您使用的命令以及文本格式的跟踪日志将有助于更好地分析问题。但是在我的 localhost (Windows 10) 上,当我通过以下命令启动 Selenium Grid Hub 时:
C:\selenium-server-standalone>java -jar selenium-server-standalone-3.141.59.jar -role hub
生成的日志消息如下:
02:40:05.385 INFO [GridLauncherV3.parse] - Selenium server version: 3.141.59, revision: e82be7d358
02:40:06.025 INFO [GridLauncherV3.lambda$buildLaunchers] - Launching Selenium Grid hub on port 4444
2019-08-03 02:40:07.963:INFO::main: Logging initialized @4684ms to org.seleniumhq.jetty9.util.log.StdErrLog
02:40:10.538 INFO [Hub.start] - Selenium Grid hub is up and running
02:40:10.554 INFO [Hub.start] - Nodes should register to http://192.168.43.186:4444/grid/register/
02:40:10.554 INFO [Hub.start] - Clients should connect to http://192.168.43.186:4444/wd/hub
因此,Selenium Grid Node 应该注册到 http://192.168.43.186:4444/grid/register/
(而不是 http://localhost:4444/grid/register/
),如下所示:
C:\selenium-server-standalone>java -jar selenium-server-standalone-3.141.59.jar -role node -port 5566 -hub http://192.168.43.186:4444/grid/register
02:45:55.856 INFO [GridLauncherV3.parse] - Selenium server version: 3.141.59, revision: e82be7d358
02:45:56.216 INFO [GridLauncherV3.lambda$buildLaunchers] - Launching a Selenium Grid node on port 5566
2019-08-03 02:45:57.638:INFO::main: Logging initialized @2866ms to org.seleniumhq.jetty9.util.log.StdErrLog
02:45:58.747 INFO [WebDriverServlet.<init>] - Initialising WebDriverServlet
02:45:59.153 INFO [SeleniumServer.boot] - Selenium Server is up and running on port 5566
02:45:59.153 INFO [GridLauncherV3.lambda$buildLaunchers] - Selenium Grid node is up and ready to register to the hub
02:45:59.669 INFO [SelfRegisteringRemote.run] - Starting auto registration thread. Will try to register every 5000 ms.
02:46:01.731 INFO [SelfRegisteringRemote.registerToHub] - Registering the node to the hub: http://192.168.43.186:4444/grid/register
02:46:02.278 INFO [SelfRegisteringRemote.registerToHub] - The node is registered to the hub and ready to use
以下日志消息由 Selenium Grid Hub 生成:
02:46:02.278 INFO [DefaultGridRegistry.add] - Registered a node http://192.168.43.186:5566