TestNG中 quit()的用法
@Test(priority=11)
public void test1(){
driver.quit();
// driver.close();
}
@Test(priority=10)
public void test3(){
System.out.println("这是一首简单的歌");
}
@Test(priority=100)
public void test2(){
driver.quit();
}
testNG测试中,执行次序为: test3 、test1 、test2
这样执行会报错。原因是执行test1的时候,quit()方法不仅关闭了浏览器,也关掉了驱动程序。
导致执行twst2的时候 报错:The FirefoxDriver cannot be used after quit() was called.(当方法quit()被调用时,FirefoxDriver不能被调用)
如果test1中最后的方法是: driver.close().这也会导致错误,虽然没有关掉驱动程序,但是 浏览器关了。
导致出错:Error communicating with the remote browser. It may have died.(无法连接远程浏览器,可能被人杀了)
解决方案:
- 使用一个ThreadLocal变体为您的webdriver实例跟踪,并通过一个beforeInvocation()(TestNG监听器)或@BeforeMethod通过一个afterInvocation()或通过一个@AfterMethod方法清理threadlocal实例推送一个有效的webdriver实例。
- 您将webdriver实例化和清理移动到您的@Test方法中。(就是把WebDriver的实例化全都放在 各个test方法中,这样关了驱动或者浏览器对结果无效)
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号