Heim >Backend-Entwicklung >Python-Tutorial >Warum löst Selenium beim Scrollen durch Amazon-Suchergebnisse eine StaleElementException aus?
StaleElementException von Selenium: Durchsuchen von Webseiten in Python
Beim Durchsuchen der Amazon-Suchergebnisse mit Selenium WebDriver stoßen einige Benutzer am fünften auf eine StaleElementException oder zweite Seite. Dieser Fehler tritt auf, wenn Selenium versucht, mit einem Element zu interagieren, das sich geändert hat oder aus dem DOM (Document Object Model) verschwunden ist.
Der bereitgestellte Codeausschnitt verdeutlicht die Schwierigkeit, auf der Seite nach unten zu scrollen, um die Seitenzahlenleiste zu finden. Dies führt zur StaleElementException in der Zeile „driver.execute_script“. Die Meldung „StaleElementReferenceException“ zeigt an, dass das referenzierte Element (mit der Klasse „pagnCur“) nicht mehr gültig ist.
Während der ursprüngliche Ansatz darauf abzielte, eine bestimmte Anzahl von Seiten zu durchlaufen, vereinfacht die bereitgestellte Lösung die Aufgabe kontinuierlich Klicken Sie auf die Schaltfläche „Weiter“, bis sie deaktiviert ist. Dieser Ansatz basiert darauf, dass WebDriverWait darauf wartet, dass das Schaltflächenelement „Weiter“ anklickbar wird. Wenn das WebDriverWait-Zeitlimit abläuft (Standard ist 10 Sekunden), wird die Schleife unterbrochen, vorausgesetzt, es sind keine Seiten mehr zum Navigieren vorhanden.
Es ist wichtig zu beachten, dass „implicitly_wait(10)“ wartet, bis ein Element im vorhanden ist DOM bis zu 10 Sekunden, nicht die vollen 10 Sekunden. Wenn das Element früher gefunden wird, ist der Zeitrahmen „implicitly_wait“ abgelaufen. Um zuverlässige Wartezeiten zu gewährleisten, wird die Verwendung expliziter Wartezeiten wie „WebDriverWait“ mit bestimmten Element-Locators empfohlen.
Das obige ist der detaillierte Inhalt vonWarum löst Selenium beim Scrollen durch Amazon-Suchergebnisse eine StaleElementException aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!