Ausgabe
Ich versuche, eine Funktion auf der Amazon-Website unter dieser URL zu automatisieren .
Ich erhalte eine leere Liste, wenn ich diese Zeile debugge:
List<WebElement> e = driver.findElements(By.className("a-box-inner a-padding-extra-large"));
Der Quellcode der Seite sieht wie folgt aus:
Meine Frage ist, warum erhalte ich eine leere Liste und nicht die Liste mit allen Elementen des div
ausgewählten?
Lösung
Mit der Methode kann nur ein Klassenname verwendet By.className(String)
werden. Aus dem JavaDoc:
Finden Sie Elemente basierend auf dem Wert des Attributs „Klasse“. Es sollte nur ein Klassenname verwendet werden. Wenn ein Element mehrere Klassen hat, verwenden Sie bitte cssSelector(String).
Sie können stattdessen die By.cssSelector(String)
Methode verwenden:
driver.findElements(By.cssSelector("div[class='a-box-inner a-padding-extra-large']"));
Beantwortet von – Blacktide
Antwort geprüft von – Robin (FixError Admin)