langsames scrollen hinzugefügt.

This commit is contained in:
2025-07-13 16:37:43 +00:00
parent 6a5fe4df02
commit 5b497b946d

View File

@@ -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: