WebDriver#findElements(...)
kehrt zurück ein java.util.List
:
java.util.List<WebElement> findElements(By by)
alle Elemente der angegebenen Suche innerhalb der aktuellen Seite mit Mechanismus. Diese Methode wird von den impliziten Wartezeiten beeinflusst, die unter der Ausführungszeit gültig sind. Wenn implizit gewartet wird, gibt diese Methode bald zurück, sobald mehr als 0 Elemente in der gefundenen Auflistung vorhanden sind, oder gibt eine leere Liste zurück, wenn das Zeitlimit erreicht ist.
Parameter: by
- Ortungsmechanismus verwenden
Returns: Eine Liste aller WebElements
oder eine leere Liste, wenn nichts
Spiele
Zu wissen, dass List
eine Schnittstelle und ArrayList
ist eine konkrete Implementierung (Klasse) dieser Schnittstelle, die Dokumentation gibt nicht an, ob die zurückgegebene List
eineistoder nicht. Wenn es wäre, könntest du es einfach auf ArrayList
werfen.
Also, da der Beton Typ unbekannt ist ...
... wenn Sie eine ArrayList
wollen, müssen Sie aus der Liste construct ein zurückgegeben:
ArrayList<WebElement> list = new ArrayList<>(driver.findElements(locator));
Das ist die einzige zuverlässige Methode ist . Casting funktioniert möglicherweise für einige Treiberimplementierungen, nicht jedoch für andere.
einfach, es zu versuchen Casting und überprüfen funktioniert es. –
Hier ist eine frühere Antwort, die helfen sollte. https://stackoverflow.com/questions/2279030/type-list-vs-type-arraylist-in-java –
Haben Sie den Rückgabetyp von ['findElements()'] (http://seleniumhq.github.io /selenium/docs/api/java/org/openqa/selenium/WebDriver.html#findElements-org.openqa.selenium.By-)? – shmosel