如何在selenium webdriver抛出异常后执行@Test
问题描述:
我试图在抛出异常方法外执行@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();
}
}
答
在你的类中,首先执行的是你的@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();
} }
Hi sen4ik,Circular()实际上是set_up(),而close_browser()是AfterTest,因为它终止浏览器。 circulars()和option_list()是测试,因此是注解@Test,我需要它们在报告中单独列出,这就是为什么它们必须作为单独的方法运行,而不是在异常方法中调用。 –