【发布时间】:2017-02-01 15:41:42
【问题描述】:
对于一般性问题,我很抱歉,但是否有一个 API 可作为 selenium 网格的一部分,我可以查询该 API 以找出网格上当前的活动会话。有一个使用 Json Wire 协议的 api,可以查询各个节点以获取会话信息。但是我想知道是否有一个与网格机器相关联,我可以查询以获取所有节点的会话信息。任何帮助表示赞赏。谢谢!
【问题讨论】:
标签: selenium-grid
对于一般性问题,我很抱歉,但是否有一个 API 可作为 selenium 网格的一部分,我可以查询该 API 以找出网格上当前的活动会话。有一个使用 Json Wire 协议的 api,可以查询各个节点以获取会话信息。但是我想知道是否有一个与网格机器相关联,我可以查询以获取所有节点的会话信息。任何帮助表示赞赏。谢谢!
【问题讨论】:
标签: selenium-grid
目前没有任何东西可以让您查询 Grid 的内部结构并找出当前与 Grid 一起运行的所有会话。
简而言之,以下是 Grid 公开的 API:
http://localhost:4444/grid/api/testsession?session=<SessionIdGoesHere> 获取此信息 [会话 ID 可以通过 driver.getSessionId() 获取,其中 driver 的类型为 RemoteWebDriver 或其子类。http://localhost:4444/grid/api/proxy?id=<NodeIdGoesHere> [NodeId 的格式为 http://Ip:port 并且这两者都可以在 (2) 的响应中获得]http://localhost:4444/grid/api/hub 获取此信息。如果您在运行 Selenium 3.0.1 或更高版本的集线器上点击此 URL,您应该会在 JSON 响应中看到关于可用插槽和总插槽的信息。 无论 Grid 公开什么 api(上面列出的所有 3 个 api),我基本上都将它们封装为一个库,您可以使用 [它是一个 java 库]
请查看Talk2Grid 提供的内容(Maven 依赖项详细信息和示例代码也可在 github 页面中找到)
为了满足您的需求,您基本上需要构建一个 servlet 并将其注入 Hub,然后通过此自定义 servlet 访问您要查找的信息。要了解有关如何自定义网格的更多信息,请参阅 here。
希望有帮助
【讨论】: