强制停止后关闭残留的Selenium WebDriver实例

时间:2014-10-17 21:48:02

标签: java memory-leaks junit selenium-webdriver teamcity

我想找到一些新的概念,但欢迎具体的解决方案。

技术

  • 版本控制系统: SVN
  • 持续集成工具: TeamCity
  • 代理: Windows(无管理员权限!)
  • 语言: Java
  • WebDriver: InternetExplorerDriver
  • 测试: JUnit
  • 构建: ant

问题

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

结构

enter image description here

beforeClass启动驱动程序,afterClass关闭它

流量

enter image description here

(你看到一个红色箭头,有人停止配置 - >例如:(s)他发现测试失败并想再次运行它,但它会产生一个残留的浏览器,因为afterClass不是执行)

以前的尝试

  • 转到代理并手动重启(1次/ 1-4周) - 有效,但有重要的缺点
  • 转到代理并尝试使用taskkilltaskkill /F - 无效
  • 其他Java尝试(在测试之前运行“更干净” - 本机Windows命令),但没有成功

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

1 个答案:

答案 0 :(得分:1)

如果我正确理解了这个问题,停止配置就是杀死jvm,留下浏览器残留。我对么?如果是这样,您可以尝试添加关闭挂钩并处理关闭钩子中的浏览器关闭。即你可以将浏览器关闭代码块放在一个方法中,并从shutdown hook和afterClass中调用它,并进行适当的异常处理。

我希望这个答案可以帮助你。