Sobes.tech
Junior

Welche Locator-Typen gibt es in Selenium?

sobes.tech KI

Antwort von AI

Die Locator in Selenium sind Mechanismen zur Suche nach Web-Elementen auf der Seite. Die wichtigsten Arten von Locator:

  • ID: Ermöglicht das Finden eines Elements anhand seines Attributs id. Die schnellste und zuverlässigste Methode, wenn die ID eindeutig und stabil ist.
  • Name: Ermöglicht das Finden eines Elements anhand seines Attributs name. Weniger zuverlässig als ID, da name nicht immer eindeutig ist.
  • Class Name: Ermöglicht das Finden von Elementen anhand ihres Attributs class. Gibt eine Liste von Elementen zurück, da mehrere Elemente die gleiche Klasse haben können.
  • Tag Name: Ermöglicht das Finden von Elementen anhand des Namens des HTML-Tags (z.B. div, a, input). Gibt eine Liste von Elementen zurück.
  • Link Text: Ermöglicht das Finden eines <a>-Elements (Links) anhand des genauen Link-Texts.
  • Partial Link Text: Ermöglicht das Finden eines <a>-Elements (Links) anhand einer partiellen Übereinstimmung des Link-Texts.
  • CSS Selector: Leistungsstarke und flexible Methode zur Suche nach Elementen unter Verwendung der CSS-Selektorsyntax. Ermöglicht die Suche anhand einer Kombination von Attributen, Tags, Klassen, Hierarchien und Zuständen.
  • XPath: Die mächtigste und flexibelste Methode zur Suche nach Elementen, basierend auf der Navigation durch die XML/HTML-Dokumentenstruktur. Ermöglicht das Erstellen komplexer Pfade zu Elementen, Suche anhand von Attributen, Inhalt und Position.

Beispiele für die Verwendung:

# Java
WebElement elementById = driver.findElement(By.id("myElementId"));
WebElement elementByName = driver.findElement(By.name("elementName"));
List<WebElement> elementsByClass = driver.findElements(By.className("myClass"));
WebElement elementByCss = driver.findElement(By.cssSelector("div.container > input[type='text']"));
WebElement elementByXpath = driver.findElement(By.xpath("//div[@id='parent']/button[text()='Submit']"));
# Python
element_by_id = driver.find_element(By.ID, "myElementId")
element_by_name = driver.find_element(By.NAME, "elementName")
elements_by_class = driver.find_elements(By.CLASS_NAME, "myClass")
element_by_css = driver.find_element(By.CSS_SELECTOR, "div.container > input[type='text']")
element_by_xpath = driver.find_element(By.XPATH, "//div[@id='parent']/button[text()='Submit']")

Die Wahl des Locators hängt von der Stabilität des Web-Elements und der Seitenstruktur ab. Es wird empfohlen, ID, CSS Selector oder XPath zu verwenden, wenn sie korrekt aufgebaut sind.