截取屏幕截图并使用java io(带有Java的Webdriver)将该文件复制到我的本地文件夹中
File screenshot = ((TakesScreenshot) driver)
.getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(screenshot, new File("d:\\pic\\report.jpg"));
我多次调用此方法,因此在这种情况下我不想重复文件名为" report.jpg"所以请提供一个建议如何动态更改该文件名
像 报告1 report2等,
答案 0 :(得分:3)
一种非常简单的方法:
FileUtils.copyFile(screenshot, new File("d:\\pic\\report_" + System.currentTimeMillis() + ".jpg");
我希望你不要每毫秒做一次截图。 ; - )
您可以使用时间戳来提高可读性。
java.text.SimpleDateFormat sdf = new SimpleDateFormat("YYYYMMDD'T'HHMMSSsss");
String newFileName = "d:\\pic\\report_" + sdf.format(new java.util.Date()) + ".jpg";
FileUtils.copyFile(screenshot, newFileName);
另一种解决方案可能是在辅助类中使用静态计数器。
private static int count = 0;
public static void doScreenshot() {
count++;
String newFileName = "d:\\pic\\report_" + count + ".jpg";
FileUtils.copyFile(screenshot, newFileName);
}
答案 1 :(得分:1)
您可以附加当前日期和时间,或者循环检查文件是否已存在,并在文件可用后附加数字。
日期和时间(更有意义):
Date currDate = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
String dateAndTime = dateFormat.format(currDate);
File reportFile = new File("d:\\pic\\report_" + dateAndTime + ".jpg");
File screenshot = ((TakesScreenshot) driver)
.getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(screenshot, reportFile));
数字增量方法:
File reportFile;
int number = 0;
do {
reportFile = new File("d:\\pic\\report" + number + ".jpg");
number++;
} while (reportFile.exists());
File screenshot = ((TakesScreenshot) driver)
.getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(screenshot, reportFile));
答案 2 :(得分:1)
有很多选择。
如果后缀编号很重要:
如果不重要: