Sobes.tech
Junior

Wie werden Sie die Locator für Elemente auf der Webseite finden?

sobes.tech KI

Antwort von AI

Um Elemente zu lokalisieren, verwende ich die folgenden Ansätze, beginnend mit den zuverlässigsten:

  1. Nach ID: Eindeutiger Bezeichner des Elements. Die stabilste Option, wenn die ID von den Entwicklern bereitgestellt wird.

    # Element nach ID suchen
    driver.find_element(By.ID, "element_id")
    
  2. Nach Klasse (Klassenname): Suche nach dem Wert des Attributs class. Kann weniger eindeutig sein als ID.

    # Element nach Klassenname suchen
    driver.find_element(By.CLASS_NAME, "element_class")
    
  3. Nach CSS-Selektor: Leistungsstarkes Werkzeug, das es ermöglicht, Elemente anhand verschiedener Attribute, DOM-Struktur, Pseudoklassen usw. zu finden. Die Flexibilität ist vergleichbar mit XPath, aber die Syntax ist oft einfacher und die Ausführung schneller.

    # Element nach CSS-Selektor suchen
    driver.find_element(By.CSS_SELECTOR, "div.container > button[type='submit']")
    
  4. Nach XPath: Abfragesprache zum Finden von Knoten in XML-Dokumenten (einschließlich HTML). Ermöglicht das Finden von Elementen anhand ihrer Position im DOM-Baum, Attributen, Texten. Nützlich, wenn keine eindeutigen IDs/Klassen vorhanden sind oder für die Navigation zwischen Eltern- und Kind-Elementen. Kann weniger performant sein als CSS-Selektoren.

    # Element nach XPath suchen
    driver.find_element(By.XPATH, "//div[@class='form']//input[@name='password']")
    
  5. Nach Tag-Name: Suche alle Elemente mit einem bestimmten Tag. Wird selten verwendet, um ein konkretes Element zu lokalisieren, eher um eine Liste zu erhalten.

    # Alle div-Elemente suchen
    driver.find_elements(By.TAG_NAME, "div")
    
  6. Nach Linktext/Partial Link Text: Speziell für <a>-Elemente (Links).

    # Link nach exaktem Text suchen
    driver.find_element(By.LINK_TEXT, "Hier klicken")
    
    # Link nach teilweisem Text suchen
    driver.find_element(By.PARTIAL_LINK_TEXT, "Hier")
    
  7. Nach Name: Suche nach dem Wert des Attributs name. Wird häufig für Formularfelder verwendet.

    # Element nach Attribut name suchen
    driver.find_element(By.NAME, "benutzername")
    

Bei der Auswahl des Locators folge ich diesen Prinzipien:

  • Einzigartigkeit: Der Locator sollte das gewünschte Element eindeutig identifizieren.
  • Stabilität: Ich bevorzuge Locator-Methoden, die weniger wahrscheinlich bei Änderungen im Design oder in der Struktur der Seite geändert werden (Bevorzugung von ID und Attributen gegenüber positionsbezogenen XPath).
  • Lesbarkeit und Wartbarkeit: Der Locator sollte verständlich sein.

Beim Einsatz von CSS-Selektoren oder XPath versuche ich, Abhängigkeiten von tiefen oder absoluten DOM-Strukturen zu vermeiden, indem ich Elemente relativ zu einem nahegelegenen eindeutigen Elternteil oder anhand ihrer eigenen Attribute suche. Ich nutze die DOM-Inspektionswerkzeuge des Browsers, um Locator zu debuggen und zu validieren.