当前位置: 首页 > 面试题库 >

使用IEDriverServer 3.9.0.0运行硒时无法启动IE 11

彭炳
2023-03-14
问题内容

运行硒测试时,我在启动IE 11时遇到问题。这是我用来设置浏览器的代码

 if (browser.equalsIgnoreCase("ie")) {
        System.setProperty("webdriver.ie.driver",  "IEDriverServer.exe");
        driver = new InternetExplorerDriver();
    } else {
        throw new Exception("Browser is not correct");
    }
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    driver.get("https://www.google.com/");
    Dimension dimension = new Dimension(800,600);
    driver.manage().window().setSize(dimension);
}

我尝试了基于此线程的其他解决方案,但还是没有运气。堆栈链接。有什么我可以使用的解决方案吗?

Environmental :
Selenium version: 3.12.0
Iedriverserver version: 3.9.0.0
Ie version: 11.0.65

控制台输出:

 Started InternetExplorerDriver server (64-bit)
 3.9.0.0
 Listening on port 10696
 Only local connections are allowed

堆栈跟踪:

  org.openqa.selenium.WebDriverException: java.net.SocketException: 
  Connection reset
  Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-      08T14:04:26.12Z'
  System info: host: 'DESKTOP7', ip: '', os.name: '      Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_171'
  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:543)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:207)
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 com.dlp.tests.TestCases.Basic_Template.setup(Basic_Template.java:37)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at       java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at       java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
  Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:210)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at okio.Okio$2.read(Okio.java:139)
at okio.AsyncTimeout$2.read(AsyncTimeout.java:237)
at okio.RealBufferedSource.indexOf(RealBufferedSource.java:345)
at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.java:217)
at okhttp3.internal.http1.Http1Codec.readHeaderLine(Http1Codec.java:212)
at okhttp3.internal.http1.Http1Codec.readResponseHeaders(Http1Codec.java:189)
at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:88)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:147)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:45)
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:105)
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:136)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)

问题答案:

此错误消息…

org.openqa.selenium.WebDriverException: java.net.SocketException: Connection reset

…表示 IEDriverServer 无法启动/产生新的 WebBrowsing会话,
InternetExplorer浏览器 会话。

您的主要问题是所使用的二进制版本之间的 不兼容性 ,如下所示:

  • 您的 硒客户端 版本为 3.12.02018-05-08T14:04:26.12Z 这几乎是一个大一岁。
  • 您的 InternetExplorerDriver 版本 3.9.0.0

因此, Selenium Client v3.12.0InternetExplorerDriver v3.9.0.0
之间存在明显的不匹配。根据 Selenium ClientInternetExplorerDriver 同步发布的 最佳实践 ,您必须使用
同一主要版本中的* 两个二进制文件。 *

根据以下参考,进一步的 InternetExplorerDriver服务器v3.9.0.0 具有一个已知问题:

  • 带有IEDriverServer v3.9.0.0(64位)的Selenium Java Client(v3.9.1)由于org.openqa.selenium.WebDriverException而崩溃:java.net.ConnectException:无法连接到localhost / 0:0:0:0: 0:0:0:1:28286

通过以下提交已解决此问题:

  • 在IE驱动程序中正确初始化JSON值

  • 升级 IEDriverServer 当前 IEDriverServer V3.12.0 水平。
  • 清理 你的 项目工作 ,通过你的 IDE重建 仅需要依赖你的项目。
  • 在执行 测试套件 之前和之后,使用 CCleaner 工具清除所有操作系统琐事。 __
  • 进行 系统重启
  • 执行您的@Test
  • 始终driver.quit()tearDown(){}方法内调用以优雅地关闭和销毁 WebDriverWeb Client 实例。


 类似资料:
  • 我有个问题。我通过Java自动化代码运行SOAPUIWeb服务测试。但在那之后。硒不起作用。似乎soapUI部分实际上没有完成。但我不确定。 例外情况是: 然而,我将SoapUI部分注释掉。它会再次发挥作用。比如: 以下是我的SoapUI方法: 以下是硒的相关方法: 任何人都知道为什么会这样。我在谷歌上搜索。但在同样的情况下,似乎没有人会犯同样的错误。非常感谢你。

  • 我正在使用Selenium WebDriver、eclipse、testng和surefire插件。我无法从pom.xml运行testng.xml文件。当我使用mvn测试运行pom.xml时,它直接运行src/test//testcases中的文件。请就我的错误提出忠告。先谢谢你 我的POM文件: 我的testng.xml: 我的测试案例:

  • 从这里下载selenium-server-4.0.0.jar之后 我将这个jar文件放在c文件夹中,然后使用cmd命令尝试使用这个命令启动selenium grid hub 我无法运行selenium网格中心,它显示以下内容 我试着把这个网址放在chrome浏览器中 然后它显示这个

  • 无法使用maven运行spring启动应用程序。当我运行命令mvn spring boot:run时,我收到:,但在pom中。我写的xml,其中是使用该示例的主要类: 我有这个项目结构: 我希望使用spring boot和maven运行我的应用程序。但现在它不起作用了。

  • 我是Spring world的新手,刚刚将pom.xml更新到gradle中来管理所有的依赖项。 格雷迪被社区抛弃了吗?还有,这个错误可能的根本原因是什么。 刚刚意识到Spring Boot有很多令人困惑的错误消息。我真的不认为这种错误消息对任何开发人员都有帮助。对这种错误有什么想法或方向吗? 我只知道我换了球。xml转换为gradle并手动迁移配置文件。非常感谢! 异常在线程"main"java

  • 我试图用JUnit5控制台启动器运行一个简单的测试。我试了几个选择,但都不起作用。谁能告诉我哪里出了问题吗? .+--JUnit Jupiter[OK] '--JUnit Vintage[OK] 测试运行在11毫秒后完成[2个容器] [0个容器跳过][2个容器启动] [0个容器中止][2个容器成功] [0个容器失败][0个测试找到] [0个测试跳过][0个测试启动] [0个测试中止][0个测试成功