Arquillian Drone + Selenium Grid 2.0:让未使用的浏览器保持活跃

Arquillian Drone + Selenium Grid 2.0: Keep unused Browser alive

我正在使用 Arquillian Drone + Graphene(独立)在另一台机器上托管的 Selenium Grid 2.0 上驱动自动浏览器测试。在客户端模式下通过 Arquillian 运行 进行测试(要测试的服务器已经 运行ning)

我的一些测试需要同时使用两个浏览器,因此我根据 Graphene Documentation 添加了第二个浏览器。 到目前为止一切正常。

问题: 运行 注入了两个浏览器的测试在 class 的任何测试 运行 之前都已启动。由于在使用第二个浏览器之前可能有一些测试,它很可能已经超时。 当然,我可以将 Selenium 网格设置设置为从不(或非常晚)通过超时关闭浏览器,但这不是解决方案。

有没有办法检查 WebDriver 是否仍在运行并通过 Drone 重新启动它?

没有 Drone,我可以简单地检查驱动程序是否退出 (e.g. like this) 并创建一个新实例。但我想通过无人机注入它。

在最好的情况下,我希望能够定义 Drone 何时应该打开浏览器,或者更好地保持它打开直到测试完成。 如果那不可能,重启的方法就足够了。

我通过直接将 WebDriver 注入测试方法解决了问题。

public void test(@Drone @Browser2 WebDriver webdriver){...}

我对这个解决方案仍然不是很满意,但它确实有效。