xpath selenium

Was ist XPath in Selen?

XPath in Selen ist ein XML-Pfad, der für die Navigation durch die HTML-Struktur der Seite verwendet wird. Es handelt sich um eine Syntax oder Sprache zum Auffinden beliebiger Elemente auf einer Webseite mithilfe eines XML-Pfadausdrucks. XPath kann sowohl für HTML- als auch für XML-Dokumente verwendet werden, um mithilfe der HTML-DOM-Struktur die Position eines beliebigen Elements auf einer Webseite zu ermitteln.

Wenn in der Selenium-Automatisierung die Elemente nicht von den allgemeinen Locators wie ID, Klasse, Name usw. gefunden werden, wird XPath verwendet, um ein Element auf der Webseite zu finden.

Bạn đang xem: xpath selenium

In diesem Tutorial lernen wir den Xpath und verschiedene XPath-Ausdrücke kennen, um die COM zu findenplex oder dynamische Elemente, deren Attribute sich bei Aktualisierung oder anderen Vorgängen dynamisch ändern.

XPath-Syntax

XPath enthält den Pfad des Elements, das sich auf der Webseite befindet. Die Standard-XPath-Syntax zum Erstellen von XPath lautet.

Xpath=//tagname[@attribute='value']

Das Grundformat von XPath in Selenium wird unten anhand eines Screenshots erläutert.

Basic Format of XPath

Grundformat von XPath

  • // : Aktuellen Knoten auswählen.
  • Verlinke den Namen: Tagname des jeweiligen Knotens.
  • @: Attribut auswählen.
  • Attribut: Attributname des Knotens.
  • Wert: Wert des Attributs.

Um das Element auf Webseiten genau zu finden, gibt es verschiedene Arten von Locators:

XPath-Locator Finden Sie verschiedene Elemente auf der Webseite
ID Um das Element anhand der ID des Elements zu finden
Klassenname Um das Element anhand des Klassennamens des Elements zu finden
Name Um das Element anhand des Namens zu finden
Link Text Um das Element anhand des Textes des Links zu finden
XPath XPath ist erforderlich, um das dynamische Element zu finden und zwischen verschiedenen Elementen der Webseite zu wechseln
CSS-Pfad Der CSS-Pfad findet auch Elemente ohne Namen, Klasse oder ID.

Arten von X-Pfaden

Es gibt zwei Arten von XPath:

1) Absoluter XPath

2) Relativer XPath

Absoluter XPath:

Dies ist der direkte Weg, das Element zu finden, aber der Nachteil des absoluten XPath besteht darin, dass dieser XPath fehlschlägt, wenn Änderungen am Pfad des Elements vorgenommen werden.

Das Hauptmerkmal von XPath ist, dass es mit einem einzelnen Schrägstrich (/) beginnt, was bedeutet, dass Sie das Element vom Wurzelknoten aus auswählen können.

Unten sehen Sie das Beispiel eines absoluten Xpath-Ausdrucks des lặng folgenden Bildschirm gezeigten Elements.

HINWEIS: Sie können Folgendes übenwing XPath-Übung dazu http://demo.guru99.com/test/selenium-xpath.html

Klicken Sie hier wenn das Video nicht zugänglich ist

Absoluter XPath:

/html/body/div[2]/div[1]/div/h4[1]/b/html[1]/body[1]/div[2]/div[1]/div[1]/h4[1]/b[1]

Absolute XPath

Absoluter XPath

Relativer XPath:

Relativer XPath beginnt in der Mitte der HTML-DOM-Struktur. Es beginnt mit einem doppelten Schrägstrich (//). Es kann überall auf der Webseite nach Elementen suchen, sodass kein langer XPPath geschrieben werden muss und Sie in der Mitte der HTML-DOM-Struktur beginnen können. Relativer XPath wird immer bevorzugt, domain authority es sich nicht um einen vollständigen Pfad vom Stammelement handelt.

Unten sehen Sie das Beispiel eines relativen XPath-Ausdrucks desselben Elements, das lặng folgenden Bildschirm gezeigt wird. Dies ist das gängige Format, das zum Suchen von Elementen mit XPath verwendet wird.

Klicken Sie hier wenn das Video nicht zugänglich ist

Relative XPath: //div[@class='featured-box cloumnsize1']//h4[1]//b[1]

Relative XPath

Relativer XPath

Was sind XPath-Achsen?

XPath-Achsen durchsuchen verschiedene Knoten lặng XML-Dokument vom aktuellen Kontextknoten aus. XPath-Achsen sind Methoden zum Auffinden dynamischer Elemente, die mit normalen XPath-Methoden ohne ID, Klassenname, Name usw. nicht möglich wären.

Axes-Methoden werden verwendet, um die Elemente zu finden, die sich beim Aktualisieren oder anderen Vorgängen dynamisch ändern. Es gibt nur wenige Achsenmethoden, die häufig verwendet werden Selenium-Webtreiber wie Kind, Elternteil, Vorfahre, Geschwister, Vorgänger, Selbst usw.

So schreiben Sie dynamischen XPath in Selenium WebDriver

1) Grundlegender XPath:

