使用Selenium在Appium Automation测试中命名屏幕截图文件的SimpleDateFormat方法的其他模式是什么?

时间:2017-07-13 09:37:30

标签: java selenium appium

我正在使用Appium使用selenium测试Android App。我用一种方法来截取测试用例的截图。它运行正常。使用SimpleDateFormat将图像文件与dateformat的名称一起保存。如果我更改了dateformat的模式,则会显示以下错误:

java.io.IOException: The filename, directory name, or volume label syntax is incorrect

我当前的模式运行正常,代码是 dd-MMM-yyyy__hh_mm_ssaa ,它将我的文件名保存为 13-Jul-2017__01_07_01PM 。它不会保存在SD卡上,而是保存在我项目的位置。

我想将名称更改为 13-Jul-2017_01:01:01 PM

这是我的截图方法:

public void takeScreenShot() {

         String destDir;
         DateFormat dateFormat;

          // Set folder name to store screenshots.
          destDir = "screenshots";
          // Capture screenshot.
          File scrFile = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
          // Set date format to set It as screenshot file name.
          dateFormat = new SimpleDateFormat("dd-MMM-yyyy__hh_mm_ssaa");
          // Create folder under project with name "screenshots" provided to destDir.
          new File(destDir).mkdirs();
          // Set file name using current date time.
          String destFile = dateFormat.format(new Date()) + ".png";

          try {
           // Copy paste file at destination folder location
           FileUtils.copyFile(scrFile, new File(destDir + "/" + destFile));
          } catch (IOException e) {
           e.printStackTrace();
          }
    }  

我可以使用哪些其他模式?

2 个答案:

答案 0 :(得分:3)

试试这种格式,我使用这种格式来验证我的通过/失败测试用例。

Date d = new Date();
System.out.println(d.toString());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("D:\\RND\\"+sdf.format(d)+".png"));

答案 1 :(得分:2)

首先看一下使用SimpleDateFormat

的文档

https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html

但要实现所需的输出,您的模式应如下所示:

dd-MMM-yyyy_hh:mm:ss aa

但据我所知,你不能在文件名中包含:。所以你需要一些其他的格式