Auf dem Selenium-Thron mit XPath-Funktionen
XPath-Funktionen –
Es gibt 4 Arten von XPath-Funktionen, die verwendet werden, um schwierige Elemente zu finden. Einige dieser Elemente können Attributwerte enthalten, die sich ändern. Die Arten von XPath-Funktionen sind
#1 Knotenmenge
#2 Zeichenfolge
#3 Boolesch
#4 Zahl
Dieses Video demonstriert, wie man Elemente mit dynamischen Attributwerten findet.
Das kostenlose Selenium-Buch behandelt XPath (Seiten 67 - 78)
► Transkript
Einführung
Das nächste AUT ist GitHub. Lassen Sie uns die Notiz unter dem Benutzernamen inspizieren. Hier ist ein Sonderfall, bei dem XPath oder CSS-Selektor unsere einzige Option ist und ein perfektes Beispiel, um Ihnen zu zeigen, warum wir Chrome DevTools nicht verwenden sollten, um XPath zu kopieren. Das Kopieren eines XPath-Wertes funktioniert manchmal, ist aber nicht zuverlässig. Daher ist es am besten, nicht mit der rechten Maustaste zu klicken, zu kopieren und XPath zu kopieren und dann XPath einzufügen. Beachten Sie den id-Wert.
Jetzt werde ich die Seite neu laden. Kopieren Sie XPath erneut und fügen Sie XPath ein. Sehen Sie, wie sich der Wert nach dem Neuladen der Seite geändert hat? Das nennt man einen dynamischen id-Wert, bei dem sich der Wert jedes Mal ändert. Dieses Video zeigt Ihnen, wie Sie mit dynamischen Werten unter Verwendung von XPath-Funktionen umgehen.
XPath-Funktionen
Es gibt 4 Arten von XPath-Funktionen. Auf der Oracle-Website sehen wir Knotenmenge, Zeichenfolge, Boolesch und Zahl. Unser Fokus liegt auf den Zeichenfolgenfunktionen. In unserem Spickzettel nenne ich sie Teilmusterabgleich, da wir nur einen Teil des Attributwerts abgleichen müssen. Ich wollte 3 Funktionen demonstrieren, aber ich werde ends-with entfernen und dann starts-with und contains demonstrieren.
Zurück zu unserem AUT für die starts-with-Funktion. Wir schreiben 2 Vorwärtsschrägstriche, der Tag-Name ist p, öffnende und schließende Klammern, starts-with, öffnende und schließende Klammern, @-Symbol, der Attributname ist id, Komma, 2 einfache Anführungszeichen, dann schreiben wir, mit was der Wert beginnt. Der Wert beginnt mit description, also lassen Sie uns description zwischen beiden Anführungszeichen schreiben. Bingo, da ist es. Wir können auch starts-with ersetzen und die nächste Funktion contains verwenden. Beide Funktionen funktionieren, weil der Wert mit description beginnt und auch description enthält.
Entfernen Sie starts-with und fügen Sie contains hinzu. Haben Sie bemerkt, dass wir 1 von 2 gefunden haben? 1 von 2 ist nicht gut genug, wenn wir nur die Notiz unter dem Benutzernamen überprüfen möchten. Beide Elemente sehen fast gleich aus. Wie finden wir 1 von 1, wenn beide Elemente p als TagName, eine Klassenattribut mit dem Wert note und einen dynamischen id-Wert haben?
Erinnern Sie sich an die vorherige Sitzung, in der wir XPath mit einem logischen UND-Operator verwendet haben. Lassen Sie uns beide WebElemente ansehen. Eine Notiz bezieht sich auf den Benutzernamen und die andere Notiz bezieht sich auf die E-Mail-Adresse. Wir können ein Wort oder einen Satz aus der Notiz verwenden. Innerhalb der Klammern schreiben wir und contains, 2 Klammern, wir schreiben einen Punkt, Komma, 2 einfache Anführungszeichen, innerhalb der Anführungszeichen können wir den vollständigen Satz „Das wird Ihr Benutzername sein“ und so weiter schreiben. Jetzt haben wir 1 von 1. Ich ziehe es jedoch vor, ein einzigartiges Wort wie username zu verwenden, und wir haben immer noch 1 von 1.
Diese Abfrage fragt nach „einem p-Tag, der mit einem id-Attribut beginnt, das aus einem Beschreibungwert besteht und den Text username enthält“. Wir können den Punkt auch durch die Textfunktion ersetzen. Es gibt jedoch Fälle, in denen der Text nicht funktioniert. Ich werde ein Video erstellen, das den Unterschied zwischen der Verwendung eines XPath-Wertes mit einem Punkt und der Verwendung von Text erklärt. Wir sehen immer noch 1 von 1. Wenn Sie sich entscheiden, das Wort und nicht zu schreiben, können Sie es durch die eckigen Klammern ersetzen.
Lassen Sie uns zu Tools QA gehen und mit einer anderen Syntax für die Textfunktion fortfahren. Inspizieren Sie den Vornamen: Wir sehen einen starken Tag-Namen, aber keine Attribute. Schreiben Sie 2 Vorwärtsschrägstriche, strong, beide Klammern, text, 2 Klammern, gleich, 2 einfache Anführungszeichen, Vornamen: und bingo. Wir haben unser Element gefunden. Das war's für XPath-Funktionen.
Als Nächstes sind XPath-Achsen dran.
#SeleniumTraining #XPathFunktionen #SeleniumWebDriver #SeleniumAutomatisierung