Das Verständnis der Methode findElement in Selen
Ich versuche zu verstehen, die verschiedenen Schnittstellen, Klasse die das interface und die Methoden, die in Selen.
Konnte ich verstehen, dass die Schnittstelle SearchContext wird vererbt interface WebDriver und die wiederum von unterschiedlichen Klassen implementiert wie ForefoxDriver und andere.
findElement ist eine Methode, die als Teil der SearchContext-Schnittstelle und implementiert durch die FirefoxDriver (seit fireFoxDriver implementiert WebDriver).
Gibt es eine weitere Klasse namens "Von", die Reihe von verschachtelten sub-Klassen.
Nun die syntax für findElement ist wie:
driver.findElement(By.name("q"));
Konnte ich nicht verstehen, die parameter, die übergeben wird in der Methode findElement, da ist es ein Objekt, das als parameter übergeben oder ist eine andere Funktion, die aufgerufen wird, innerhalb findElement Methode?
Kann die jemand klären, was genau der parameter ist, der übergeben in dieser Funktion findElement?
Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
(Java) Nach dem Selen 2-API,
findElement()
nimmt ein argument. Ein Objekt derBy
Klasse. Werfen wir einen Blick auf dieBy
Klasse.Kurz gesagt, dies sind ALLE Möglichkeiten, die Sie in der Lage sind, finden die elemnts, die Sie benötigen. Es hängt alles von Ihren Philosophien, auf die Sie wählen. Ich persönlich benutze immer
By.cssSelector
.Dies ist Selen Art der Auswahl der Elemente, ähnlich wie fluent-api. Es macht Lesbarkeit eine Menge für die Benutzer einfacher. Die parameter übergeben Sie in findElement ist wie eine Art von pseudo-Selektor Abfrage, ähnlich wie Jsoup.
Zum Beispiel, wenn Sie wählen wollten das SO-logo in der linken oberen Ecke dieser Seite, die Sie tun könnten,
Damit die Abfrage
By.name("q")
im Grunde wählt element(s) mit dem Attributname="q"
By
's Dokumentation gibt: es ist ein Mechanismus zum suchen von Elementen innerhalb eines Dokuments. Es besteht aus abstrakten, für Benutzer, die wollen, um Ihre eigene Implementierung bereitstellen.By
- Objekt als parameter.By
's statische Methodeid(String attrValue)
oder `name(String attrValue)` gibt eineBy
Objekt zugeführtfindElement()
.driver.findElement(...).findElement(...).findElements(...).get(0).findElement(...)
ist definitiv fließend.Beim Parsen einen DOM-Objekt, können Sie ein element mit verschiedenen Möglichkeiten
Also es gibt verschiedene Möglichkeiten, um ein element
In Selen, während Sie mit findElement Methode, Sie zu sagen haben ", über die" weisen Sie Selen zu finden, das element ? über den Namen oder über id oder watever es ist ..
Thats, warum Sie eine Klasse. Also, wenn Sie wollen, finden Sie ein element mit class-Namen, dann können Sie
findElement(By.ByClassName)
Wenn Sie wollen, finden Sie die element-Id, dann können Sie
findElement(By.ById)
sehen dieser api-link