"Command line server for IE Driver has stopped working" 通过 Java 使用 Selenium、IEDriverServer 执行测试时出错

"Command line server for IE Driver has stopped working" error while executing tests with Selenium, IEDriverServer through Java

我一直在使用 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 轰炸,如果我不能,我如何阻止它停止来自 运行 的下一个测试?

这个错误信息...

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 无法 initiate/spawn 新的 WebBrowsing Session InternetExplorer 浏览器 会话。

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

  • 您的 Selenium Client 版本是 3.12.0 of 2018-05-08T15:15:08.936Z 有点老了。
  • 你的 JDK 版本1.8.0_92 这是相当古老的。

因此 Selenium 客户端 v3.12.0JDK v8u92 之间存在明显的不匹配。

解决方案

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

    Note: As per best practices as Selenium Client and InternetExplorerDriver are released in sync you must use both the binaries from the same release.

  • 清理你的项目工作区通过你的IDE重建你的项目只需要依赖。
  • 执行你的@Test.
  • 始终在 tearDown(){} 方法中调用 driver.quit() 以优雅地关闭和销毁 WebDriverWeb Client 实例.