2016-05-31 5 views
0

Ich habe derzeit einen Selenium-Test, der auf einer Website in 11 verschiedenen Sprachen läuft und Screenshots von jedem Teil erstellt. Die Bilder selbstSelen-Test Screenshots speichern

in entsprechenden Ordnern wie dies in einer Eigenschaftendatei gespeichert erhalten

screenshotsEnglish.dir =/screenshots/Sprachen/Englisch screenshotsSwedish.dir =/screenshots/Sprachen/Schwedisch

Was ich will, Wenn Sie eine Testsuite ausführen, wird ein neuer Basisordner mit dem aktuellen Datumsstempel mit der gleichen Struktur wie zuvor erstellt. Wie kann ich das schaffen? Ich kann es in der Eigenschaftendatei nicht fest codieren, da sich das Datum ständig ändert.

Um eine insgesamt bessere Sicht zu geben, wie alles

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"); 
    /*...*/ 
} 

Tests geschrieben in Java mit TestNG

ich, dass ich mich klar und wie immer gemacht haben Hoffnung funktioniert, schätzen alle Hilfe Lasten

Antwort

1

Warum nicht so (nicht versucht, zu kompilieren, nur ein kurzer Versuch, so Tippfehler sind möglich):

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 
Verwandte Themen