如何使用失败测试的方法名称获取失败测试的屏幕截图

时间:2018-09-05 08:55:24

标签: selenium selenium-webdriver

如何用侦听器解决它。给我一个更好的解决方案。我尝试与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。但是我希望输出名称作为屏幕截图的调用

2 个答案:

答案 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";

希望它会起作用。