听众如何解决它。给我一个更好的解决方案。我尝试使用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。但我希望输出名称作为调用屏幕截图
下面是一个返回调用方法名称的实用程序方法。
public static String get_calling_method_name() {
return Thread.currentThread().getStackTrace()[2].getMethodName();
}
希望这能解决问题。
你可以试试这个,
要改变第一个索引,
String img = Thread.currentThread().getStackTrace()[1].getMethodName() + ".jpg";
希望它会奏效。