断言错误发生后,Chrome将不会退出

时间:2019-03-26 21:22:31

标签: java selenium

我试图通过断言测试失败时关闭浏览器。

它会在日志中输出正确的日志信息,但浏览器不会关闭。

java.lang.AssertionError:错误:标题为'Jordan | TolaActivity”,并且应为“国家/地区名称| TolaActivity

volume
at org.junit.Assert.fail(Assert.java:88)
at org.junit.Assert.assertTrue(Assert.java:41)
at Tola.Activity.tests.LoginPage.Login(LoginPage.java:61)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 

2 个答案:

答案 0 :(得分:1)

您需要利用某种错误处理。断言从您的断言中引发,并且未得到处理,因此永远不会调用您的以下退出。这是一个示例-根据您的项目结构,您可能希望在调用层次结构中更高一级。

   public void Login() throws Exception {

try {
        // -- Setup
        driver.get(constants.URL);
        Assert.assertTrue("Error: Title is '" + driver.getTitle() + "', and should be Mercy Crops Sign-on", driver.getTitle().startsWith("Mercy Corps"));

        // -- Test

        driver.findElement(By.id("login")).sendKeys("username");

        driver.findElement(By.id("password")).sendKeys("password");

        driver.findElement(By.xpath("//*[@id=\"loginbox\"]/center[2]/input")).click();

        Assert.assertTrue("Error: Title is '" + driver.getTitle() + "', and should be Country Name | TolaActivity", driver.getTitle().contains("asdasd"));
}
catch(/*Your assert exception */) {
         ///Handle an error here if you want to do something more 
}
finally {
        driver.quit();
}
}

答案 1 :(得分:1)

创建一个在测试方法之后运行的方法,该方法将退出驱动程序。测试方法中的所有内容运行完毕后,这将关闭驱动程序。

@After
public void teardown() { 
  this.driver.quit()
}