Holen Sie sich das aktuelle Datum und die Nutzung von Junit geltend zu machen gegen ein bestimmtes format, um zu testen, ob Sie passen
Bin ich mit Selenium Webdriver um das aktuell angezeigte Datum von meiner Webseite, die zeigt, in dem format:
Freitag, 13. Dezember
Ich dann verwenden wollen, Junit assertEquals, es zu überprüfen, zeigt das heutige Datum an.
Also muss ich Holen das aktuelle Datum mit Java und dann konvertieren Sie Sie in diesem format zu tun, der Vergleich. Ich glaube, ich brauche zu verwenden " = SimpleDateFormat-Klasse verwenden Sie dann die E-d-M-Muster.
Ich bin mir nicht klar über die syntax, die so etwas wie:
WebElement currentDate = driver.findElement(By.cssSelector(".currentDate"));
assertEquals("expected match on text", Calendar.getInstance()(some code here to convert to E d M) , currentDate.getText());
EDIT: Danke, Yuvaraj. So, die folgenden Werke:
Date currentDate = new Date();
DateFormat dateFormat = new SimpleDateFormat("EEEE d MMMM");
String strTodaysDate = dateFormat.format(currentDate);
strTodaysDate = strTodaysDate.substring(0,9) + "th" + strTodaysDate.substring(9,18);
System.out.println(strTodaysDate);
...und druckt "Freitag 13. Dezember". Das einzige problem, das ich jetzt haben, ist in der Verknüpfung der ordinal "th" in der richtigen position, wenn die Tage ändern und die char Positionen verschieben?
E d M
nicht die Ordnungszahl Teil ("th"). Ich würde stark vorschlagen, den Aufbau der "erwartete Wert" getrennt, anstatt zu versuchen, es zu tun in einem Ausdruck. Sie wollen zu verwendenSimpleDateFormat
zu tun, die Formatierung zu. (Oder Joda Zeit...)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Code unten ist, Holen Sie sich das aktuelle Datum in String-format. Wählen Sie das gewünschte format und vergleichen es mit dem
currentDate.getText();