langsames scrollen hinzugefügt.
This commit is contained in:
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user