From 7b9412677e41532fe3b54a28a86e38578328b398 Mon Sep 17 00:00:00 2001 From: NME <43352844+NME1337@users.noreply.github.com> Date: Fri, 28 Feb 2025 17:16:49 +0100 Subject: [PATCH] fix: Update css class selectors fixing #440 (#441) * fixes #440 css update * fixed class selector * added missing translation --------- Co-authored-by: Jens Bergmann <1742418+1cu@users.noreply.github.com> --- src/kleinanzeigen_bot/__init__.py | 14 +++++++++----- .../resources/translations.de.yaml | 2 ++ 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/kleinanzeigen_bot/__init__.py b/src/kleinanzeigen_bot/__init__.py index 24bb750..afc0917 100644 --- a/src/kleinanzeigen_bot/__init__.py +++ b/src/kleinanzeigen_bot/__init__.py @@ -887,8 +887,8 @@ class KleinanzeigenBot(WebScrapingMixin): except TimeoutError as ex: LOG.debug(ex, exc_info = True) elif ad_cfg["shipping_options"]: - await self.web_click(By.XPATH, '//*[contains(@class, "ShippingSection")]//*//button[contains(@class, "SelectionButton")]') - await self.web_click(By.CSS_SELECTOR, '[class*="CarrierSelectionModal--Button"]') + await self.web_click(By.XPATH, '//*[contains(@class, "SubSection")]//*//button[contains(@class, "SelectionButton")]') + await self.web_click(By.CSS_SELECTOR, '[class*="CarrierSelectionModal"]') await self.__set_shipping_options(ad_cfg) else: try: @@ -899,8 +899,8 @@ class KleinanzeigenBot(WebScrapingMixin): await self.web_select(By.XPATH, special_shipping_selector, shipping_value) else: await self.web_click(By.XPATH, - '//*[contains(@class, "ShippingSection")]//*//button[contains(@class, "SelectionButton")]') - await self.web_click(By.CSS_SELECTOR, '[class*="CarrierSelectionModal--Button"]') + '//*[contains(@class, "SubSection")]//*//button[contains(@class, "SelectionButton")]') + await self.web_click(By.CSS_SELECTOR, '[class*="CarrierSelectionModal"]') await self.web_click(By.CSS_SELECTOR, '[class*="CarrierOption--Main"]') if ad_cfg["shipping_costs"]: await self.web_input(By.CSS_SELECTOR, '.IndividualShippingInput input[type="text"]', str.replace(ad_cfg["shipping_costs"], ".", ",") @@ -966,9 +966,13 @@ class KleinanzeigenBot(WebScrapingMixin): except TimeoutError as ex: LOG.debug(ex, exc_info = True) - await self.web_click(By.XPATH, '//*[contains(@class, "ModalDialog--Actions")]//button[.//*[text()[contains(.,"Fertig")]]]') except TimeoutError as ex: LOG.debug(ex, exc_info = True) + try: + # Click apply button + await self.web_click(By.XPATH, '//*[contains(@class, "ModalDialog--Actions")]//button[.//*[text()[contains(.,"Bestätigen")]]]') + except TimeoutError as ex: + raise TimeoutError(_("Unable to close shipping dialog!")) from ex async def __upload_images(self, ad_cfg: dict[str, Any]) -> None: LOG.info(" -> found %s", pluralize("image", ad_cfg["images"])) diff --git a/src/kleinanzeigen_bot/resources/translations.de.yaml b/src/kleinanzeigen_bot/resources/translations.de.yaml index 9123750..127e575 100644 --- a/src/kleinanzeigen_bot/resources/translations.de.yaml +++ b/src/kleinanzeigen_bot/resources/translations.de.yaml @@ -137,6 +137,8 @@ kleinanzeigen_bot/__init__.py: fill_login_data_and_send: "Logging in as [%s]...": "Anmeldung als [%s]..." + __set_shipping_options: + "Unable to close shipping dialog!": "Versanddialog konnte nicht geschlossen werden!" ################################################# kleinanzeigen_bot/extract.py: