当前位置: 首页 > 知识库问答 >
问题:

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

袁波
2023-03-14

我们正在从硒3网格移动到硒4网格(带轮毂

对于selenium3网格,我们从获得了此信息

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

有什么帮助吗?


共有1个答案

颛孙智勇
2023-03-14

注意:根据问题的表述方式,我假设我们谈论的是节点URI,它并不总是它的精确IP地址。如果确实需要,拥有URI应该不难找到真正的ip。考虑到这一点...

GraphQLendpoint是一个好去处。您可以通过查询特定的sessionID(正如您所指出的,可以从webdriver获得)来缩小结果范围。

卷曲示例:

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原型:

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()

打印:

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'
    }
  }
}

使用selenium grid docker的快速设置进行测试

网格图形QL文档

 类似资料:
  • 我在我的一个项目中使用了neo4j,有一个节点只有一个属性,我想使用ID获得这个节点,它已经有一个ID了,但是当我使用这个代码时 它什么也不返回,这是我的节点 如果查询错误,那么如何使用数字查询

  • 我正在尝试制作一个Minecraft客户端,但我不知道如何获取会话ID来启动游戏。我在google上搜索了一下,但无论如何都找不到从命令行启动Minecraft的答案——用户名和密码作为前缀不起作用。

  • 本文向大家介绍Shell脚本获取本地网卡IP、mac地址、子网掩码、dns IP、外网IP,包括了Shell脚本获取本地网卡IP、mac地址、子网掩码、dns IP、外网IP的使用技巧和注意事项,需要的朋友参考一下

  • 我希望在连接到wifi网络时,在运行我的应用程序的手机上获取用户的本地IPv4地址。使用以下代码: 我可以得到一些接近IPv4地址的信息,但与命令行中的IPv4地址相比,它并不完全相同。有更好的办法吗?我知道formatIpAddress已被弃用,但在我找到获取IPv4地址的方法之前,我暂时不太担心这个问题。 编辑: 我发现手机wifi设置中的ip地址是我在使用建议的解决方案获取ip地址时得到的。

  • 问题内容: 如何获取烧瓶上的复选框是否已选中我正在使用Flask开发服务器环境使用Flask,Gevent和Web套接字进行项目。我用过。这里 如何获得每个连接的唯一会话ID? 我想将其存储在数据库中,并在客户端断开连接后将其删除。 如何获得活动连接总数 问题答案: 没有会话ID。 Flask中的会话只是Cookie的包装。你保存在上面的内容经过数字签名,并以cookie的形式发送给客户端。当你发

  • 本文向大家介绍使用Python获取网段IP个数以及地址清单的方法,包括了使用Python获取网段IP个数以及地址清单的方法的使用技巧和注意事项,需要的朋友参考一下 使用Python获取网段的IP个数以及地址清单需要用到IPy的库,而相应的方法主要就是IP。 写小脚本如下: 运行结果: GreydeMac-mini:01_系统基础信息模块详解 greyzhang$ python ip.py 从上面的