0

我试图在抛出异常方法外执行@Test。我能够执行@Test方法的唯一方法是如果我在抛出异常方法中调用它们,并且这会使@Test方法失败。请参阅我的代码。如何在selenium webdriver抛出异常后执行@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(); 

    } 

} 

回答

0

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

现在,由于某种原因,您正试图从您的@BeforeTest方法调用您的@Test circulars()方法,该方法根本无法工作。

接下来,为什么您将@Test注释添加到您的close_browser()和option_list()方法中?看起来他们只是助手方法,不需要@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(); 
} } 
+0

Hi sen4ik,Circular()实际上是set_up(),而close_browser()是AfterTest,因为它终止浏览器。 circulars()和option_list()是测试,因此是注解@Test,我需要它们在报告中单独列出,这就是为什么它们必须作为单独的方法运行,而不是在异常方法中调用。 –

相关问题