Ich bin neu bei Selenium. Ich versuche mit einem Website-Kalender umzugehen.Selenium Webdriver/Java: Handhabung Kalender
Wenn ich den unten angezeigten Code ausführen, wird "date did not match"
(else
Zweig) zurückgegeben. Wenn ich die contains
-Funktion anstelle von equalsignorecase
verwende, wird 12
th-Datum statt 31
ausgewählt.
Die Website, die ich versuche, automatisch zu testen ist https://www.dineout.co.in/delhi/boa-village-civil-lines-north-delhi-21335. Kann jemand helfen?
public void logged_in_user_booking() throws InterruptedException
{
calender.click();
Thread.sleep(4000);
List<WebElement> dates= driver.findElements(By.cssSelector(".days"));
System.out.println(dates);
for(int i=0; i<dates.size(); i++)
{
datee = dates.get(i).getText();
if(datee.equalsIgnoreCase("31"))
{
dates.get(i).click();
break;
}
else
{
System.out.println("date did not match");
}
}
}
Was erwarten Sie von dem Ergebnis? Ihr aktueller Selektor gibt nur 1 'WebElement' zurück. Was Sie suchen, ist 'Liste dates = driver.findElements (By.cssSelector (" ul.days li "));'. Die folgenden Schritte enthalten auch einige Probleme. Übrigens muss sich deine Logik auch ändern: Was wirst du tun, wenn dein Monat '! = 31' Tage hat? :) –
iamdanchiv
Vielen Dank es funktioniert jetzt. Für den Fall! = 31 wähle ich 30 else 28 (feb). @iamdantschiw. Ich habe gerade mit Selen angefangen, ich übe nur für jetzt –
Froh, dass es funktioniert SUMIT! Ja, Sie könnten eine switch-Anweisung versuchen, um Ihre Ausnahmen zu behandeln. Aber letztendlich versuchen Sie einfach, auf den letzten Tag des Monats zu klicken, oder? Es gibt bessere Wege, dies zu erreichen. Prost! – iamdanchiv