From d3cd57edaf3c9f2c7f9f7169199100c15901ba45 Mon Sep 17 00:00:00 2001 From: Jean-Marie Favreau Date: Fri, 21 Feb 2025 16:14:23 +0100 Subject: [PATCH] On corrige de petites erreurs dasn la gestion des cookies fb --- .../import_tasks/extractor_facebook.py | 17 +++++++++++++---- .../import_tasks/generic_extractors.py | 2 +- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/agenda_culturel/import_tasks/extractor_facebook.py b/src/agenda_culturel/import_tasks/extractor_facebook.py index 4f866fa..079b973 100644 --- a/src/agenda_culturel/import_tasks/extractor_facebook.py +++ b/src/agenda_culturel/import_tasks/extractor_facebook.py @@ -244,10 +244,19 @@ class FacebookEventExtractor(Extractor): from selenium.webdriver.support import expected_conditions as EC path = './/div[not(@aria-hidden)]/div[@aria-label="Allow all cookies"]' - element = WebDriverWait(downloader.driver, 10).until(EC.visibility_of_element_located((By.XPATH, path))) - button = downloader.driver.find_element(By.XPATH, path) - button.click() - t.sleep(3) + try: + element = WebDriverWait(downloader.driver, 15).until(EC.visibility_of_element_located((By.XPATH, path))) + except Exception as e: + raise Exception(_("Error while waiting for the cookie button to be visible: " + e.__class__.__name__ + ' ' + str(e))) + try: + button = downloader.driver.find_element(By.XPATH, path) + except Exception as e: + raise Exception(_("Error while getting the cookie button to be visible: " + e.__class__.__name__ + ' ' + str(e))) + try: + button.click() + except Exception as e: + raise Exception(_("Error while clicking on the cookie button to be visible: " + e.__class__.__name__ + ' ' + str(e))) + t.sleep(5) def prepare_2nd_extract(self): FacebookEventExtractor.prepare_2nd_extract_dler(self.downloader) diff --git a/src/agenda_culturel/import_tasks/generic_extractors.py b/src/agenda_culturel/import_tasks/generic_extractors.py index 532c2ef..f55b292 100644 --- a/src/agenda_culturel/import_tasks/generic_extractors.py +++ b/src/agenda_culturel/import_tasks/generic_extractors.py @@ -262,7 +262,7 @@ class TwoStepsExtractor(Extractor): ) except Exception as e: # some website (FB) sometime need a second step - if first and len(self.events) == 0 and self.has_2nd_method_in_list and self.downloader.support_2nd_extract: + if first and self.has_2nd_method_in_list and self.downloader.support_2nd_extract: logger.info('Using cookie trick on a facebook event') first = False self.prepare_2nd_extract_in_list()