langsames scrollen hinzugefügt.

This commit is contained in:
2025-07-13 16:37:43 +00:00
parent 985611c7e9
commit a5cf7c7f4b

View File

@@ -92,18 +92,21 @@ class DealfrontScraper:
self._save_debug_artifacts("login_exception") self._save_debug_artifacts("login_exception")
return False 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: try:
table = self.driver.find_element(By.CSS_SELECTOR, "table#t-result-table") table = self.driver.find_element(By.CSS_SELECTOR, "table#t-result-table")
self.driver.execute_script("arguments[0].scrollIntoView(false);", table) table_height = table.size['height']
self.driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") for i in range(steps):
time.sleep(1) # Kurze Pause, damit ggf. Inhalte nachgeladen werden y = int(table_height * (i + 1) / steps)
logger.info("Nach Seitenwechsel nach unten gescrollt.") 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: 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): def navigate_and_load_search(self, search_name):
try: try:
@@ -229,7 +232,7 @@ class DealfrontScraper:
logger.info("Seitenwechsel erfolgreich verifiziert (IDs der Zeilen haben sich geändert).") logger.info("Seitenwechsel erfolgreich verifiziert (IDs der Zeilen haben sich geändert).")
# NEU: Nach jedem Seitenwechsel nach unten scrollen! # NEU: Nach jedem Seitenwechsel nach unten scrollen!
self.scroll_table_to_bottom() self.scroll_table_slowly()
# Logge die aktuelle aktive Seite # Logge die aktuelle aktive Seite
try: try: