升级到3.9版后,无法启动Selenium IE驱动程序 [英] Can't launch Selenium IE Driver after upgrading to version 3.9

查看:89
本文介绍了升级到3.9版后,无法启动Selenium IE驱动程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

此处,尝试使用IE(版本:11.0.9600.17842,Win8.1)运行任何测试时,出现以下异常.有谁知道如何解决这个问题,还是我应该降级到3.8?

OpenQA.Selenium.WebDriverException:具有空响应的异常 被引发向远程WebDriver服务器发送HTTP请求以用于 URL http://localhost:53379/session .

该异常的状态为 ReceiveFailure,并且消息为:基础连接为 已关闭:接收时发生意外错误. ---->

System.Net.WebException:基础连接已关闭:An 接收时发生意外错误. ----> System.IO.IOException :无法从传输连接中读取数据:现有 远程主机强行关闭了连接. ----> System.Net.Sockets.SocketException:现有连接为 被远程主机TearDown强制关闭: System.NullReferenceException:对象引用未设置为 对象的实例.

堆栈跟踪如下:

结果StackTrace:位于 OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo) OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(Command commandToExecute) OpenQA.Selenium.Remote.DriverServiceCommandExecutor.Execute(Command commandToExecute) OpenQA.Selenium.Remote.RemoteWebDriver.Execute(字符串 driverCommandToExecute,Dictionary的2个参数)位于 OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities 所需的能力) OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor,ICapabilitiesdesireCapabilities)位于 OpenQA.Selenium.IE.InternetExplorerDriver..ctor(InternetExplorerDriverService 服务,InternetExplorerOptions选项) OpenQA.Selenium.IE.InternetExplorerDriver..ctor() --WebException在System.Net.HttpWebRequest.GetResponse()在OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo) --IOException在System.Net.Sockets.NetworkStream.Read(Byte []缓冲区,Int32偏移量,Int32大小)处 System.Net.PooledStream.Read(字节[]缓冲区,Int32偏移量,Int32大小) 在System.Net.Connection.SyncRead(HttpWebRequest请求,布尔值 userRetrievedStream,布尔值probeRead) --System.Net.Sockets.Socket.Receive(Byte []缓冲区,Int32偏移量,Int32大小,SocketFlags socketFlags)处的--SocketException System.Net.Sockets.NetworkStream.Read(Byte []缓冲区,Int32偏移量, Int32大小)

解决方案

尽管使用IEDriverServer_Win32_3.9.0进行的快速测试不会显示任何错误. 尽管设置了 IEDriverServer_Win32_3.9.0 IEDriverServer_x64_3.9.0 ,但从未明确地将其推送/发布 下载 标签.seleniumhq.org/"rel =" nofollow noreferrer> 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 的a>提到了以下免责声明:

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.

解决方案

简单的解决方案是:

  • 在32位和64位平台上均使用 IEDriverServer_Win32_3.9.0 .
  • 恢复为 IEDriverServer_x64_3.8.0

After updating to IEDriverServer 3.9 for 64-bit from here, I'm getting the following exception when trying to run any tests with IE (version: 11.0.9600.17842, Win8.1). Does anyone know how to get around this, or should I just downgrade back to 3.8?

OpenQA.Selenium.WebDriverException : A exception with a null response was thrown sending an HTTP request to the remote WebDriver server for URL http://localhost:53379/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 TearDown : System.NullReferenceException : Object reference not set to an instance of an object.

The stack trace is as follows:

Result StackTrace: at OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo) at OpenQA.Selenium.Remote.HttpCommandExecutor.Execute(Command commandToExecute) at OpenQA.Selenium.Remote.DriverServiceCommandExecutor.Execute(Command commandToExecute) at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters) at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities) at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities) at OpenQA.Selenium.IE.InternetExplorerDriver..ctor(InternetExplorerDriverService service, InternetExplorerOptions options) at OpenQA.Selenium.IE.InternetExplorerDriver..ctor() --WebException at System.Net.HttpWebRequest.GetResponse() at OpenQA.Selenium.Remote.HttpCommandExecutor.MakeHttpRequest(HttpRequestInfo requestInfo) --IOException at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size) at System.Net.PooledStream.Read(Byte[] buffer, Int32 offset, Int32 size) at System.Net.Connection.SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead) --SocketException at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)

解决方案

Using IEDriverServer 3.9.0.0 for Windows 64-bit from http://selenium-release.storage.googleapis.com I am able to reproduce the issue with IEDriverServer_x64_3.9.0.

Error Stack Trace :

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

Though a quick test with IEDriverServer_Win32_3.9.0 doesn't shows any error. Though IEDriverServer_Win32_3.9.0 and IEDriverServer_x64_3.9.0 are put up but was never explicitly pushed/published to be available on the Download tab of seleniumhq.org page.

The CHANGELOG of IEDriverServer.exe clearly mentions the following disclaimer :

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.

Additionally, the CHANGELOG of IEDriverServer.exe v3.9.0.1 mentions the following disclaimer :

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.

Solution

The simple solution would be either to :

  • Use IEDriverServer_Win32_3.9.0 on both 32bit and 64-bit platforms.
  • Revert back to IEDriverServer_x64_3.8.0

这篇关于升级到3.9版后,无法启动Selenium IE驱动程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