1

我一直在使用 IEWebDriver 遇到这一系列间歇性故障:

首先,测试失败并且无法使用 .quit() 方法关闭驱动程序。我认为这第一次失败是因为 IEDriver 炸弹。

我得到一个对话框:

Command line server for IE Driver has stopped working

第一次失败后,IEDriver 会打开 IE,但是当您尝试对页面中的对象执行操作时,您会收到 SocketTimeoutException。有趣的是,这个错误需要 3 小时才能失败:

java.net.SocketTimeoutException: Read timed out Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T15:15:08.936Z' System info: host: 'WORKSTATION-3', ip: '172.26.50.248', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_92' Driver info: driver.version: RemoteWebDriver

如何阻止 IEDriver 轰炸,如果我不能阻止它阻止下一个测试运行?

4

1 回答 1

0

此错误消息...

Command line server for IE Driver has stopped working
.
java.net.SocketTimeoutException: Read timed out Build info: version: '3.12.0', revision: '7c6e0b3', time: '2018-05-08T15:15:08.936Z' System info: host: 'WORKSTATION-3', ip: '172.26.50.248', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_92'

...意味着IEDriverServer无法启动/产生新的WebBrowsing 会话,即InternetExplorer 浏览器会话。

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

  • 您的Selenium 客户端版本是2018-05-08T15 : 15:08.936Z的 3.12.0 ,它有点旧。
  • 您的JDK 版本是非常古老的1.8.0_92 。

所以Selenium Client v3.12.0JDK v8u92之间存在明显的不匹配。

解决方案

  • 将JDK升级到当前级别JDK 8u181
  • 将Selenium升级到当前级别Version 3.14.0
  • 将IEDriverServer升级到当前的IEDriverServer v3.14.0.0级别。

    注意:根据Selenium ClientInternetExplorerDriver同步发布的最佳实践,您必须使用同一版本中的两个二进制文件。

  • 通过IDE清理项目工作区并仅使用所需的依赖项重建项目。
  • 执行你的@Test.
  • 始终driver.quit()tearDown(){}方法内调用以优雅地关闭和销毁WebDriverWeb 客户端实例。
于 2018-08-24T10:32:44.317 回答