C# 获取运行浏览器实例(测试)的远程selenium节点的IP地址

C# 获取运行浏览器实例(测试)的远程selenium节点的IP地址,c#,selenium,selenium-grid,C#,Selenium,Selenium Grid,我是一名selenium和C初学者 我设置了一个selenium中心,以及6个注册到此中心的远程selenium节点(使用我的自动化框架的C) 当我运行测试时,我需要记录每个测试运行的远程节点的IP地址。使用C#?可以编程实现这一点吗?为什么现在需要输入他们的IP地址?在节点向集线器注册后,它们已经连接。使用RemoteWebDriver运行测试时,RemoteWebDriver会自动与集线器连接,并将测试传输到已注册的节点。若要确保节点已注册,请通过浏览器调用hub(如果它位于系统中的本地位置

我是一名
selenium
C
初学者

我设置了一个
selenium
中心,以及6个注册到此中心的远程selenium节点(使用我的自动化框架的
C


当我运行测试时,我需要记录每个测试运行的远程节点的IP地址。使用C#?

可以编程实现这一点吗?为什么现在需要输入他们的IP地址?在节点向集线器注册后,它们已经连接。使用RemoteWebDriver运行测试时,RemoteWebDriver会自动与集线器连接,并将测试传输到已注册的节点。若要确保节点已注册,请通过浏览器调用hub(如果它位于系统中的本地位置)。您应该看到每个节点的配置选项卡,或者如果在一个节点中调用了多个浏览器,则应该只看到一个带有多个浏览器的配置选项卡。节点需要集线器的IP地址,但如果这样做有意义,则不需要其他方式。

请从NuGetpackage添加到项目中,然后粘贴代码片段:

private static void GetNodeIp(string hostName , string port , string sessionId)
{
    try
    {               
        RestClient client = new RestClient("http://" + hostName + ":" + port + "/grid/api/testsession?session=" + sessionId);
        RestRequest req = new RestRequest(Method.GET);
        var resp = client.Execute(req);
        dynamic jsonData = JsonConvert.DeserializeObject(resp.Content);
        Console.WriteLine("Test Will run on Machine : {0}" ,new Uri(jsonData.proxyId.ToString()));
    }
    catch (Exception ex)
    {

    }
}
然后像这样调用上面的方法:

GetNodeIp("localhost", "4444", "ffgfdg-fgfgf-fgdfgfg-sdsdfdsf");
您应该能够使用以下代码段获取会话id:

RemoteWebDriver driver = new RemoteWebDriver(new Uri(hubUrl), _capabilities, TimeSpan.FromSeconds(180));
 string session = driver.SessionId.ToString();
不要忘记初始化对象。

希望或可能有帮助。。。