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.(无法连接远程浏览器,可能被人杀了)

         

解决方案:

 

  1. 使用一个ThreadLocal变体为您的webdriver实例跟踪,并通过一个beforeInvocation()(TestNG监听器)或@BeforeMethod通过一个afterInvocation()或通过一个@AfterMethod方法清理threadlocal实例推送一个有效的webdriver实例
  2. 您将webdriver实例化和清理移动到您的@Test方法中。(就是把WebDriver的实例化全都放在 各个test方法中,这样关了驱动或者浏览器对结果无效)
posted @ 2017-05-08 20:50  人类能走多远  阅读(249)  评论(0)    收藏  举报