API 用于从网格主机获取 selenium 节点状态

API for getting the selenium nodes status from the grid host

很抱歉提出一般性问题,但是是否有一个 api 可用作 selenium 网格的一部分,我可以查询它以找出网格上的当前活动会话。有一个 api 使用 Json Wire 协议,可以查询各个节点以获取会话信息。但是我想知道是否有一个与我可以查询以获取所有节点的会话信息的网格机器绑定的。任何帮助表示赞赏。谢谢!

目前没有任何东西可以让您查询网格的内部结构并找出当前 运行 网格的所有会话。

简而言之 shell,以下是网格公开的 API:

  1. 集线器将我的测试路由到哪里?您可以通过 URL (GET REQUEST) http://localhost:4444/grid/api/testsession?session=<SessionIdGoesHere> [ 会话 ID 可以通过 driver.getSessionId() 获得,其中 driverRemoteWebDriver 类型或其 sub-classes.
  2. 获取我的会话路由到的代理的详细信息?您可以通过 URL (GET REQUEST) http://localhost:4444/grid/api/proxy?id=<NodeIdGoesHere> [NodeId 的形式是 http://Ip:port 并且这两个都可以在 (2) ]
  3. 的响应中获得
  4. 获取集线器的配置。您可以通过 URL (GET REQUEST) http://localhost:4444/grid/api/hub 获取此信息。如果您在运行 Selenium 3.0.1 或更高版本的集线器上点击此 URL,您应该会在 JSON 响应中看到有关空闲插槽和总插槽的信息。

无论 Grid 公开什么 api(上面列出的所有 3 个 api),我基本上都将它们封装为一个库,您可以使用 [它是一个 java 库]

请查看 Talk2Grid 提供的内容(github 页面中还提供了 Maven 依赖项详细信息和示例代码)

为了满足您的需求,您基本上需要构建一个 servlet 并将其注入 Hub,然后通过此自定义 servlet 访问您正在寻找的信息。要了解有关如何自定义网格的更多信息,请参阅 here

希望对您有所帮助