Selenium: Dynamisch warten, bis das Element vorhanden, sichtbar und interagierbar ist
Bei der Arbeit mit dynamischen Webelementen ist es wichtig, die Verwendung zu vermeiden Reduzieren Sie statische Schlafintervalle und nutzen Sie effizientere Wartetechniken. In diesem Artikel wird gezeigt, wie Sie WebDriverWait von Selenium verwenden, um dynamisch zu warten, bis ein Element vorhanden, sichtbar und interagierbar ist, bevor Aktionen ausgeführt werden.
In Ihrem Fall müssen Sie warten, bis die Anonemail-Klasse angezeigt wird, bevor Sie fortfahren. Um dies mit WebDriverWait zu erreichen, befolgen Sie diese Schritte:
Importieren Sie die Module WebDriverWait und ExpectedConditions:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC
Definieren Sie den zu suchenden CSS-Selektor das Element:
css_selector = ".anonemail"
Erstellen ein WebDriverWait-Objekt, das ein Timeout-Intervall angibt (z. B. 20 Sekunden):
wait = WebDriverWait(browser, 20)
Verwenden Sie die erwartete Bedingung „presence_of_element_located“, um zu warten, bis das Element im DOM vorhanden ist:
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, css_selector)))
Nachdem das Element erkannt wurde, können Sie mit anderen Interaktionen fortfahren, z B. das Extrahieren des Werts eines Attributs:
email = browser.find_element_by_css_selector(css_selector).get_attribute("value")
Durch die Verwendung von WebDriverWait stellen Sie sicher, dass Ihr Skript nur Aktionen ausführt, wenn das erforderliche Element bereit ist, und vermeiden so unzuverlässige Schlafintervalle.
Das obige ist der detaillierte Inhalt vonWie kann WebDriverWait von Selenium sicherstellen, dass dynamische Elemente vorhanden, sichtbar und interagierbar sind, bevor fortgefahren wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!