c # - Selenium 3.14.0 + BrowserStack - исключение Webdriver - сбой при получении и создание экземпляра не удалось - PullRequest
0 голосов
/ 11 сентября 2018

Я недавно обновился до Selenium 3.14 с 3.9.1. Теперь каждый раз, когда я запускаюсь, я получаю ошибку ниже, когда пытаюсь создать экземпляр веб-драйвера. Ниже приведена строка, в которой происходит сбой и возникает исключение.

Когда я понижаюсь до 3.9.1, он работает нормально. Есть ли что-то, что мне не хватает? Кто-нибудь видел это раньше?

Я использую c # + Поток спецификаций + Сетка BrowserStack.

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация. Это мой первый пост, и я погуглил и исследовал, но не смог найти информацию об этой ошибке.

_driver = new RemoteWebDriver(new Uri("http://" + browserStackConfig["BSserver"] + "/wd/hub/"), capability,  new TimeSpan(0,0,30));


Result Message: 
OneTimeSetUp: OpenQA.Selenium.WebDriverException : A exception with a null response was thrown sending an HTTP request to the remote WebDriver server for URL http://hub-cloud.browserstack.com/wd/hub/session. The status of the exception was ReceiveFailure, and the message was: The underlying connection was closed: An unexpected error occurred on a receive.
  ----> System.Net.WebException : The underlying connection was closed: An unexpected error occurred on a receive.
  ----> System.IO.IOException : Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.
  ----> System.Net.Sockets.SocketException : An existing connection was forcibly closed by the remote host

1 Ответ

0 голосов
/ 13 сентября 2018

Selenium внес изменения 25 июля, чтобы выставить свойство Proxy из класса HttpCommandExecutor (ниже ссылка). Вы можете ожидать, что если прокси не будет передан, то Selenium будет использовать веб-прокси по умолчанию. Это не вариант. Для прокси устанавливается нулевое значение, что может привести к сбою исполнителя при создании экземпляра драйвера.

https://github.com/SeleniumHQ/selenium/commit/52969e49a16efee7efb52893addde19605162a66#diff-bc8a75c5cb22ca86093a1bbced41a6ee

Fix: Я сделал простое изменение в своем коде, чтобы передать веб-прокси по умолчанию. Ниже приведен фрагмент кода. Это исправило мою проблему.

 var executor = new HttpCommandExecutor(new Uri("http://" + browserStackConfig["BSserver"] + "/wd/hub/"), new TimeSpan(0, 0, 0, 30));
 executor.Proxy = WebRequest.DefaultWebProxy;
 _driver = new RemoteWebDriver(executor, capability);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...