WebDriver正确关机

时间:2014-05-15 16:02:19

标签: java webdriver driver shutdown

我想知道一段时间后,最好的方法是在投掷预测或测试用例结束后进行适当的清理。

提醒一下: 根据实现的.exe进程驱动程序进程,conhost.exe,浏览器和Java应用程序都会启动。

使用driver.quit(),我们可以在完成测试用例后终止驱动程序进程,conhost和浏览器。

WebDriver driver = new SomethingDriver();

// do stuff

driver.quit(); // Proper cleaning

但是,如果可能抛出异常,我们需要这样做:

    try{
        WebDriver driver = new SomethingDriver();

        // do stuff
    }
catch(Exception e){
e.printStackTrace();
}        
    finally{
        driver.quit(); // Proper cleaning
    }

关闭驱动程序进程和conhost,但让浏览器保持活动状态怎么样?执行shell脚本很糟糕,因为它会使用这些名称杀死所有进程(因此会阻止并发使用),而且它只是Windows(我认为):

TASKKILL /F /IM chromedriver.exe
TASKKILL /F /IM conhost.exe

让我们说我们随机杀死Java进程(在Eclipse或任务管理器中)。我们如何确保进行上述清洁工作?

是否有一个能很好地涵盖所有这些问题的代码解决方案?

1 个答案:

答案 0 :(得分:0)

使用JUnit可以提供帮助

public class JunitTest1 {

    private WebDriver driver;

    @BeforeClass
    public static void oneTimeSetUp() {
        // one-time initialization code   
        System.out.println("@BeforeClass - oneTimeSetUp");
    }

    @AfterClass
    public static void oneTimeTearDown() {
        // one-time cleanup code
        System.out.println("@AfterClass - oneTimeTearDown");
    }

    @Before
    public void setUp() {
        // before every test
        driver = new FirefoxDriver();
        System.out.println("@Before - setUp");
    }

    @After
    public void tearDown() {
        // after every test
        driver.quit();
        System.out.println("@After - tearDown");
    }

    @Test
    public void testSmthOne() {
        // the test itself
        System.out.println("@Test - testSmth");
    }

    @Test
    public void testSmthTwo() {
        // the test itself
        System.out.println("@Test - testSmth");
    }
}