在Chrome中“与远程浏览器通信时出错”错误后跳过selenium webdriver脚本

时间:2013-04-10 08:37:48

标签: testing selenium-webdriver

我在java中运行了一组400个selenium2脚本(支持webdriver)。

当我在使用网格注册的节点上运行脚本时,有时会出现 Error communicating with the remote browser. It may have died 错误。关闭此错误的脚本并且其他脚本开始运行后,由于 caused by null error ,将跳过大约10-20个脚本。

此外,一次只能运行一个浏览器实例。 我正在使用Chrome浏览器。

如果我收到 Error communicating with the remote browser 错误,则会发生 caused by null 错误。

我试图摆脱this solution提供的第一个错误。但我仍然得到两个错误。

任何帮助?

编辑当我一次运行一个脚本时,所有脚本都能正常运行。

1 个答案:

答案 0 :(得分:0)

当Webdriver实例仍处于活动状态且浏览器意外关闭时,通常会发生这种情况。

请提供更多详情,例如

  1. 您是按顺序还是并行运行脚本。
  2. 您是否在每个测试方法之前调用Webdriver实例,并在每个方法之后关闭。
  3. 您使用的是哪个测试框架。
  4. 测试方法之间是否存在依赖关系。
  5. 根据How to close a ChromeDriver when running on Grid?的解决方案听起来不太好,因为在所有测试方法执行完毕后,您正在关闭@Aftersuite中的webdriver实例。如果浏览器意外关闭特定测试方法的任何原因,那么由于浏览器不活动,其余的方法也将失败。这就是为什么你得到null例外。

    我的建议是在每个测试方法之前和之后调用和关闭webdriver实例。 等,

    @BeforeMethod
    public void setUp(){
     WebDriver driver =  new ChromeDriver();
    }
    

    并将其关闭,

    @AfterMethod
    public void tearDown(){
     driver.quit();
    }
    

    这种方式如果浏览器意外关闭的任何原因只是特定的测试将失败而不是全部。