[FIXED] Finden Sie Elemente mit mehreren Klassennamen in Selenium Java

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:

Geben Sie hier die Bildbeschreibung ein

Meine Frage ist, warum erhalte ich eine leere Liste und nicht die Liste mit allen Elementen des divausgewä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)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like