OpenQA.Selenium.WebDriverException: истек срок ожидания запроса HTTP к удаленному серверу WebDriver для URL
Я использую 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: HTTP-запрос к удаленному серверу WebDriver или этот Selenium-тесты, Continuous Integration. HTTP-запрос к удаленному серверу WebDriver для URL http: // localhost, но ни один ответ не помогает в моем случае.
Есть идеи? Пожалуйста помоги.
1 ответ
Хорошо, я нашел решение этой проблемы. Я переключился с "настоящих" браузеров на PhantomJS через PhatnomJSDriver, и теперь я больше не наблюдаю эти таймауты.
Другой подход, который работал для меня, это облачная платформа BrowserStack ( https://www.browserstack.com/), которая позволяет тестировать в любом браузере, любой ОС, используя RemoteWebDriver и возможности браузера.
Я надеюсь, что кто-то найдет это полезным.