强制停止后关闭剩余的Selenium WebDriver实例
问题描述:
我想找到一些新的概念性想法,但欢迎使用特定的解决方案。强制停止后关闭剩余的Selenium WebDriver实例
技术
- 版本系统:SVN
- 持续集成工具:的TeamCity
- 代理:(!没有管理员权限)的Windows
- 语言:的Java
- 的webdriver:InternetExplorerDriver
- 测试:的JUnit
- 体形:蚂蚁
问题
如果有人在运行时停止配置(在TeamCity的GUI行), afterClass
方法未执行(它关闭浏览器)并且浏览器变为残留。
结构
(beforeClass
启动驱动器和afterClass
关闭它)
流量
(在那里你看到一个红色箭头,有人停止配置 - 例如:(s)他观察到测试失败d和想要再次运行它,但它产生的残余浏览器因为afterClass
不执行)
先前尝试
- 转到剂和手动重新启动(1次/ 1-4周) - 作品,但具有重要的缺点
- 转到代理并试图利用
taskkill
和taskkill /F
- 不工作 - 其他Java尝试(在测试之前运行一个“干净” - 原生Windows命令),但没有成功
你有什么想法吗?它们可以与代理,TeamCity,Java代码,蚂蚁,特定配置等相关。
答
如果我正确地理解了这个问题,停止配置会杀死jvm,导致浏览器残留。我对么?如果是这样,您可以尝试添加关闭挂钩并处理关闭挂钩中的浏览器关闭。即,您可以将浏览器的关闭代码块放入方法中,并通过适当的异常处理从shutdown hook和afterClass中调用该方法。
我希望这个答案能帮助你。
Id查看junit规则TestWatcher并相应地拦截失败并退出驱动程序。 – bcar 2014-10-18 14:51:53