2016-05-31 106 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