@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个链接并关闭浏览器。但是一旦我尝试获得第二个网址,它就会打开第二个网址,然后它就不会关闭正在测试的浏览器。
答案 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();
}