OpenQA.Selenium.WebDriverException:远程WebDriver服务器对URL的HTTP请求超时

时间:2015-08-20 18:12:49

标签: c# selenium-webdriver teamcity-8.0

我正在使用TeamCity(v8.0.5)运行使用Selenium WebDriver(v 2.47)的测试。到目前为止,一切都在ChromeDriver上完美运行(v 2.16),但几天前它只是停止工作,错误如下:

[19:34:04][chrome] Starting ChromeDriver 2.16.333243 (0bfa1d3575fc1044244f21ddb82bf870944ef961) on port 49354
[19:34:04][chrome] Only local connections are allowed.
[19:35:07][chrome] 
[19:35:07][chrome] Unhandled Exception: OpenQA.Selenium.WebDriverException: The HTTP request to the remote WebDriver server for URL http://localhost:49354/session timed out after 60 seconds. ---> System.Net.WebException: The operation has timed out
[19:35:07][chrome]    at System.Net.HttpWebRequest.GetResponse()
[19:35:07][chrome]    at OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest request) in c:\Projects\webdriver\dotnet\src\webdriver\Remote\HttpCommandExecutor.cs:line 141
[19:35:07][chrome]    --- End of inner exception stack trace ---
[19:35:07][chrome]    at OpenQA.Selenium.Remote.HttpCommandExecutor.CreateResponse(WebRequest request) in c:\Projects\webdriver\dotnet\src\webdriver\Remote\HttpCommandExecutor.cs:line 151
[19:35:07][chrome]    at OpenQA.Selenium.Remote.DriverServiceCommandExecutor.Execute(Command commandToExecute) in c:\Projects\webdriver\dotnet\src\webdriver\Remote\DriverServiceCommandExecutor.cs:line 78
[19:35:07][chrome]    at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters) in c:\Projects\webdriver\dotnet\src\webdriver\Remote\RemoteWebDriver.cs:line 910
[19:35:07][chrome]    at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities) in c:\Projects\webdriver\dotnet\src\webdriver\Remote\RemoteWebDriver.cs:line 88
[19:35:07][chrome]    at MWLIS.WebUI.UITests.MwlisChromeDriverWrapper.Initialize() in c:\TeamCity\buildAgent\work\5274d544715210e7\src\MWLIS.WebUI.UITests\Program.cs:line 170
[19:35:07][chrome]    at OpenWaves.UITesting.Runner.ScenarioRunner.RunScenariosWithDriver(IEnumerable`1 scenarios, WebDriverWrapperBase driver) in c:\SVN\OpenWaves.UITesting\OpenWaves.UITesting\Runner\ScenarioRunner.cs:line 33
[19:35:07][chrome]    at OpenWaves.UITesting.Runner.TeamCityScenarioRunner.RunScenariosWithDriver(IEnumerable`1 scenarios, WebDriverWrapperBase driver) in c:\SVN\OpenWaves.UITesting\OpenWaves.UITesting\Runner\TeamCityScenarioRunner.cs:line 41
[19:35:07][chrome]    at OpenWaves.UITesting.Runner.ScenarioRunner.Run(Func`2 getTestsFunc) in c:\SVN\OpenWaves.UITesting\OpenWaves.UITesting\Runner\ScenarioRunner.cs:line 26
[19:35:07][chrome]    at MWLIS.WebUI.UITests.Program.Main(String[] args) in c:\TeamCity\buildAgent\work\5274d544715210e7\src\MWLIS.WebUI.UITests\Program.cs:line 69

我怀疑Chrome更新可能导致了这个问题,但它为FirefoxDriver和InternetExplorerDriver提供了相同的结果。我也怀疑我在测试中执行的“无声”Windows身份验证有一些问题(将用户名和密码作为url的一部分传递),但我设法在本地运行测试,而TeamCity托管在同一台服务器上,所以我不是确定问题的根本原因是什么。

我在这个论坛上看到了很多关于Selenium超时的类似问题,例如OpenQA.Selenium.WebDriverException : The HTTP request to the remote WebDriver server timeoutSelenium tests, Continuous Integration. The HTTP request to the remote WebDriver server for URL http://localhost,但在我的案例中没有一个答案有用。

有什么想法吗?请帮忙。

1 个答案:

答案 0 :(得分:2)

好的,我找到了解决这个问题的方法。我通过PhatnomJSDriver从“真实”浏览器切换到PhantomJS,现在我不再观察这些超时了。

另一种对我有用的方法是BrowserStack云平台(https://www.browserstack.com),它允许在任何浏览器,任何使用RemoteWebDriver和浏览器功能的操作系统上进行测试。

我希望有人觉得这很有用。