我已经在 AWS 上设置了一个 Windows Server 2012 实例,并且正在使用 Selenium 网格服务器运行 Jenkins。构建部分运行良好,但是当它尝试调用 browserMob.NET server.CreateProxy() 调用时失败并出现 404。我想这可能是一个安全端口问题,所以我打开了 9090 和 9091,但仍然遇到同样的问题。如果我在本地系统上使用 IWebDriver,一切正常,但是当我切换到 remoteWebDriver 并将其指向 AWS 服务器并尝试代理时,我得到一个错误。如果有人对我如何解决这个问题有任何想法,我已经准备好朝着正确的方向前进:) 谢谢!
--编辑:更多信息:我现在让 Jenkins 在 8081 上运行,现在它以 InvalidOperationException 停止。在 server.CreateProxy() 的同一次调用中,触发的错误说:
“指定的域不存在或无法联系”
目前在 IIS8 中打开的端口有 80、9090、9091 和 8080
我还将项目下载到服务器并尝试从服务器运行它,我看到了同样的事情。我还在运行 IWebDriver,但它不起作用。因此,如果我在我的个人 Win 7 Box 上本地运行它,它可以正常工作,但是当我从 Windows Server 2012 运行它时,它就不行了。这是同一个项目,但我不知道这里可能发生了什么。
try
{
Server server = new Server(pathToBrowserMobProxy);
server.Start();
Client client = server.CreateProxy();
client.NewHar("google");
var seleniumProxy = new Proxy { HttpProxy = client.SeleniumProxy };
var capabilities = DesiredCapabilities.Firefox();
capabilities.SetCapability(CapabilityType.Proxy, seleniumProxy);
var driver = new RemoteWebDriver(new Uri(seleniumServerUrl), capabilities);
driver.Navigate().GoToUrl("http://www.google.co.uk");
HarResult harData = client.GetHar();
driver.Quit();
client.Close();
server.Stop();
return Newtonsoft.Json.JsonConvert.SerializeObject(harData);
}
catch (Exception e) { throw e; }