我使用Arquillian Drone + Graphene(独立版)在另一台机器上托管的Selenium Grid 2.0上驱动自动浏览器测试。测试在客户端模式下通过Arquillian运行(要测试的服务器已在运行)
我的一些测试需要同时使用两个浏览器,因此我根据Graphene Documentation添加了第二个浏览器。 到目前为止一切正常。
问题: 运行已注入两个浏览器的测试都会在运行类的任何测试之前启动它们。由于在使用第二个浏览器之前可能会进行一些测试,因此很可能已经超时。 当然,我可以将Selenium网格设置设置为永远(或很晚)通过超时关闭浏览器,但这不是解决方案。
有没有办法检查WebDriver是否仍在运行并通过Drone重启?
没有Drone我只是可以检查驱动程序是否退出(e.g. like this)并创建一个新实例。但我希望通过Drone注入它。
在最好的情况下,我希望能够定义Drone何时应该打开浏览器,或者甚至更好地保持打开直到测试结束。 如果那不可能重新启动它就足够了。
答案 0 :(得分:0)
我通过直接将WebDriver注入测试方法来解决问题。
public void test(@Drone @Browser2 WebDriver webdriver){...}
我对这个解决方案仍然不是很满意,但确实有效。