为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

子衿沉夜 2021-08-19 21:32:42
对于每个执行屏幕截图应保存在带有日期和时间的不同文件夹中。尝试使用下面的代码,但它没有按预期工作。它是基于分钟而不是执行生成文件夹。请帮助..提前致谢。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];}
查看完整描述

2 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

如果我理解正确,您会在一次“运行”期间多次调用 screenShot。因此,如果您希望文件夹具有“执行时间”或更确切地说是运行的开始时间,则还必须将其作为参数传递。否则 screenShot() 将始终创建一个新的时间戳。所以把签名改成

public static String screenShot(WebDriver driver,
    String screenShotName, String testName, Date startTime) {...

并使用 startTime 而不是 Calendar 对象。


查看完整回答
反对 回复 2021-08-19
  • 2 回答
  • 0 关注
  • 247 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信