XPath enthält: Text, folgende Geschwister und Vorfahren in Selenium
🚀 Intelligente Zusammenfassung
XPath enthält, Geschwister und Vorfahren in Selenium Sie ermöglichen die präzise Identifizierung von Webelementen mithilfe strukturierter Beziehungen und Textmuster. Diese XPath-Funktionen verbessern die Zuverlässigkeit, Flexibilität und Wartbarkeit der Automatisierung in komplexen DOM-Hierarchien.

Was enthält XPath?
XPath enthält ist eine Funktion innerhalb eines XPath-Ausdrucks, die verwendet wird, um nach Webelementen zu suchen, die einen bestimmten Text enthalten. Wir können extracAlle Elemente auf der Webseite, die dem angegebenen Textwert entsprechen, werden mithilfe der XPath-Funktion `contains()` gefunden. Die Funktion `contains()` in XPath ermöglicht es, Elemente mit einem Teiltext zu finden.
Beispiel – enthält Text
Hier suchen wir nach einem Anker, der den Text ' enthält.SAP M'.
"//h4/a[contains(text(),'SAP M')]"
HINWEIS: Sie können die folgende XPath-Übung auf diesem https://demo.guru99.com/test/selenium-xpath.html
Wenn ein einfaches XPath Da unser Testskript ein komplexes Web-Element nicht finden kann, müssen wir die Funktionen der XPath 1.0-Bibliothek verwenden. Durch die Kombination dieser Funktionen können wir einen spezifischeren XPath-Ausdruck erstellen.
👉 Kostenlos anmelden für Live Selenium Testprojekt
Geschwistern in XPath folgen
A Geschwister rein Selenium Webtreiber ist eine Funktion, die verwendet wird, um ein Webelement abzurufen, das ein Geschwisterelement des Elternelements ist. Wenn das Elternelement bekannt ist, kann das Webelement leicht gefunden werden, indem das Geschwisterattribut des XPath-Ausdrucks verwendet wird. Selenium WebDriver.
Geschwister in XPath-Beispiel:
Hier finden wir auf der Grundlage des Geschwisterelements von 'a' den Wert 'h4'.
"//div[@class='canvas- graph']//a[@href='/accounting.html'][i[@class='icon-usd']]/following-sibling::h4"
VorfahrUm ein Element anhand des übergeordneten Elements zu finden, können wir das ancestor-Attribut von XPath verwenden.
Lassen Sie uns diese 3 Funktionen anhand eines Beispiels verstehen –
Testschritte:
Hinweis: Seit dem Erstellungsdatum des Tutorials ist die Homepage von GuruVersion 99 wurde aktualisiert, verwenden Sie daher bitte stattdessen die Demo-Website, um die Tests auszuführen.
- Zurück Nach https://demo.guru99.com/test/guru99home/
- Suchen Sie im Abschnitt „Einige unserer beliebtesten Kurse“ nach allen Web-Elementen, die Geschwisterelemente eines Web-Elements sind, dessen Text „SELENIUM“ lautet.
- Wir werden Elemente mithilfe der XPath-Funktionen text contains, ancestor und sibling finden.
USING enthält Text und XPath-Geschwister
import java.time.Duration;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.testng.annotations.Test;
// If you prefer WebDriverManager (optional):
// import io.github.bonigarcia.wdm.WebDriverManager;
public class SiblingAndParentInXpath_Chrome {
@Test
public void testSiblingAndParentInXpath() {
// === Option A: Use local ChromeDriver binary path ===
// Update this path to your chromedriver location:
System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe");
// === Option B: Use WebDriverManager (uncomment next line and remove Option A lines) ===
// WebDriverManager.chromedriver().setup();
ChromeOptions options = new ChromeOptions();
// Add any flags you need, e.g. headless:
// options.addArguments("--headless=new");
WebDriver driver = new ChromeDriver(options);
try {
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
driver.manage().window().maximize();
driver.get("https://demo.guru99.com/test/guru99home/");
// Find all siblings (divs) next to the 'SELENIUM' tile within
// the "A few of our most popular courses" section.
// Steps encoded in XPath:
// 1) Locate the H2 that contains the section title
// 2) Move to its parent DIV
// 3) Inside it, locate the link with text 'SELENIUM'
// 4) From the SELENIUM tile's parent DIV, get following sibling tiles
List<WebElement> dateBox = driver.findElements(By.xpath(
"//h2[contains(., 'A few of our most popular courses')]/parent::div" +
"//a[normalize-space(.)='SELENIUM']/parent::div" +
"/following-sibling::div[contains(@class,'rt-grid-2')]"
));
// Print the text of each sibling element
for (WebElement el : dateBox) {
System.out.println(el.getText());
}
} finally {
driver.quit();
}
}
}
Die Ausgabe wird wie folgt aussehen:
XPath-Vorfahr in Selenium
XPath-Vorfahr in Selenium Diese Funktion dient dazu, den Vorfahren eines bestimmten Elements auf der angegebenen Ebene zu finden. Die Ebene des zurückzugebenden Vorfahren oder dessen Ebene relativ zur Ebene des Elements kann explizit angegeben werden. Sie gibt die Anzahl der hierarchischen Schritte vom Vorfahren zurück und lokalisiert so den gewünschten Vorfahren.
Nehmen wir nun an, wir müssen alle Elemente im Abschnitt „Beliebte Kurse“ mithilfe des Vorfahren des Ankers durchsuchen, dessen Text „SELENIUM“ lautet.
Hier sieht unsere XPath-Abfrage aus
"//div[.//a[text()='SELENIUM']]/ancestor::div[@class='rt-grid-2 rt-omega']/following-sibling::div"
Komplett Code
import java.time.Duration;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.testng.annotations.Test;
public class AncestorInXpath_Chrome {
@Test
public void testAncestorInXpath() {
// Set path to your ChromeDriver executable
System.setProperty("webdriver.chrome.driver", "C:\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
WebDriver driver = new ChromeDriver(options);
try {
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
driver.manage().window().maximize();
driver.get("https://demo.guru99.com/test/guru99home/");
// Search all elements in 'Popular course' section
// using the ancestor of the 'SELENIUM' link
List <WebElement> dateBox = driver.findElements(
By.xpath("//div[.//a[text()='SELENIUM']]/ancestor::div[@class='rt-grid-2 rt-omega']/following-sibling::div")
);
// Print all sibling elements of the 'SELENIUM' tile
for (WebElement element : dateBox) {
System.out.println(element.getText());
}
} finally {
driver.quit();
}
}
}
Die Ausgabe sieht folgendermaßen aus:
Verwendung von UND und ODER
Durch die Verwendung von UND und ODER können Sie 2 Bedingungen in Ihren XPath-Ausdruck einfügen.
- Im Falle einer UND-Verknüpfung müssen beide Bedingungen erfüllt sein, nur dann wird das Element gefunden.
- Im Falle einer ODER-Verknüpfung muss mindestens eine der beiden Bedingungen erfüllt sein, nur dann wird das Element gefunden.
Unsere XPath-Abfrage sieht hier folgendermaßen aus:
Xpath=//*[@type='submit' OR @name='btnReset']
Xpath=//input[@type='submit' and @name='btnLogin']
Testschritte:
- Zurück Nach https://demo.guru99.com/v1/
- In diesem Abschnitt werden wir die oben genannte Demoseite verwenden, um mit verschiedenen XPath-Funktionen nach Elementen zu suchen.
Sie finden ein Element mithilfe der Achsen AND und OR, der übergeordneten Achse, der Start-mit-Achse und der XPath-Achse
UND ODER Beispiel
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class AND_OR {
public static void main(String[] args) {
WebDriver driver;
WebElement w,x;
System.setProperty("webdriver.chrome.driver","E://Selenium//Selenium_Jars//chromedriver.exe");
driver= new ChromeDriver();
// Launch the application
driver.get("https://www.guru99.com/");
//Search element using OR in the xpath
w=driver.findElement(By.xpath("//*[@type='submit' OR @name='btnReset']"));
//Print the text of the element
System.out.println(w.getText());
//Search element using AND in the xpath
x=driver.findElement(By.xpath("//input[@type='submit' and @name='btnLogin']"));
//Print the text of the searched element
System.out.println(x.getText());
//Close the browser
driver.quit();
}
}
XPath Parent in Selenium
Eltern in Selenium Diese Methode dient dazu, den übergeordneten Knoten des aktuell auf einer Webseite ausgewählten Knotens zu ermitteln. Sie ist besonders nützlich, wenn Sie ein Element auswählen und dessen übergeordnetes Element mithilfe von XPath benötigen. Sie wird auch verwendet, um den übergeordneten Knoten eines übergeordneten Elements zu ermitteln.
Unsere XPath-Abfrage sieht hier folgendermaßen aus:
Xpath=//*[@id='rt-feature']//parent::div
XPath mit Parent
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class Parent {
public static void main(String[] args) {
WebDriver driver;
WebElement w;
System.setProperty("webdriver.chrome.driver","E://Selenium//Selenium_Jars//chromedriver.exe");
driver= new ChromeDriver();
// Launch the application
driver.get("https://www.guru99.com/");
//Search the element by using PARENT
w=driver.findElement(By.xpath("//*[@id='rt-feature']//parent::div"));
//Print the text of the searched element
System.out.println(w.getText());
//Close the browser
driver.quit();
}
}
Beginnt mit
Mit der Funktion "Starts-with" können Sie das Element finden, dessen Attribut sich beim Aktualisieren oder bei anderen Operationen wie Klicken, Absenden usw. dynamisch ändert.
Hier sieht unsere XPath-Abfrage aus
Xpath=//label[starts-with(@id,'message')]
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class StartsWith {
public static void main(String[] args) {
WebDriver driver;
WebElement w;
System.setProperty("webdriver.chrome.driver","E://Selenium//Selenium_Jars//chromedriver.exe");
driver= new ChromeDriver();
// Launch the application
driver.get("https://www.guru99.com/");
//Search the element by using starts-with
w=driver.findElement(By.xpath("//label[starts-with(@id,'message')]"));
//Print the text of the searched element
System.out.println(w.getText());
//Close the browser
driver.quit();
}
}
Xpath-Achsen
Mithilfe von XPath-Achsen können Sie die dynamischen und sehr komplexen Elemente auf einer Webseite finden. XPath-Achsen enthalten mehrere Methoden zum Suchen eines Elements. Hier werden einige Methoden erläutert.
Folgende: Diese Funktion gibt das unmittelbare Element der jeweiligen Komponente zurück.
Hier sieht unsere XPath-Abfrage aus
Xpath=//*[@type='text']//following::input

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class Following {
public static void main(String[] args) {
WebDriver driver;
WebElement w;
System.setProperty("webdriver.chrome.driver","E://Selenium//Selenium_Jars//chromedriver.exe");
driver= new ChromeDriver();
// Launch the application
driver.get("https://www.guru99.com/");
//Search the element by using Following method
w=driver.findElement(By.xpath("//*[@type='text']//following::input"));
//Print the text of the searched element
System.out.println(w.getText());
//Close the browser
driver.quit();
}
}
Vorher: Diese Funktion gibt das vorhergehende Element des jeweiligen Elements zurück.
Hier sieht unsere XPath-Abfrage aus
Xpath= //*[@type='submit']//preceding::input
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class Preceding {
public static void main(String[] args) {
WebDriver driver;
WebElement w;
System.setProperty("webdriver.chrome.driver","E://Selenium//Selenium_Jars//chromedriver.exe");
driver= new ChromeDriver();
// Launch the application
driver.get("https://www.guru99.com/");
//Search the element by using preceding method
w=driver.findElement(By.xpath("//*[@type='submit']//preceding::input"));
//Print the searched element
System.out.println(w.getText());
//Close the browser
driver.quit();
}
}
d) Nachfahre: Diese Funktion gibt das untergeordnete Element des jeweiligen Elements zurück.
Hier sieht unsere XPath-Abfrage aus
Xpath= //*[@id='rt-feature']//descendant::a
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class Descendant {
public static void main(String[] args) {
WebDriver driver;
WebElement w;
System.setProperty("webdriver.chrome.driver","E://Selenium//Selenium_Jars//chromedriver.exe");
driver= new ChromeDriver();
// Launch the application
driver.get("https://www.guru99.com/");
//Search the element by using descendant method
w=driver.findElement(By.xpath("//*[@id='rt-feature']//descendant::a"));
//Print the searched element
System.out.println(w.getText());
//Close the browser
driver.quit();
}
}









