XPath ein Selenium: Lernprogramm
Worin ist XPath enthalten? Selenium?
XPath ein Selenium 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.
In Selenium Bei der Automatisierung wird, falls die Elemente nicht mit allgemeinen Selektoren wie id, class, name usw. gefunden werden, XPath verwendet, um ein Element auf der Webseite zu finden.
In diesem Tutorial lernen wir XPath und verschiedene XPath-Ausdrรผcke kennen, um komplexe oder dynamische Elemente zu finden, deren Attribute sich beim Aktualisieren oder bei 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 grundlegende Format von XPath in Selenium wird unten anhand eines Screenshots erlรคutert.

- // : 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 im folgenden Bildschirm gezeigten Elements.
HINWEIS: Sie kรถnnen die folgende XPath-รbung auf diesem https://demo.guru99.com/test/selenium-xpath.html
Klicken Sie auf werden auf dieser Seite erlรคutert 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]
Relativer XPath
Relativer XPath beginnt in der Mitte der HTML-DOM-Struktur. Es beginnt mit einem doppelten Schrรคgstrich (//). Es kann Elemente รผberall auf der Webseite suchen, d. h. Sie mรผssen keinen langen XPath schreiben und kรถnnen in der Mitte der HTML-DOM-Struktur beginnen. Relativer XPath ist immer vorzuziehen, da es sich nicht um einen vollstรคndigen Pfad vom Stammelement handelt.
Unten sehen Sie das Beispiel eines relativen XPath-Ausdrucks desselben Elements, das im folgenden Bildschirm gezeigt wird. Dies ist das gรคngige Format, das zum Suchen von Elementen mit XPath verwendet wird.
Klicken Sie auf werden auf dieser Seite erlรคutert wenn das Video nicht zugรคnglich ist
Relative XPath: //div[@class='featured-box cloumnsize1']//h4[1]//b[1]
Was sind XPath-Achsen?
XPath-Achsen durchsuchen verschiedene Knoten im XML-Dokument vom aktuellen Kontextknoten aus. XPath-Achsen sind Methoden zum Auffinden dynamischer Elemente, die mit normalen XPath-Methoden ohne ID, Klassennamen, Namen usw. nicht gefunden werden kรถnnen. XPath in Selenium enthรคlt mehrere Methoden wie โContainsโ, โANDโ, โAbsolute XPathโ und โRelative XPathโ, um dynamische Elemente basierend auf verschiedenen Attributen und Bedingungen zu identifizieren und zu lokalisieren.
Achsenmethoden werden verwendet, um Elemente zu finden, die sich beim Aktualisieren oder bei anderen Vorgรคngen dynamisch รคndern. Es gibt einige Achsenmethoden, die hรคufig in Selenium Webtreiber wie Kind, Elternteil, Vorfahre, Geschwister, Vorgรคnger, Selbst usw.
So schreiben Sie dynamischen XPath hinein Selenium WebTreiber
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 https://demo.guru99.com/test/selenium-xpath.html
Einige weitere grundlegende XPath-Ausdrรผcke:
Xpath=//input[@type='text'] Xpath=//label[@id='message23'] Xpath=//input[@value='RESET'] Xpath=//*[@class='barone'] Xpath=//a[@href='https://demo.guru99.com/'] Xpath=//img[@src='//guru99.com/images/home/java.png']
2) Enthรคlt()
Contains() ist eine Methode, die im 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 im 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 im folgenden Screenshot gezeigt. Dadurch werden zwei Elemente (LOGIN & RESET) gefunden, da ihr Attribut โnameโ mit โbtnโ beginnt.
Ebenso haben wir im 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โ), da das Attribut โidโ mit โNachrichtโ beginnt.
Xpath=//*[contains(@id,'message')]
Im folgenden Ausdruck haben wir den โTextโ des Links als Attribut und โhierโ als Teilwert verwendet, wie im folgenden Screenshot gezeigt. Dadurch wird der Link (โhierโ) gefunden, da der Text โhierโ angezeigt wird.
Xpath=//*[contains(text(),'here')]
Xpath=//*[contains(@href,'guru99.com')]
3) Verwendung von ODER und 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: โLOGINโ-Element mit dem Attribut โtypeโ und โRESETโ-Element mit dem Attribut โnameโ.
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, da es sowohl das Attribut โTypโ als auch โNameโ hat.
4) Xpath beginnt mit
XPath beginnt mit() ist eine Funktion, die zum Suchen von Webelementen verwendet wird, deren Attributwert sich beim Aktualisieren oder durch andere dynamische Vorgรคnge auf der Webseite รคndert. Bei dieser Methode wird der Anfangstext des Attributs abgeglichen, um das Element zu finden, dessen Attributwert sich dynamisch รคndert. Sie kรถnnen auch Elemente finden, deren Attributwert statisch ist (sich nicht รคndert).
Beispiel: Angenommen, die ID eines bestimmten Elements รคndert sich dynamisch wie folgt:
Id=โ message12โณ
Id=โ message345โณ
Id=โ message8769โณ
und so 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')]
5) XPath Text()-Funktion
Das XPath text()-Funktion ist eine integrierte Funktion des Selenium-Webtreibers, die zum Lokalisieren von Elementen basierend auf dem Text eines Webelements verwendet wird. Sie hilft dabei, die genauen Textelemente zu finden und lokalisiert die Elemente innerhalb der Menge der Textknoten. Die zu lokalisierenden Elemente sollten in Zeichenfolgenform 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-Achsenmethoden
Diese XPath-Achsenmethoden werden verwendet, um komplexe oder dynamische Elemente zu finden. Im Folgenden sehen wir uns einige dieser Methoden an.
Zur Veranschaulichung dieser XPath-Achsenmethode werden wir Folgendes verwenden: GuruDemo-Website der 99 Bank.
1) Folgen
Wรคhlt alle Elemente im Dokument des aktuellen Knotens aus () [Das UserID-Eingabefeld ist der aktuelle Knoten], wie im folgenden Bildschirm gezeigt.
Xpath=//*[@type='text']//following::input
Es gibt 3 โEingabeโ-Knoten, die mithilfe der โfolgendenโ Achsen รผbereinstimmen: Passwort, Login und Reset-Button. 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 das Eingabefeldelement โPasswortโ ist.
2) Vorfahr
Die Vorfahren-Achse wรคhlt alle Vorfahren-Elemente (Groรeltern, Eltern usw.) des aktuellen Knotens aus, wie im folgenden Bildschirm gezeigt.
Im folgenden Ausdruck finden wir das Vorfahrenelement des aktuellen Knotens (โENTERPRISE TESTINGโ-Knoten).
Xpath=//*[text()='Enterprise Testing']//ancestor::div
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 aus (Java), wie im folgenden Bildschirm gezeigt.
Xpath=//*[@id='java_technologies']//child::li
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) Vorhergehend
Wรคhlen Sie alle Knoten aus, die vor dem aktuellen Knoten liegen, wie im folgenden Bildschirm gezeigt.
Im folgenden Ausdruck werden alle Eingabeelemente vor der Schaltflรคche โLOGINโ identifiziert Benutzeridentifikation und Passwort Eingabeelement.
Xpath=//*[@type='submit']//preceding::input
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) Nรคchstes Geschwister
Wรคhlen Sie die folgenden Geschwister des Kontextknotens aus. Geschwister befinden sich auf derselben Ebene wie der aktuelle Knoten, wie im folgenden Bildschirm gezeigt. Das Element wird nach dem aktuellen Knoten gefunden.
xpath=//*[@type='submit']//following-sibling::input
Ein Eingabeknoten wird mithilfe der โfolgenden Geschwisterโ-Achse abgeglichen.
6) Eltern
Wรคhlt den รผbergeordneten Knoten des aktuellen Knotens aus, wie im folgenden Bildschirm gezeigt.
Xpath=//*[@id='rt-feature']//parent::div
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 im folgenden Bildschirm gezeigt.
Ein Knotenabgleich mithilfe der โSelbstโ-Achse. Es findet immer nur einen Knoten, da dieser ein Selbstelement darstellt.
Xpath =//*[@type='password']//self::input
8) Nachkomme
Wรคhlt die Nachkommen des aktuellen Knotens aus, wie im 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
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]
Sie kรถnnen den XPath entsprechend der Anforderung รคndern, indem Sie [1],[2]โฆโฆโฆโฆusw. eingeben.
Hรคufig gestellte Fragen
Zusammenfassung
XPath ist erforderlich, um ein Element auf der Webseite zu finden und eine Operation mit diesem bestimmten Element durchzufรผhren.
- Es gibt zwei Arten von Selenium XPath:
- Absoluter XPath
- Relativer XPath
- XPath-Achsen sind die Methoden, die verwendet werden, um dynamische Elemente zu finden, die sonst mit der normalen XPath-Methode nicht gefunden werden kรถnnen
- 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: Erlernen Sie WebDriver in 7 Tagen

















