强制停止后关闭剩余的Selenium WebDriver实例

问题描述:

我想找到一些新的概念性想法,但欢迎使用特定的解决方案。强制停止后关闭剩余的Selenium WebDriver实例

技术

  • 版本系统:SVN
  • 持续集成工具:的TeamCity
  • 代理:(!没有管理员权限)的Windows
  • 语言:的Java
  • 的webdriver:InternetExplorerDriver
  • 测试:的JUnit
  • 体形:蚂蚁

问题

如果有人在运行时停止配置(在TeamCity的GUI行), afterClass方法未执行(它关闭浏览器)并且浏览器变为残留。

结构

enter image description here

beforeClass启动驱动器和afterClass关闭它)

流量

enter image description here

(在那里你看到一个红色箭头,有人停止配置 - 例如:(s)他观察到测试失败d和想要再次运行它,但它产生的残余浏览器因为afterClass不执行)

先前尝试

  • 转到剂和手动重新启动(1次/ 1-4周) - 作品,但具有重要的缺点
  • 转到代理并试图利用taskkilltaskkill /F - 不工作
  • 其他Java尝试(在测试之前运行一个“干净” - 原生Windows命令),但没有成功

你有什么想法吗?它们可以与代理,TeamCity,Java代码,蚂蚁,特定配置等相关。

+0

Id查看junit规则TestWatcher并相应地拦截失败并退出驱动程序。 – bcar 2014-10-18 14:51:53

如果我正确地理解了这个问题,停止配置会杀死jvm,导致浏览器残留。我对么?如果是这样,您可以尝试添加关闭挂钩并处理关闭挂钩中的浏览器关闭。即,您可以将浏览器的关闭代码块放入方法中,并通过适当的异常处理从shutdown hook和afterClass中调用该方法。

我希望这个答案能帮助你。