Не удается запустить драйвер Selenium IE после обновления до версии 3.9

После обновления до IEDriverServer 3.9 для 64-разрядной версии с здесь , Я получаю следующее исключение при попытке запустить какие-либо тесты с IE (версия: 11.0.9600.17842, Win8.1). Кто-нибудь знает, как это обойти, или мне просто вернуться на 3.8?

OpenQA.Selenium.WebDriverException: возникло исключение с нулевым ответом при отправке HTTP-запроса на удаленный сервер WebDriver для URL-адреса http://localhost:53379/session.

Состояние исключения было ReceiveFailure, и сообщение было: Базовое соединение было закрыто: при получении произошла непредвиденная ошибка. ---->

System.Net.WebException: базовое соединение было закрыто: при получении произошла непредвиденная ошибка. ----> System.IO.IOException: невозможно прочитать данные из транспортного соединения: существующее соединение было принудительно закрыто удаленным хостом. ----> System.Net.Sockets.SocketException: существующее соединение было принудительно закрыто удаленным хостом. TearDown: System.NullReferenceException: ссылка на объект не установлена ​​на экземпляр объекта.

Трассировка стека выглядит следующим образом:

Результат StackTrace: в OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest (HttpRequestInfo requestInfo) в OpenQA.Selenium.Remote.HttpCommandExecutor.Execute (CommandToExecutelenium. Remote.RemoteWebDriver.Execute (String driverCommandToExecute, параметры Dictionary`2) в OpenQA.Selenium.Remote.RemoteWebDriver.StartSession (ICapabilities requiredCapabilities) в OpenQA.Selenium.Remote.RemoteWebDriver… .IE.InternetExplorerDriver..ctor (служба InternetExplorerDriverService, параметры InternetExplorerOptions) в OpenQA.Selenium.IE.InternetExplorerDriver..ctor () --WebException в System.Net.HttpWebRequest.GetResponse () в OpenQARemote. (HttpRequestInfo requestInfo) --IOException в System.Net.Sockets.NetworkStream.Read (буфер Byte [], смещение Int32, размер Int32) в System.Net.PooledStream.Read (буфер Byte [], смещение Int32, размер Int32) в System.Net.Connection.SyncRead (Запрос HttpWebRequest, логическое значение userRetrievedStream, логическое значение probeRead) --SocketException в System.Net.Sockets.Socket.Receive (буфер Byte [], смещение Int32, размер Int32, SocketFlags socketFlags) в System.Net.Sockets.NetworkStream.Read (Byte [] буфер, смещение Int32, размер Int32)


person Kolichikov    schedule 20.02.2018    source источник
comment
Было бы полезно узнать, дает ли 32-разрядный исполняемый файл такой же результат.   -  person JimEvans    schedule 21.02.2018
comment
@JimEvans, к нашему полному удивлению, IEDriverServer_Win32_3.9.0 работает довольно гладко для базовых тестов.   -  person DebanjanB    schedule 21.02.2018


Ответы (1)


Использование IEDriverServer 3.9.0.0 для 64-разрядной версии Windows из http://selenium-release.storage.googleapis.com Я могу воспроизвести проблему с помощью IEDriverServer_x64_3.9.0 .

Трассировка стека ошибок:

Started InternetExplorerDriver server (64-bit)
3.9.0.0
Listening on port 28286
Only local connections are allowed
Exception in thread "main" org.openqa.selenium.WebDriverException: java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0:1:28286
Build info: version: '3.9.1', revision: '63f7b50', time: '2018-02-07T22:42:28.403Z'
System info: host: 'ATECHM-03', ip: '192.168.1.35', os.name: 'Windows 8', os.arch: 'amd64', os.version: '6.2', java.version: '1.8.0_144'
Driver info: driver.version: InternetExplorerDriver
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:92)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:219)
    at org.openqa.selenium.ie.InternetExplorerDriver.run(InternetExplorerDriver.java:223)
    at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:215)
    at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:152)
    at demo.A_IE_simple.main(A_IE_simple.java:13)
Caused by: java.net.ConnectException: Failed to connect to localhost/0:0:0:0:0:0:0:1:28286
    at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:240)
    at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:158)
    at okhttp3.internal.connection.StreamAllocation.findConnection(StreamAllocation.java:256)
    at okhttp3.internal.connection.StreamAllocation.findHealthyConnection(StreamAllocation.java:134)
    at okhttp3.internal.connection.StreamAllocation.newStream(StreamAllocation.java:113)
    at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:42)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
    at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:93)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
    at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
    at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:125)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:121)
    at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:200)
    at okhttp3.RealCall.execute(RealCall.java:77)
    at org.openqa.selenium.remote.internal.OkHttpClient.execute(OkHttpClient.java:104)
    at org.openqa.selenium.remote.internal.OkHttpClient.execute(OkHttpClient.java:54)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:101)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:73)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:138)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
    ... 6 more
Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at okhttp3.internal.platform.Platform.connectSocket(Platform.java:125)
    at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:238)
    ... 29 more

Хотя быстрый тест с IEDriverServer_Win32_3.9.0 не показывает никаких ошибок. Хотя IEDriverServer_Win32_3.9.0 и IEDriverServer_x64_3.9.0 размещены, но никогда не были явно отправлены / опубликованы, чтобы быть доступными на вкладка Загрузить в страница seleniumhq.org.

CHANGELOG из IEDriverServer.exe четко упоминает следующий отказ от ответственности:

The "major" and "minor" fields are synchronized to releases of the Selenium
project. Changes in the "build" field indicate interim releases made publicly
available via the project downloads page. Changes in "revision" field indicate
private releases checked into the prebuilts directory of the source tree, but
not made generally available on the downloads page.

Кроме того, CHANGELOG из IEDriverServer.exe v3.9.0.1 упоминает следующий отказ от ответственности:

Finally, there is every chance that, despite all efforts to the contrary,
it's possible that there are new regressions introduced by this change.
Multiple test suites have been run using this change, and none have
failed thus far due to the changes herein. Claims that this change is
causing a specific failure should be accompanied by a full test case, or
issues reported against this change will be summarily closed.

Решение

Простым решением было бы либо:

  • Используйте IEDriverServer_Win32_3.9.0 как на 32-битной, так и на 64-битной платформах.
  • Вернитесь к IEDriverServer_x64_3.8.0
person DebanjanB    schedule 21.02.2018
comment
Я должен проголосовать против этого ответа. Это неверно означает, что изменение, внесенное после выпуска 3.9.0, упомянутого в исходном сообщении, могло вызвать проблему, описанную в вопросе. В нем также делаются заявления о том, когда выпуск «официально опубликован», которые не подтверждены или не признаны правильными командой разработчиков проекта Selenium. - person JimEvans; 21.02.2018
comment
@JimEvans Спасибо за внимание. Но оба дословно взяты из ИЗМЕНЕНИЯ IEDriverServer.exe. Вы можете указать мне, в чем именно я ошибаюсь. Доступность IEDriverServer.exe v3.9.0.0 еще не доступна на вкладке Загрузить seleniumhq.org, где ИЗМЕНЕНИЕ переместилось до IEDriverServer.exe v3.9.0.3. Буду рад поправиться. - person DebanjanB; 21.02.2018
comment
Версия 3.9.0.0, размещенная на официальном сайте загрузки, - это версия 3.9.0.0. Как вы правильно заметили в CHANGELOG, версии имеют схему нумерации major.minor.build.revision, а версии, которые отличаются только в поле revision, не публикуются вообще. Более того, публикация релиза на этом сайте - это общая сумма публикации релиза, независимо от того, что можно скачать через seleniumhq. Вы подразумеваете, что изменение в 3.9.0.1 может повлиять на выпуск с сайта перетаскивания, которым является 3.9.0.0. - person JimEvans; 21.02.2018
comment
@JimEvans Спасибо, это было мое неправильное предположение, поэтому обновил свой ответ. У меня все еще есть вопрос к вам, когда текст CHANGELOG упоминается как на странице загрузки проекта, это указывает на вкладка "Загрузить" или ссылку, которую вы поделили как официальный сайт приема, который на данный момент возвращает ошибку как <Message>The specified bucket does not exist.</Message> - person DebanjanB; 21.02.2018
comment
Ваша трассировка стека, по-видимому, указывает на то, что искусство привязки языка Java пытается подключиться по петлевому адресу IPv6 ([::1]), который вообще не работает с 3.9.0.0 драйвера IE. Совершенно непонятно, почему это могло произойти с 64-битным драйвером IE, а не с 32-битным. - person JimEvans; 21.02.2018
comment
Ссылка, которой я поделился, неверна, и я не могу вернуться и отредактировать комментарий. Я случайно вставил дополнительную букву «s» в URL-адрес, когда набирал ссылку. Правильный URL-адрес: selenium-release.storage.googleapis.com/index.html - person JimEvans; 21.02.2018
comment
@JimEvans Спасибо за руководство. Независимо от текста CHANGELOG кажется, что IEDriverServer v3.9.0.0 (64-bit) дает сбой. Вот ссылка на проблему в системе отслеживания проблем с селеном - person DebanjanB; 21.02.2018