首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在selenium4网格中获取单个会话id的节点IP地址

在selenium4网格中获取单个会话id的节点IP地址
EN

Stack Overflow用户
提问于 2022-04-27 15:02:57
回答 1查看 615关注 0票数 3

我们正在从selenium 3网格移动到selenium 4网格(具有中心和节点设置)。我们需要能够获取正在执行当前会话的节点的IP地址(会话id是从driver.getSessionId()获取的)

对于selenium3网格,我们从<hub url>/grid/api/testsession?session=<sessionId>获得了这些信息

我找不到硒4网格的等效端点。我可以找到图形查询参数,但它获取所有会话的详细信息。我只需要找到一个会话id的会话详细信息。

有什么帮助吗?

EN

回答 1

Stack Overflow用户

发布于 2022-05-08 10:00:58

注意事项:基于这个问题是如何表述的,我假设我们讨论的是节点URI,它并不总是精确的IP地址。如果确实需要的话,拥有URI应该不难找到真正的ip。考虑到这一点..。

GraphQL端点是去的地方。您可以通过查询特定的sessionID来缩小结果范围(正如您所指出的,您可以从webdriver获得该结果)。

cUrl示例:

代码语言:javascript
复制
curl -X POST -H "Content-Type: application/json" --data '{"query":"{ session (id: \"<session-id>\") { id, capabilities, startTime, uri, nodeId, nodeUri, sessionDurationMillis, slot { id, stereotype, lastStarted } } } "}' -s <LINK_TO_GRAPHQL_ENDPOINT>

在node.js中的原型:

代码语言:javascript
复制
const { Builder } = require('selenium-webdriver');
const axios = require('axios').default;


async function main() {
    let driver = await new Builder()
        .usingServer('http://localhost:4444')
        .forBrowser('chrome')
        .build();

    try {
        await driver.get('https://www.cogitovirus.com/');
        const title = await driver.getTitle();
        console.log(`Sanity check. Title is: ${title}`);

        const sessionId = (await driver.getSession()).getId()
        console.log(`Session id: ${sessionId}`)

        const res = await axios.post('http://localhost:4444/graphql', {
            query: `{ session (id: \"${sessionId}\") { id, uri, nodeId, nodeUri} }`
        });

        console.log(res.data)
    } catch (err) {
        console.log(err)
    } finally {
        await driver.quit()
    }
}

main()

打印出来:

代码语言:javascript
复制
Sanity check. Title is: cogitovirus.com
Session id: ce19fd89269af93327655537a1b65330
{
  data: {
    session: {
      id: 'ce19fd89269af93327655537a1b65330',
      uri: 'http://172.18.0.3:5555',
      nodeId: 'ea5414e7-ac40-4744-aea5-8ff6faeeb8e2',
      nodeUri: 'http://172.18.0.3:5555'
    }
  }
}

使用硒栅码头的快速设置进行测试

网格GraphQL 文档

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72031032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档