【问题标题】:API for getting the selenium nodes status from the grid host用于从网格主机获取 selenium 节点状态的 API
【发布时间】:2017-02-01 15:41:42
【问题描述】:

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

【问题讨论】:

    标签: selenium-grid


    【解决方案1】:

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

    简而言之,以下是 Grid 公开的 API:

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

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

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

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

    希望有帮助

    【讨论】:

    • 您好 Krishnan,感谢您的回答,我确实尝试了talk2grid api,它看起来非常整洁。我计划将来使用它,特别是在测试报告中显示有关运行测试的节点的信息等。我最终通过实现一个新的 servlet 来解决我的问题,该 servlet 将显示节点、免费的浏览器插槽信息。然后我解析这个 servlet 的 json 响应来决定节点是否空闲,浏览器插槽是否空闲等。感谢您指导我。 !!
    猜你喜欢
    • 1970-01-01
    • 2019-02-09
    • 1970-01-01
    • 1970-01-01
    • 2020-06-30
    • 1970-01-01
    • 1970-01-01
    • 2021-05-25
    • 1970-01-01
    相关资源
    最近更新 更多