如何在selenium webdriver上抛出异常后执行@Test

时间:2017-06-12 13:14:23

标签: selenium exception-handling webdriver automated-tests throws

我试图在throw异常方法之外执行@Test。我能够执行@Test方法的唯一方法是,如果我在throws异常方法中调用它们,这会使@Test方法失败。请看我的代码。

public class Communication extends WebPortalLogin       {


    public static String driverPath = "C:/";
    public static WebDriver driver;


    @BeforeTest
    public void Circulars() throws Exception  {

        ExcelUtils.setExcelFile("C://TestData//TestData.xlsx", "Sheet1");

        String username = ExcelUtils.getCellData(1, 1);   
        String password = ExcelUtils.getCellData(1, 2); 

        driver = WebPortalLogin.login(username, password);

        circulars(driver);
        option_list(driver);
        close_browser();

    }

    @Test
    public void circulars(WebDriver driver)     {

      WebPortalNGFile.communication(driver).click();
      WebPortalNGFile.circulars(driver).click();

  }

  @Test
  public void option_list(WebDriver driver)     {

    WebPortalNGFile.communication(driver).click();
    WebPortalNGFile.option_list(driver).click();

  }

  @Test
  public void close_browser()    {
      driver.close();

  }

}   

1 个答案:

答案 0 :(得分:0)

在你的课堂上,首先执行的是你的@BeforeTest方法。 @BeforeTest的想法实际上是在每个@Test之前执行一个方法。

现在,出于某种原因,你试图从你的@BeforeTest方法中调用你的@Test circulars()方法,这种方法根本不起作用。

接下来,为什么要在close_browser()和option_list()方法中添加@Test注释?看起来它们只是辅助方法,不需要@Test注释。

阅读有关@BeforeTest和@Test注释的更多信息。

以下是对您的代码的一些模糊更正,可能会对您有所帮助。

public class Communication extends WebPortalLogin{

public static String driverPath = "C:/";
public static WebDriver driver;

@Test
public void Circulars() throws Exception{

    ExcelUtils.setExcelFile("C://TestData//TestData.xlsx", "Sheet1");

    String username = ExcelUtils.getCellData(1, 1);   
    String password = ExcelUtils.getCellData(1, 2); 

    driver = WebPortalLogin.login(username, password);

    circulars(driver);
    option_list(driver);
    close_browser(driver);
}

public void circulars(WebDriver driver){
    WebPortalNGFile.communication(driver).click();
    WebPortalNGFile.circulars(driver).click();
}

public void option_list(WebDriver driver){
    WebPortalNGFile.communication(driver).click();
    WebPortalNGFile.option_list(driver).click();
}

public void close_browser(WebDriver driver){
    driver.close();
} }