获取运行浏览器实例(测试)的远程 selenium 节点的 IP 地址
Getting IP address for remote selenium node that the browser instance(test) runs on
我是 selenium
和 C#
初学者。
我设置了一个 selenium
集线器以及 6 个注册到该集线器的远程 selenium 节点(使用 C#
作为我的自动化框架)。
当我 运行 我的测试时,我需要记录每个测试 运行 的远程节点的 IP 地址。这是否可以使用 C# 以编程方式实现?
为什么需要现在他们的 IP 地址?节点向集线器注册后,它们就已经连接了。当您 运行 使用 RemoteWebDriver 进行测试时,RemoteWebDriver 会自动连接到集线器并将测试传输到已注册的节点。为确保节点已注册,请通过浏览器 http://localhost:4444 调用集线器(如果它驻留在您的本地系统中)。您应该看到每个节点的配置选项卡,或者如果您在一个节点中调用了多个浏览器,则只能看到一个带有多个浏览器的选项卡。节点需要集线器的 IP 地址,但如果这有意义,则不需要相反的方式。
请从 NuGetpackage 添加 RestSharp 到您的项目中,然后粘贴代码片段:
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();
不要忘记初始化 Desired capabilities 对象。
我是 selenium
和 C#
初学者。
我设置了一个 selenium
集线器以及 6 个注册到该集线器的远程 selenium 节点(使用 C#
作为我的自动化框架)。
当我 运行 我的测试时,我需要记录每个测试 运行 的远程节点的 IP 地址。这是否可以使用 C# 以编程方式实现?
为什么需要现在他们的 IP 地址?节点向集线器注册后,它们就已经连接了。当您 运行 使用 RemoteWebDriver 进行测试时,RemoteWebDriver 会自动连接到集线器并将测试传输到已注册的节点。为确保节点已注册,请通过浏览器 http://localhost:4444 调用集线器(如果它驻留在您的本地系统中)。您应该看到每个节点的配置选项卡,或者如果您在一个节点中调用了多个浏览器,则只能看到一个带有多个浏览器的选项卡。节点需要集线器的 IP 地址,但如果这有意义,则不需要相反的方式。
请从 NuGetpackage 添加 RestSharp 到您的项目中,然后粘贴代码片段:
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();
不要忘记初始化 Desired capabilities 对象。