通过Java使用IEDriverServer Selenium执行测试时,“ IE驱动程序的命令行服务器已停止工作”错误

时间:2018-08-24 10:16:21

标签: selenium selenium-webdriver webdriver selenium-iedriver iedriverserver

我通过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的轰炸?如果不能,如何防止它停止运行下一个测试?

1 个答案:

答案 0 :(得分: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 Browser 会话。

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

  • 您的 Selenium Client 版本是 2018-05-08T15:15:08.936Z 3.12.0 ,版本稍旧。 / li>
  • 您的 JDK版本 1.8.0_92 ,这很古老。

因此 Selenium Client v3.12.0 JDK v8u92 之间显然不匹配。

解决方案

  • JDK 升级到当前级别worked
  • 升级到当前水平JDK 8u181
  • IEDriverServer 升级到当前的Version 3.14.0级别。
      

    注意:根据最佳做法,因为 Selenium Client InternetExplorerDriver 是同步发布的,因此您必须同时使用同一发行版中的二进制文件。

  • 通过您的 IDE
  • 清理您的项目工作区重建您的项目,并且仅具有必需的依赖项。
  • 执行您的@Test
  • 始终在driver.quit()方法内调用tearDown(){},以优雅地关闭和销毁 WebDriver Web Client 实例。