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

约翰肯特

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

德班扬B

这个错误信息...

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 浏览器会话。

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

  • 您的硒客户端版本为3.12.02018-05-08T15:15:08.936Z这是一个有点老。
  • 您的JDK 版本1.8.0_92,这是非常古老的。

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

解决方案

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

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章