Looking for selenium-webdriver Keywords? Try Ask4Keywords

selenium-webdriverAuffinden von Webelementen


Syntax

  • ByChained (params By [] bys)

Bemerkungen

Elemente werden in Selen mithilfe von Locators und der By Klasse gefunden. Um ein robustes Automatisierungsprojekt mit Selenium zu erstellen, sollten Locators für Web Elements auf intelligente Weise verwendet werden. Die Locators sollten deskriptiv und eindeutig sein, und es ist unwahrscheinlich, dass sich die Locators ändern, sodass Sie zum Beispiel in Tests keine falschen Ergebnisse erhalten. Die Priorität ist zu verwenden:

  1. ID - da es einzigartig ist und Sie genau das Element erhalten, das Sie möchten.
  2. Klassenname - Beschreibt den Namen und kann in einem bestimmten Kontext eindeutig sein.
  3. CSS ( bessere Leistung als xpath ) - Für kompliziertere Selektoren.
  4. XPATH - Wo CSS nicht verwendet werden kann ( XPATH Axis ), z. B. div::parent .

Der Rest der Locators ist anfällig für Änderungen oder Rendering und sollte möglichst vermieden werden.

Faustregel: Wenn Ihr Code ein bestimmtes Element nicht finden kann, könnte dies daran liegen, dass Ihr Code nicht auf das Herunterladen aller DOM-Elemente gewartet hat. Erwägen Sie, Ihrem Programm zu sagen, dass es eine kurze Zeit "warten" soll (versuchen Sie es mit 3-5 Sekunden und erhöhen Sie es dann nach Bedarf langsam), bevor Sie das Element suchen. Hier ist ein Beispiel aus Python, das aus dieser Frage stammt :

from selenium import webdriver
import time

browser = webdriver.Firefox()
browser.get("https://app.website.com")

reports_element = browser.find_element_by_xpath("//button[contains(text(), 'Reports')]")

# Element not found! Try giving time for the browser to download all DOM elements:
time.sleep(10)

reports_element = browser.find_element_by_xpath("//button[contains(text(), 'Reports')]")
# This returns correct value!

Auffinden von Webelementen Verwandte Beispiele