dealfront_enrichment.py aktualisiert
This commit is contained in:
@@ -86,7 +86,8 @@ class DealfrontScraper:
|
||||
|
||||
def login_and_navigate_to_target(self):
|
||||
"""
|
||||
Führt Login durch und navigiert direkt zur Target-URL.
|
||||
Führt den Login durch und navigiert zur Target-Seite via Klick auf den "Quick Link".
|
||||
Dieser Ansatz ist maximal robust.
|
||||
"""
|
||||
if not self.driver: return False
|
||||
username, password = self._load_credentials()
|
||||
@@ -102,17 +103,22 @@ class DealfrontScraper:
|
||||
self.driver.find_element(By.XPATH, "//button[normalize-space()='Log in']").click()
|
||||
logger.info("Login-Befehl gesendet.")
|
||||
|
||||
# SCHRITT 2: DIREKTE NAVIGATION (robuster als auf Dashboard zu warten)
|
||||
# Eine kurze, feste Pause nach dem Klick, bevor wir die URL wechseln.
|
||||
time.sleep(3)
|
||||
logger.info(f"Navigiere direkt zur Target-URL: {Config.DEALFRONT_TARGET_URL}")
|
||||
self.driver.get(Config.DEALFRONT_TARGET_URL)
|
||||
|
||||
# SCHRITT 2: NAVIGATION VIA QUICK-LINK-KACHEL
|
||||
logger.info("Warte auf Dashboard und 'Prospects finden'-Link in den Quick Links.")
|
||||
|
||||
# Dieser XPath zielt auf den Link in der "Quick links"-Kachel
|
||||
prospects_link_selector = (By.XPATH, "//a[contains(@href, '/t/prospector/companies')]")
|
||||
prospects_link = self.wait.until(EC.element_to_be_clickable(prospects_link_selector))
|
||||
logger.info("'Prospects finden'-Link gefunden. Klicke darauf...")
|
||||
prospects_link.click()
|
||||
|
||||
# SCHRITT 3: NAVIGATION VERIFIZIEREN
|
||||
verification_selector = (By.XPATH, "//button[normalize-space()='+ Neue Suche']")
|
||||
self.wait.until(EC.visibility_of_element_located(verification_selector))
|
||||
logger.info("'Target'-Seite erfolgreich geladen.")
|
||||
verification_target_selector = (By.XPATH, "//button[normalize-space()='+ Neue Suche']")
|
||||
self.wait.until(EC.visibility_of_element_located(verification_target_selector))
|
||||
|
||||
logger.info("'Target'-Seite erfolgreich und vollständig geladen.")
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
logger.critical(f"Login- oder Navigationsprozess fehlgeschlagen: {type(e).__name__}", exc_info=True)
|
||||
self._save_debug_artifacts()
|
||||
|
||||
Reference in New Issue
Block a user