Implizites Warten mit Selen in Python

Manav Narula 21 Juni 2023
Implizites Warten mit Selen in Python

Das Paket selenium dient der Automatisierung und dem Testen mit Python-Skripten. Wir können damit auf einzelne Elemente der Webseite zugreifen und mit ihnen arbeiten.

In diesem Paket sind viele Methoden verfügbar, um die Elemente basierend auf verschiedenen Attributen abzurufen. Beim Laden einer Seite werden einige Elemente dynamisch abgerufen.

Diese Elemente können im Vergleich zu den anderen mit einer anderen Geschwindigkeit geladen werden.

Implizites Warten mit Selen in Python

Wenn wir versuchen, ein Element zu erhalten, das nicht verfügbar ist, wird eine ElementNotVisibleException ausgelöst. Dies geschieht, weil das Element in der Quelle definiert, aber noch nicht im DOM sichtbar ist.

Dafür können wir implizite Wartezeiten verwenden. Mit impliziten Wartezeiten unter Verwendung von selenium können wir das webdriver-Objekt anweisen, die erforderliche Zeit zu warten, bevor eine Ausnahme ausgelöst wird.

Die Ausnahme wird ausgelöst, wenn das erforderliche Element nicht innerhalb dieses Zeitraums gefunden wird.

Wir verwenden die Funktion implicitly_wait(), um die implizite Wartezeit einzustellen. Diese Funktion wird mit webdriver verwendet, um die implizite Wartezeit festzulegen.

Die Zeit wird in Sekunden angegeben.

Siehe Code unten.

from selenium import webdriver

driver = webdriver.Chrome(r"C:/path/to/chromedriver.exe")
driver.implicitly_wait(10)
driver.get("https://www.sample.org/")
e = driver.find_element_by_id("some_form")

Im obigen Beispiel leiten wir mit dem Objekt webdriver auf eine Webseite um und versuchen, mit der Funktion find_element_by_id() ein Element abzurufen. Diese Funktion findet das Element, dessen Attribut id mit dem angegebenen Wert übereinstimmt.

Da es sich um ein dynamisches Element handelt, geben wir mit der Methode implicitly_wait() eine implizite Zeit von zehn Sekunden an, um sicherzustellen, dass das Element Zeit zum Laden bekommt.

Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Verwandter Artikel - Python Selenium