XPath-Ausdrücke wählen Knoten oder Knotenlisten auf der Grundlage von Attributen wie aus ID, Name, Klassennameusw. aus dem XML-Dokument, wie unten dargestellt.

Xpath=//input[@name='uid']

Hier ist ein Link, um auf die Seite zuzugreifen http://demo.guru99.com/test/selenium-xpath.html

Basic XPath

Grundlegender XPath

Einige weitere grundlegende XPath-Ausdrücke:

Xpath=//input[@type='text']
Xpath=//label[@id='message23']
Xpath=//input[@value='RESET']
Xpath=//*[@class='barone']
Xpath=//a[@href='http://demo.guru99.com/']
Xpath=//img[@src='//guru99.com/images/home/java.png']

2) Enthält():

Contains() ist eine Methode, die lặng XPath-Ausdruck verwendet wird. Es wird verwendet, wenn sich der Wert eines Attributs dynamisch ändert, beispielsweise Anmeldeinformationen.

Die Funktion „Einschließen“ bietet die Möglichkeit, das Element mit Teiltext zu finden, wie lặng folgenden XPath-Beispiel gezeigt.

In diesem Beispiel haben wir versucht, das Element zu identifizieren, indem wir einfach einen Teiltextwert des Attributs verwendeten. Im folgenden XPath-Ausdruck wird der Teilwert „sub“ anstelle der Schaltfläche „Senden“ verwendet. Es ist zu beobachten, dass das Element erfolgreich gefunden wurde.

Der vollständige Wert von „Type“ ist „submit“, es wird jedoch nur der Teilwert „sub“ verwendet.

Xpath=//*[contains(@type,'sub')]

Der vollständige Wert von „name“ ist „btnLogin“, es wird jedoch nur der Teilwert „btn“ verwendet.

Xpath=//*[contains(@name,'btn')]

Im obigen Ausdruck haben wir „name“ als Attribut und „btn“ als Teilwert verwendet, wie lặng folgenden Screenshot gezeigt. Dadurch werden zwei Elemente (LOGIN & RESET) gefunden, domain authority ihr Attribut „name“ mit „btn“ beginnt.

XPath in Selenium WebDriver: Complete Tutorial

Ebenso haben wir lặng folgenden Ausdruck die „id“ als Attribut und „message“ als Teilwert verwendet. Dadurch werden zwei Elemente gefunden („Benutzer-ID darf nicht leer sein“ und „Passwort darf nicht leer sein“), domain authority das Attribut „id“ mit „Nachricht“ beginnt.

Xpath=//*[contains(@id,'message')]

XPath in Selenium WebDriver: Complete Tutorial

Im folgenden Ausdruck haben wir den „Text“ des Links als Attribut und „hier“ als Teilwert verwendet, wie lặng folgenden Screenshot gezeigt. Dadurch wird der Link („hier“) gefunden, domain authority der Text „hier“ angezeigt wird.

Xpath=//*[contains(text(),'here')]
Xpath=//*[contains(@href,'guru99.com')]

XPath in Selenium WebDriver: Complete Tutorial

3) Verwendung von ODER & UND:

Im OR-Ausdruck werden zwei Bedingungen verwendet, nämlich ob die erste Bedingung ODER die zweite Bedingung wahr sein soll. Dies gilt auch, wenn eine der Bedingungen zutrifft oder möglicherweise beide. Bedeutet, dass eine beliebige Bedingung wahr sein muss, um das Element zu finden.

Im folgenden XPath-Ausdruck werden die Elemente identifiziert, deren einzelne oder beide Bedingungen wahr sind.

Xpath=//*[@type='submit' or @name='btnReset']

Hervorhebung beider Elemente als „LOGIN“-Element mit dem Attribut „Typ“ und „RESET“-Element mit dem Attribut „Name“.

XPath in Selenium WebDriver: Complete Tutorial

Im AND-Ausdruck werden zwei Bedingungen verwendet. Beide Bedingungen müssen wahr sein, um das Element zu finden. Das Element kann nicht gefunden werden, wenn eine Bedingung falsch ist.

Xpath=//input[@type='submit' and @name='btnLogin']

Im folgenden Ausdruck wird das Element „LOGIN“ hervorgehoben, domain authority es sowohl das Attribut „Typ“ als auch „Name“ hat.

