Я работаю над Selenium WebDriver с Java для автоматизации, и TestNG - это мой фреймворк. Я выполняю проверку входа в систему, в которой я регистрирую каждый шаг в отчете экстента. У меня есть функция для каждого шага и для каждого шага, я прилагаю скриншот.
Я не уверен, как назвать каждый скриншот уникальным описательным именем. Я попытался получить имя текущего метода (шага), но мне кажется, что мне нужно создать анонимный класс eveytime и eveywhere, чтобы получить имя текущего метода выполнения согласно приведенному ниже коду.
String name = new Object(){}.getClass().getEnclosingMethod().getName();
Вот мой код.
@Test(priority = 0, testName="Verify Login")
public void login() throws Exception {
lp = new LoginPage(driver, test);
tm = new TabMenu(driver, test);
driver.get(Constants.url);
lp.verifyLoginPageLogo();
lp.setUserName("admin");
lp.setPassword("admin");
lp.clickLoginBtn();
tm.isCurrentTab("Dashboard");
}
public void verifyLoginPageLogo() throws IOException {
String name = new Object(){}.getClass().getEnclosingMethod().getName();
Assert.assertTrue(loginLogo.isDisplayed());
test.log(LogStatus.PASS, "Logo is displayed", Screenshots.takeScreenshot(driver, name, test));
}
public static String takeScreenshot(WebDriver driver, String name, ExtentTest test) throws IOException {
String directory = "C:\\Users\\JACK\\Documents\\eclipse-workspace\\OrangeHRM\\Screenshots\\";
String fileName = name + ".png";
File destFile = new File(directory + fileName);
TakesScreenshot ss = (TakesScreenshot) driver;
File sourceFile = ss.getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(sourceFile, destFile);
String imgPath = test.addScreenCapture(directory+fileName);
return imgPath;
}
Есть ли другой способ сделать это?