Bei der Arbeit mit Selenium zum Scrapen von Daten ist es wichtig, mit dynamischen Elementen umzugehen, deren Anzeige einige Zeit in Anspruch nimmt. Ein Benutzer ist jedoch auf ein Problem gestoßen, bei dem WebDriverWait, das die Ausführung anhalten sollte, bis ein Element sichtbar ist, nicht wie erwartet funktioniert. Dieses Problem tritt nur in Einzelfällen auf, in denen das Element sichtbar ist, WebDriverWait es jedoch nicht findet.
Gemäß dem Code des Benutzers verwenden sie WebDriverWait mit einer Verzögerung von 20 Sekunden und der Methode „presence_of_element_located()“. Der Element-Locator sucht nach einer Schaltfläche, die ein neues Fenster öffnet, sodass der Benutzer benutzerdefinierte Spalten auswählen kann.
Um dieses Problem zu beheben, wird empfohlen, element_to_be_clickable() anstelle von present_of_element_located zu verwenden (). Die Methode „presence_of_element_located()“ stellt nur sicher, dass das Element im DOM existiert, während element_to_be_clickable() überprüft, ob das Element nicht nur sichtbar, sondern auch anklickbar ist. Diese Änderung sollte das Problem beheben, dass gelegentlich Elemente im neuen Fenster nicht ausgewählt werden können, auch wenn sie sichtbar sind.
Um die Situation weiter zu klären, untersuchen wir die drei Erwähnte Methoden:
Hier In einem bestimmten Fall stellt die Verwendung von element_to_be_clickable() sicher, dass die Schaltfläche für benutzerdefinierte Spalten nicht nur vorhanden und sichtbar, sondern auch aktiviert und klickbereit ist. Dadurch sollten gelegentliche Fehler bei der Auswahl von Elementen im neuen Fenster vermieden werden.
Das obige ist der detaillierte Inhalt vonWarum funktioniert mein Selenium WebDriverWait nicht, obwohl das Element sichtbar ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!