对于每个执行屏幕截图应保存在带有日期和时间的不同文件夹中。尝试使用下面的代码,但它没有按预期工作。它是基于分钟而不是执行生成文件夹。请帮助..提前致谢。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 对象。
添加回答
举报
0/150
提交
取消