2016-05-31 111 views
0

我目前有一个Selenium测试,通过一个网站运行11种不同的语言,并截取每个部分的截图。自己得到属性文件硒测试保存屏幕截图

screenshotsEnglish.dir = /截图/语言/英语 screenshotsSwedish.dir = /截图/语言/瑞典

我想要什么保存在这样的相应文件夹中的图片每次运行一个测试套件时都会做不同的事情,用当前日期标记创建一个新的基础文件夹,并跟以前的结构相同。我该如何做这项工作?我无法在属性文件中对其进行硬编码,因为日期会不断变化。

为了给出一个更好的总体视图这一切是如何工作的

public static Object[][] dp() { 
return new Object[][]{ 
    { 
     "https://example-URL.net/example.php?lang=EN", 
     "screenshotsEnglish.dir" 
    }, 
    { 
     "https://example-URL.net/example.php?lang=SV", 
     "screenshotsSwedish.dir" 
    } 
}; 
} 

@Test(dataProvider = "dp") 
public void t(String url, String directory) { 
    driver.get(url); 
    Properties settings = PropertiesLoader.fromResource("settings.properties"); 
    String screenshotDir = settings.getProperty(directory); 
    screenShooter = new ScreenShooter(driver, screenshotDir, "en"); 
    /*...*/ 
} 

测试是用Java编写的使用TestNG

我希望我已经说清楚了,并一如既往地感谢所有帮助负载

回答

1

为什么不这样做(没有试过编译,只是一个快速的尝试,所以错别字是可能的):

String screenshotDir = settings.getProperty(directory); //this is what you already have 
String date = new SimpleDateFormat("dd-MM-yyyy").format(new Date()); //added: get current date 
screenshotDir = screenshotDir + "/" + date; //added: create modified path 
new File(screenshotDir).mkdirs(); //added: make the new directory 
screenShooter = new ScreenShooter(driver, screenshotDir, "en"); //this is what you already have