С помощью слушателей, как мы можем решить эту проблему. Дайте мне лучшее решение. Я попытался использовать со Listners, но он не дает имя метода теста на сбой, он дает имя скриншота с именем текущего метода. Например, если тест не удалось в одном классе, я хочу, чтобы только имя метода класса. но это дает метод выполнения в качестве имени снимка экрана
public class Invoke {
public static WebDriver driver;
public static void invoking() throws Exception {
System.setProperty("webdriver.chrome.driver",
"E:\\AK\\Selenium files\\chromedriver_win32 (1)\\chromedriver.exe");
driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("facebook.com/");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
driver.findElement(By.xpath("akdhd")).click();
}
}
public class Excecution {
@Test public static void m() throws Exception {
Invoke.invoking();
String val=ExcelDynamic.r("C:\\Users\\PC\\Desktop\\facebook.xlsx", "Sheet1", 1, 1);
System.out.println(val);
}
Этот код в другом классе
public static void screen(String Filepath) throws Exception {
TakesScreenshot ts = ((TakesScreenshot) driver);
File fi = ts.getScreenshotAs(OutputType.FILE);
String img = Thread.currentThread().getStackTrace()[2].getMethodName() + ".jpg";
FileUtils.copyFile(fi, new File(Filepath + img));
}
}
Я вызываю этот метод в классе выполнения, поэтому он печатает снимок экрана с именем m. Но я хочу, чтобы выходное имя использовалось для снимка экрана