@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/