如何用侦听器解决它。给我一个更好的解决方案。我尝试与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。但是我希望输出名称作为屏幕截图的调用
答案 0 :(得分:0)
下面是一个实用程序方法,它返回调用方法的名称。
var time0 = reference.first().get('system:time_start');
var first = ee.List(ee.Image(0).set('system:time_start', time0).clip(rm_sh));
var cloud_masking = function(){
var series1list = series1.toList(100);
var series2list = series2.toList(100);
var l_masked = ee.Image((series1list).get(0));
var cloud_mask = ee.Image((series2list).get(0));
var cloud_img= l_masked.updateMask(cloud_mask).
set('system:time_start', l_masked.get('system:time_start'));
return series1list.add(cloud_img);
};
var cumulative = ee.ImageCollection(ee.List(series1.iterate(cloud_masking, first)));
Map.addLayer(cumulative,{min: 0, max: 32000},'cloud');
希望这可以解决问题。
答案 1 :(得分:0)
您可以尝试
要更改第一个索引,
String img = Thread.currentThread().getStackTrace()[1].getMethodName() + ".jpg";
希望它会起作用。