Sie sollten nicht. JQuery-Selektoren bieten das meiste, was CSS 2 und CSS 3 Selektoren tun, plus etwas mehr, aber Sie können wahrscheinlich ohne es leben. Wenn Sie JQuery-Selektoren kennen, kennen Sie bereits CSS-Selektoren.
Verwenden Sie CSS-Selektoren, wo Sie können und verwenden Sie XPath-Ausdrücke, wo es nicht genug ist (sie sind stärker). Ich bezweifle, dass Sie viele echte Verwendungen finden, wo diese beiden nicht genug sind (und dann ist der übliche Ansatz, um zu bekommen, was Sie können und über die Sammlung iterieren, die Ergebnisse manuell filtern).
Das heißt, Sie möglicherweise WebDriver zwingen könnte JQuery Selektoren zu akzeptieren, auch:
Wenn Sie nur ein oder zwei Browser unterstützen möchten, ist der einfachste Weg, um ein einfaches Add-on zu diesem Browser schreiben könnte zu Das würde JQuery auf jeder Seite einfügen, wenn es nicht bereits vorhanden ist. Sie würden dann erzwingen, dass dieses Add-On für den von Ihnen verwendeten Browser verwendet wird.
Wenn Sie allen Browsern unterstützt werden soll, diese Lösung wird schnell eine Last und das Beste, was Sie tun können, ist ein Dekorateur für WebDriver zu schreiben, die versuchen würde, JQuery in die Seite, bevor eine findElements()
und/oder executeScript()
Anruf zu injizieren wenn es nicht schon vorhanden ist.
Siehe this question, um eine Vorstellung über die Injektion von JQuery zu erhalten.
Nachdem Sie es injiziert haben, können Sie es verwenden, wieder nur über JavaScript:
// earlier
if (driver instanceof JavascriptExecutor) {
js = (JavascriptExecutor)driver;
} else {
throw new IllegalStateException("This driver cannot run JavaScript.");
}
WebElement element = (WebElement)js.executeScript("$('div.account').get(0)");
// or
List<WebElement> elements = (List<WebElement>)js.executeScript("$('div.account').get()");
Sie können ganz einfach diese Zeilen in eine neue By
Objekt wickeln oder eine neue findElement(String jQuerySelector)
Methode für Ihre dekoriert WebDriver wenn Sie wollen, aber das ist bis zu Ihrer Bequemlichkeit und Faulheit, haben wir es arbeitet ...
Der beste Ansatz, glaube ich, wäre eine neue By
Implementierung ByJQuery
genannt zu erstellen. Siehe this answer zum Erstellen eines ByJavaScript
- es ist ein kleiner Schritt von dort, es wieder zu verwenden, JQuery in die Seite zu injizieren und die eigentliche Abfrage auszuführen.
Ich glaube nicht, Selektoren auf einem anderen Rahmen ändern .. Es wäre das gleiche –
danke. Aber einige meiner Selektor mit Xpath, ID funktioniert nicht alle Browser. und ich habe es gegoogelt und eine Information bekommen. Mit JQUERY lösen Sie alle Probleme. Also dachte ich daran Javascriptxecutor zu lernen –
Was hat Ihnen Googeln gesagt? Ich google "Selen Jquery" und bekomme eine Menge Ergebnisse, vor allem eine Reihe von Stack-Überlauf Beiträge und b) Warum genau müssen Sie jQuery verwenden? Ich verstehe in einigen Fällen, aber in 99% der Fälle sollten Sie mit den nativen Locators durchkommen. Was funktioniert nicht? Warum? Wie funktioniert es nicht? Haben Sie CSS- und XPath-Selektoren ausprobiert? Wenn ja, warum haben sie nicht gearbeitet? Was hast du benutzt? Zeig uns etwas Code. Was schief gelaufen ist. Wie es schief gelaufen ist. Was Sie erwartet haben. – Arran