是否有可能使用硒网格获取测试执行的节点的机器名称?
问题描述:
我一直在查看文档,并且无法获取执行节点的机器名称/ IP等信息。是否有可能使用硒网格获取测试执行的节点的机器名称?
是否有可能使用C#绑定获取此信息,我觉得我必须缺少一些东西,因为我期望RemoteWebDriver公开这些信息。
干杯, 杰米
答
是的,这是可能的。详情见本书(由K.R.Mahadevan汇编)。你可以看到C#代码段在评论
https://gist.github.com/krmahadevan/1766772
string url = "http://localhost:4444/grid/api/testsession?session=" + this.SessionId;
WebClient client = new WebClient();
Stream stream = client.OpenRead(url);
StreamReader reader = new StreamReader(stream);
Newtonsoft.Json.Linq.JObject jObject = Newtonsoft.Json.Linq.JObject.Parse(reader.ReadLine());
string host = new Uri(jObject.GetValue("proxyId").ToString()).Host;
stream.Close();
Console.WriteLine(host);
答
是的,它有可能获得机器名。
对于机器名称:
String name = Environment.UserName;
对于IP地址
HttpContext.Current.Request.UserHostAddress;
+0
很抱歉,但我知道如何让机器名和IP。这个问题通过Selenium Grid特别提出。 请注意,第二个选项还假设我在web上下文中运行,推测是ASP.Net网站。 – Jamie
谢谢 - 这工作出色。 – Jamie