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();
不要忘记初始化对象。希望或可能有帮助。。。