将每次执行的屏幕截图保存在 selenium 的不同文件夹中

对于每个执行屏幕截图应保存在带有日期和时间的不同文件夹中。尝试使用下面的代码,但它没有按预期工作。它是基于分钟而不是执行生成文件夹。请帮助..提前致谢。


public static String screenShot(WebDriver driver,

        String screenShotName, String testName) {

    Calendar calendar = Calendar.getInstance();

    SimpleDateFormat formater = new SimpleDateFormat("dd_MM_yyyy_hh_mm_ss");

    SimpleDateFormat formater1 = new SimpleDateFormat("dd_MM_yyyy_hh_mm");

    try {

File screenshotFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);

        File targetFile = new File("iWealthHKTestAutomation/resources/Screenshots_"+formater1.format(calendar.getTime())+"/"+ screenShotName+formater1.format(calendar.getTime()) + ".png");

        FileUtils.copyFile(screenshotFile, targetFile);


        return screenShotName;

    } catch (Exception e) {

        System.out.println("An exception occured while taking screenshot " + e.getCause());

        return null;

    }


}


public String getTestClassName(String testName) {

    String[] reqTestClassname = testName.split("\\.");

    int i = reqTestClassname.length - 1;

    System.out.println("Required Test Name : " + reqTestClassname[i]);

    return reqTestClassname[i];

}

http://img4.mukewang.com/611e5e0c0001557202990206.jpg

子衿沉夜
浏览 251回答 2
2回答

慕标5832272

如果我理解正确,您会在一次“运行”期间多次调用 screenShot。因此,如果您希望文件夹具有“执行时间”或更确切地说是运行的开始时间,则还必须将其作为参数传递。否则 screenShot() 将始终创建一个新的时间戳。所以把签名改成public static String screenShot(WebDriver driver,     String screenShotName, String testName, Date startTime) {...并使用 startTime 而不是 Calendar 对象。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java