3

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

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

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

每当我收到Error communicating with the remote browser错误时,caused by null就会发生错误。

我试图摆脱这个解决方案提供的第一个错误。但我仍然得到这两个错误。

有什么帮助吗?

编辑 此外,当我一次运行一个脚本时,所有脚本都可以正常工作。

4

1 回答 1

0

这通常发生在 Webdriver 实例仍然存在并且浏览器意外关闭时。

请提供更多详细信息,例如,

  1. 您是按顺序运行脚本还是并行运行脚本。
  2. 您是否在每个测试方法之前调用 Webdriver 实例并在每个方法之后关闭。
  3. 您使用的是哪个测试框架。
  4. 测试方法之间是否存在依赖关系。

根据您在 如何在 Grid 上运行时关闭 ChromeDriver 的解决方案?听起来不太好,因为@Aftersuite在所有测试方法执行完毕后,您将关闭 webdriver 实例。如果浏览器在特定测试方法处意外关闭的任何原因,那么您的其余方法也将由于浏览器不活动而失败。这就是为什么你得到null例外。

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

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

并将其关闭,

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

这样,如果浏览器意外关闭的任何原因,只有该特定测试将失败,而不是其余的。

于 2013-04-10T11:25:57.760 回答