我在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提供的第一个错误。但我仍然得到两个错误。
任何帮助?
编辑当我一次运行一个脚本时,所有脚本都能正常运行。
答案 0 :(得分:0)
当Webdriver实例仍处于活动状态且浏览器意外关闭时,通常会发生这种情况。
请提供更多详情,例如
根据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();
}
这种方式如果浏览器意外关闭的任何原因只是特定的测试将失败而不是全部。