java - 完成测试后,chrome 浏览器不会关闭

标签 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 个链接并关闭浏览器。但一旦我尝试获取第二个网址,它就会打开第二个网址,并且在它不会关闭测试中的浏览器之后。

最佳答案

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

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

另外,友情建议,使用thread.sleep会给你带来更多的悲伤而不是快乐。另一种方法是在 try/catch 中使用 driver.findElement() ,并根据结果(真/假)从那里引导您的流程。

祝你好运!

关于java - 完成测试后,chrome 浏览器不会关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49990793/

相关文章:

javascript - Java十六进制计算

java - 使用带文本的 AppCompatActivity 创建导航右操作按钮 - Android?

java - 如何在 Android Studio 中创建项目特定的文件模板?

java - 如何通过现有元素(不是 xpath)查找子(​​不是所有后代)元素

java - 如何在@AfterMethod 中获取TestNG/Selenium 的测试结果状态?

java - 如何最大化 Selenium 屏

java - 如何正确使用math.pow java函数?

java - Submit() 重定向到另一个页面,而 click() 不允许我访问内页

Java selenium xpath - 获取特定元素下的所有元素

javascript - 从 php url 获取可下载二进制文件的文件名,而不实际下载文件