langsames scrollen hinzugefügt.
This commit is contained in:
@@ -92,18 +92,21 @@ class DealfrontScraper:
|
||||
self._save_debug_artifacts("login_exception")
|
||||
return False
|
||||
|
||||
def scroll_table_to_bottom(self):
|
||||
def scroll_table_slowly(self, steps=10, pause=0.3):
|
||||
"""
|
||||
Scrollt das Tabellen-Element und die Seite nach unten, damit alle Zeilen sichtbar und geladen sind.
|
||||
Scrollt die Tabelle in mehreren Schritten langsam nach unten,
|
||||
damit bei Virtualisierung/Lazy Rendering alle Zeilen geladen werden.
|
||||
"""
|
||||
try:
|
||||
table = self.driver.find_element(By.CSS_SELECTOR, "table#t-result-table")
|
||||
self.driver.execute_script("arguments[0].scrollIntoView(false);", table)
|
||||
self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
|
||||
time.sleep(1) # Kurze Pause, damit ggf. Inhalte nachgeladen werden
|
||||
logger.info("Nach Seitenwechsel nach unten gescrollt.")
|
||||
table_height = table.size['height']
|
||||
for i in range(steps):
|
||||
y = int(table_height * (i + 1) / steps)
|
||||
self.driver.execute_script("arguments[0].scrollTop = arguments[1];", table, y)
|
||||
time.sleep(pause)
|
||||
logger.info("Tabelle langsam nach unten gescrollt.")
|
||||
except Exception as e:
|
||||
logger.warning(f"Fehler beim Scrollen nach unten: {e}")
|
||||
logger.warning(f"Fehler beim langsamen Scrollen: {e}")
|
||||
|
||||
def navigate_and_load_search(self, search_name):
|
||||
try:
|
||||
@@ -229,7 +232,7 @@ class DealfrontScraper:
|
||||
logger.info("Seitenwechsel erfolgreich verifiziert (IDs der Zeilen haben sich geändert).")
|
||||
|
||||
# NEU: Nach jedem Seitenwechsel nach unten scrollen!
|
||||
self.scroll_table_to_bottom()
|
||||
self.scroll_table_slowly()
|
||||
|
||||
# Logge die aktuelle aktive Seite
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user