XPath in Selenium WebDriver: Complete Tutorial

4) Xpath beginnt mit

XPath beginnt mit() ist eine Funktion zum Suchen des Webelements, dessen Attributwert bei der Aktualisierung oder durch andere dynamische Vorgänge auf der Webseite geändert wird. Bei dieser Methode wird der Starttext des Attributs abgeglichen, um das Element zu finden, dessen Attributwert sich dynamisch ändert. Sie können auch Elemente finden, deren Attributwert statisch ist (keine Änderungen).

Beispiel: Angenommen, die ID eines bestimmten Elements ändert sich dynamisch wie folgt:

Xem thêm: 100gr ức gà bao nhiêu protein

Id=“ message12″

Id=“ message345″

Id=“ message8769″

und so sánh weiter.. aber der ursprüngliche Text ist derselbe. In diesem Fall verwenden wir den Start-with-Ausdruck.

Im folgenden Ausdruck gibt es zwei Elemente mit einer ID, die mit „Nachricht“ beginnt (z. B. „Benutzer-ID darf nicht leer sein“ und „Passwort darf nicht leer sein“). Im folgenden Beispiel findet XPath diejenigen Elemente, deren „ID“ mit „Nachricht“ beginnt.

Xpath=//label[starts-with(@id,'message')]

XPath in Selenium WebDriver: Complete Tutorial

5) XPath Text()-Funktion

Der XPath text()-Funktion ist eine integrierte Funktion von Selenium Webdriver, die zum Auffinden von Elementen basierend auf dem Text eines Webelements verwendet wird. Es hilft dabei, die genauen Textelemente zu finden und lokalisiert die Elemente innerhalb des Satzes von Textknoten. Die zu suchenden Elemente sollten in Stringform vorliegen.

In diesem Ausdruck finden wir mit der Textfunktion das Element mit der genauen Textübereinstimmung, wie unten gezeigt. In unserem Fall finden wir das Element mit dem Text „UserID“.

Xpath=//td[text()='UserID']

XPath in Selenium WebDriver: Complete Tutorial

XPath-Achsenmethoden:

Diese XPath-Achsenmethoden werden verwendet, um die COM zu findenplex oder dynamische Elemente. Im Folgenden werden wir einige dieser Methoden sehen.

Zur Veranschaulichung dieser XPath-Achsenmethode verwenden wir die Demo-Site der Guru99-Bank.

1) Following:

Wählt alle Elemente lặng Dokument des aktuellen Knotens aus () [Benutzer-ID-Eingabe box ist der aktuelle Knoten], wie lặng folgenden Bildschirm gezeigt.

Xpath=//*[@type='text']//following::input

XPath in Selenium WebDriver: Complete Tutorial

Es gibt 3 „Eingabe“-Knoten, die mit „follo“ übereinstimmenwing”Achsen-Passwort, Login und Reset-Taste. Wenn Sie sich auf ein bestimmtes Element konzentrieren möchten, können Sie die folgende XPath-Methode verwenden:

Xpath=//*[@type='text']//following::input[1]

Sie können den XPath entsprechend der Anforderung ändern, indem Sie [1],[2]…………usw. eingeben.

Mit der Eingabe „1“ findet der folgende Screenshot den bestimmten Knoten, der als „Passwort“-Eingabe gilt box Element.

XPath in Selenium WebDriver: Complete Tutorial

2) Vorfahr:

Die Vorfahren-Achse wählt alle Vorfahren-Elemente (Großeltern, Eltern usw.) des aktuellen Knotens aus, wie lặng folgenden Bildschirm gezeigt.

Im folgenden Ausdruck finden wir das Vorfahrenelement des aktuellen Knotens („ENTERPRISE TESTING“-Knoten).

Xpath=//*[text()='Enterprise Testing']//ancestor::div

XPath in Selenium WebDriver: Complete Tutorial

Es gibt 13 „div“-Knoten, die mithilfe der „Vorfahren“-Achse übereinstimmen. Wenn Sie sich auf ein bestimmtes Element konzentrieren möchten, können Sie den folgenden XPath verwenden, in dem Sie die Nummer 1, 2 entsprechend Ihren Anforderungen ändern:

Xpath=//*[text()='Enterprise Testing']//ancestor::div[1]

Sie können den XPath entsprechend der Anforderung ändern, indem Sie [1], [2]………… usw. eingeben.

3) Kind:

Wählt alle untergeordneten Elemente des aktuellen Knotens (Java) aus, wie lặng folgenden Bildschirm gezeigt.

Xpath=//*[@id='java_technologies']//child::li

XPath in Selenium WebDriver: Complete Tutorial

