完成测试后,Chrome浏览器不会关闭

时间:2018-04-23 22:25:40

标签: java selenium selenium-webdriver webdriver testng

@BeforeMethod
public void setup () 
{
    System.setProperty("webdriver.chrome.driver", "src\\test\\resources\\chromedriver.exe");
    driver = new ChromeDriver(); // Opens Chrome browser
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);
    //driver.manage().window().maximize();
}

@AfterMethod
public void tearDown() throws Exception 
{
    Thread.sleep(5*1000); 
    driver.quit();
}

@Test
public void browserCommandsTests() 
{
    try {
        driver.get("http://www.costco.com");
        Thread.sleep(3 * 1000);
        driver.navigate().to("http://www.facebook.com");
        Thread.sleep(3 * 1000);
        driver.navigate().back();
        Thread.sleep(3 * 1000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

}

当我在打开网址后测试此代码时,它不会关闭  测试浏览器。 当我只获得1个网址时,它只打开1个链接并关闭浏览器。但是一旦我尝试获得第二个网址,它就会打开第二个网址,然后它就不会关闭正在测试的浏览器。

2 个答案:

答案 0 :(得分:1)

这是你的标签@AfterMethod将其更改为AfterClass(你也可以尝试关闭而不是退出):

@AfterClass
public void tearDown() throws Exception 
{    
   driver.close();
}

另外,友好的建议,使用thread.sleep会让你更加悲伤而不是快乐。另一种方法是在try / catch中使用driver.findElement(),并根据结果(true / false)引导您的流量。

祝你好运!

答案 1 :(得分:0)

@AfterMethod
public void tearDown() throws Exception 
{

    driver.quit();
}