From 34a97f8016d194df4dbdbfdc49576d023c9ee5a5 Mon Sep 17 00:00:00 2001 From: Floke Date: Tue, 8 Jul 2025 19:20:09 +0000 Subject: [PATCH] dealfront_enrichment.py aktualisiert --- dealfront_enrichment.py | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/dealfront_enrichment.py b/dealfront_enrichment.py index 69cfe982..d5f822a3 100644 --- a/dealfront_enrichment.py +++ b/dealfront_enrichment.py @@ -25,27 +25,34 @@ class DealfrontScraper: self.password = password def login_and_find_list(self, search_name): - # 1) Login-Seite aufrufen - self.driver.get("https://app.dealfront.com/login") - # 2) Auf E-Mail-/Username-Feld warten, dann befüllen + # 1) Login-Seite öffnen & Credentials absenden + self.driver.get(LOGIN_URL) self.wait.until(EC.visibility_of_element_located( (By.CSS_SELECTOR, "input[type='email'], input[type='text']") )) - email_in = self.driver.find_element(By.CSS_SELECTOR, "input[type='email'], input[type='text']") - pwd_in = self.driver.find_element(By.CSS_SELECTOR, "input[type='password']") - email_in.clear(); email_in.send_keys(self.username) - pwd_in.clear(); pwd_in.send_keys(self.password) - # 3) Absenden + self.driver.find_element(By.CSS_SELECTOR, "input[type='email'], input[type='text']")\ + .send_keys(self.username) + self.driver.find_element(By.CSS_SELECTOR, "input[type='password']")\ + .send_keys(self.password) self.driver.find_element(By.CSS_SELECTOR, "button[type='submit']").click() - # 4) Auf den Quick-Link "Prospects finden" warten und klicken - self.wait.until(EC.element_to_be_clickable((By.LINK_TEXT, "Prospects finden"))) - self.driver.find_element(By.LINK_TEXT, "Prospects finden").click() - # 5) Auf die Liste der Suchen warten und dort die gewünschte anklicken - self.wait.until(EC.element_to_be_clickable((By.LINK_TEXT, search_name))) - self.driver.find_element(By.LINK_TEXT, search_name).click() - # 6) Auf das erste Daten-Element warten, damit die Tabelle geladen ist - first_locator = (By.CSS_SELECTOR, ".sticky-column a.t-highlight-text") - self.wait.until(EC.visibility_of_element_located(first_locator)) + + # 2) Quick-Link "Prospects finden" über XPath anklicken + prospects_btn = self.wait.until(EC.element_to_be_clickable(( + By.XPATH, + "//a[normalize-space()='Prospects finden']" + ))) + prospects_btn.click() + + # 3) Gesuchte vordefinierte Suche anklicken + search_btn = self.wait.until(EC.element_to_be_clickable(( + By.XPATH, + f"//a[normalize-space()='{search_name}']" + ))) + search_btn.click() + + # 4) Auf erstes Daten-Element warten + first = (By.CSS_SELECTOR, ".sticky-column a.t-highlight-text") + self.wait.until(EC.visibility_of_element_located(first)) time.sleep(1) def extract_current_page_results(self):