Es gibt 71 „li“-Knoten, die mithilfe der „untergeordneten“ Achse übereinstimmen. Wenn Sie sich auf ein bestimmtes Element konzentrieren möchten, können Sie den folgenden XPath verwenden:

Xpath=//*[@id='java_technologies']//child::li[1]

Sie können den xpath je nach Anforderung ändern, indem Sie [1],[2]…………usw. eingeben.

4) Vorher:

Wählen Sie alle Knoten aus, die vor dem aktuellen Knoten liegen, wie lặng folgenden Bildschirm gezeigt.

Im folgenden Ausdruck werden alle Eingabeelemente vor der Schaltfläche „LOGIN“ identifiziert Benutzeridentifikation Schwellungen und Blutungen Passwort Eingabeelement.

Xpath=//*[@type='submit']//preceding::input

XPath in Selenium WebDriver: Complete Tutorial

Es gibt zwei „Eingabe“-Knoten, die mithilfe der „vorhergehenden“ Achse übereinstimmen. Wenn Sie sich auf ein bestimmtes Element konzentrieren möchten, können Sie den folgenden XPath verwenden:

Xpath=//*[@type='submit']//preceding::input[1]

Sie können den xpath je nach Anforderung ändern, indem Sie [1],[2]…………usw. eingeben.

5) Following-Geschwister:

Wählen Sie Folgendes auswing Geschwister des Kontextknotens. Geschwister befinden sich auf derselben Ebene des aktuellen Knotens, wie lặng folgenden Bildschirm gezeigt. Das Element wird nach dem aktuellen Knoten gefunden.

xpath=//*[@type='submit']//following-sibling::input

XPath in Selenium WebDriver: Complete Tutorial

Ein Eingabeknoten-Matching mithilfe von „following-Geschwister“-Achse.

6) Elternteil:

Wählt den übergeordneten Knoten des aktuellen Knotens aus, wie lặng folgenden Bildschirm gezeigt.

Xpath=//*[@id='rt-feature']//parent::div

XPath in Selenium WebDriver: Complete Tutorial

Es gibt 65 „div“-Knoten, die mithilfe der „parent“-Achse übereinstimmen. Wenn Sie sich auf ein bestimmtes Element konzentrieren möchten, können Sie den folgenden XPath verwenden:

Xpath=//*[@id='rt-feature']//parent::div[1]

Sie können den XPath entsprechend der Anforderung ändern, indem Sie [1],[2]…………usw. eingeben.

7) Selbst:

Wählt den aktuellen Knoten oder „selbst“ aus, was den Knoten selbst angibt, wie lặng folgenden Bildschirm gezeigt.

XPath in Selenium WebDriver: Complete Tutorial

Ein Knotenabgleich mithilfe der „Selbst“-Achse. Es findet immer nur einen Knoten, domain authority dieser ein Selbstelement darstellt.

Xpath =//*[@type='password']//self::input

8) Nachkomme:

Wählt die Nachkommen des aktuellen Knotens aus, wie lặng folgenden Bildschirm gezeigt.

Im folgenden Ausdruck werden alle Elementnachkommen des aktuellen Elements (Rahmenelement „Hauptkörper umgeben“) identifiziert, d. h. unterhalb des Knotens (untergeordneter Knoten, Enkelknoten usw.).

Xpath=//*[@id='rt-feature']//descendant::a

XPath in Selenium WebDriver: Complete Tutorial

Es gibt 12 „Link“-Knoten, die mithilfe der „Abkömmlings“-Achse übereinstimmen. Wenn Sie sich auf ein bestimmtes Element konzentrieren möchten, können Sie den folgenden XPath verwenden:

Xpath=//*[@id='rt-feature']//descendant::a[1]

Xem thêm: mẫu báo cáo lưu chuyển tiền tệ gián tiếp excel

Sie können den XPath entsprechend der Anforderung ändern, indem Sie [1],[2]…………usw. eingeben.

Zusammenfassung:

XPath ist erforderlich, um ein Element auf der Webseite zu finden und eine Operation für dieses bestimmte Element durchzuführen.

  • Es gibt zwei Arten von Selen-XPath:
    • Absoluter XPath
    • Relativer XPath
  • XPath-Achsen sind die Methoden zum Auffinden dynamischer Elemente, die sonst mit der normalen XPath-Methode nicht gefunden werden könnten
  • Der XPath-Ausdruck wählt Knoten oder Knotenlisten auf der Grundlage von Attributen wie ID, Name, Klassenname usw. aus dem XML-Dokument aus.

Überprüfen Sie auch: - Selenium-Tutorial für Anfänger: Lernen Sie WebDriver in 7 Tagen