Python Selenium: Warten auf das Laden mehrerer Elemente
Ihre Aufgabe besteht darin, sicherzustellen, dass eine dynamische Liste, die über AJAX geladen wird, zuvor mehrere Li-Elemente enthält geht weiter. Die Liste zeigt zunächst eine Lademeldung an, bevor der eigentliche Inhalt verfügbar wird.
Lösung mit WebDriverWait mit benutzerdefinierten Bedingungen
Der empfohlene Ansatz besteht darin, WebDriverWait mit einer Lambda-Funktion zu verwenden Definieren Sie eine benutzerdefinierte Bedingung. Mit dieser Funktion können Sie überprüfen, ob die Anzahl der lokalisierten Elemente ein bestimmtes Minimum überschreitet:
<code class="python">from selenium.webdriver.support import expected_conditions as EC num_elements = 1 WebDriverWait(driver, timeout).until( lambda d: len(d.find_elements_by_css_selector('ul.ltr li[id^="t_b_"] a[id^="t_a_"]')) > num_elements )</code>
Alternative Ansätze
Hinweis
Die im Codebeispiel verwendeten CSS_SELECTOR- und XPATH-Locators können so geändert werden, dass sie Ihren spezifischen Elementbezeichnern entsprechen.
Referenzen:
Das obige ist der detaillierte Inhalt vonWie kann ich darauf warten, dass mehrere Elemente in Python Selenium geladen werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!