是否有可能使用硒网格获取测试执行的节点的机器名称?

问题描述:

我一直在查看文档,并且无法获取执行节点的机器名称/ 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); 
+0

谢谢 - 这工作出色。 – Jamie

是的,它有可能获得机器名。

对于机器名称:

String name = Environment.UserName; 

对于IP地址

HttpContext.Current.Request.UserHostAddress; 
+0

很抱歉,但我知道如何让机器名和IP。这个问题通过Selenium Grid特别提出。 请注意,第二个选项还假设我在web上下文中运行,推测是ASP.Net网站。 – Jamie