#567 refactored minor classes

search options
This commit is contained in:
Heavenfighter
2025-07-02 14:25:09 +02:00
committed by Sebastian Thomschke
parent 3d937a4203
commit 3734a73542

View File

@@ -973,6 +973,7 @@ class KleinanzeigenBot(WebScrapingMixin):
"new_with_tag": "Neu mit Etikett", "new_with_tag": "Neu mit Etikett",
"new": "Neu", "new": "Neu",
"like_new": "Sehr Gut", "like_new": "Sehr Gut",
"good": "Gut",
"ok": "Gut", "ok": "Gut",
"alright": "In Ordnung", "alright": "In Ordnung",
"defect": "Defekt", "defect": "Defekt",
@@ -1066,8 +1067,7 @@ class KleinanzeigenBot(WebScrapingMixin):
async def __set_shipping(self, ad_cfg:Ad, mode:AdUpdateStrategy = AdUpdateStrategy.REPLACE) -> None: async def __set_shipping(self, ad_cfg:Ad, mode:AdUpdateStrategy = AdUpdateStrategy.REPLACE) -> None:
if ad_cfg.shipping_type == "PICKUP": if ad_cfg.shipping_type == "PICKUP":
try: try:
await self.web_click(By.XPATH, await self.web_click(By.ID, "radio-pickup")
'//*[contains(@class, "ShippingPickupSelector")]//label[contains(., "Nur Abholung")]/../input[@type="radio"]')
except TimeoutError as ex: except TimeoutError as ex:
LOG.debug(ex, exc_info = True) LOG.debug(ex, exc_info = True)
elif ad_cfg.shipping_options: elif ad_cfg.shipping_options:
@@ -1076,11 +1076,11 @@ class KleinanzeigenBot(WebScrapingMixin):
if mode == AdUpdateStrategy.MODIFY: if mode == AdUpdateStrategy.MODIFY:
try: try:
# when "Andere Versandmethoden" is not available, go back and start over new # when "Andere Versandmethoden" is not available, go back and start over new
await self.web_find(By.XPATH, '//*[contains(@class, "CarrierSelectionModal")]//button[contains(., "Andere Versandmethoden")]', timeout = 2) await self.web_find(By.XPATH, '//dialog//button[contains(., "Andere Versandmethoden")]', timeout = 2)
except TimeoutError: except TimeoutError:
await self.web_click(By.XPATH, '//dialog//button[contains(., "Zurück")]') await self.web_click(By.XPATH, '//dialog//button[contains(., "Zurück")]')
await self.web_click(By.XPATH, '//*[contains(@class, "CarrierSelectionModal")]//button[contains(., "Andere Versandmethoden")]') await self.web_click(By.XPATH, '//dialog//button[contains(., "Andere Versandmethoden")]')
await self.__set_shipping_options(ad_cfg) await self.__set_shipping_options(ad_cfg)
else: else:
special_shipping_selector = '//select[contains(@id, ".versand_s")]' special_shipping_selector = '//select[contains(@id, ".versand_s")]'
@@ -1097,7 +1097,7 @@ class KleinanzeigenBot(WebScrapingMixin):
try: try:
# when "Andere Versandmethoden" is not available, then we are already on the individual page # when "Andere Versandmethoden" is not available, then we are already on the individual page
await self.web_click(By.XPATH, await self.web_click(By.XPATH,
'//*[contains(@class, "CarrierSelectionModal")]//button[contains(., "Andere Versandmethoden")]') '//dialog//button[contains(., "Andere Versandmethoden")]')
except TimeoutError: except TimeoutError:
pass pass
@@ -1105,12 +1105,13 @@ class KleinanzeigenBot(WebScrapingMixin):
# only click on "Individueller Versand" when "IndividualShippingInput" is not available, otherwise its already checked # only click on "Individueller Versand" when "IndividualShippingInput" is not available, otherwise its already checked
# (important for mode = UPDATE) # (important for mode = UPDATE)
await self.web_find(By.XPATH, await self.web_find(By.XPATH,
'//*[contains(@class, "IndividualPriceSection")]//div[contains(@class, "IndividualShippingInput")]', '//input[contains(@placeholder, "Versandkosten (optional)")]',
timeout = 2) timeout = 2)
except TimeoutError: except TimeoutError:
await self.web_click(By.XPATH, '//*[contains(@id, "INDIVIDUAL") and contains(@data-testid, "Individueller Versand")]') await self.web_click(By.XPATH, '//*[contains(@id, "INDIVIDUAL") and contains(@data-testid, "Individueller Versand")]')
await self.web_input(By.CSS_SELECTOR, '.IndividualShippingInput input[type="text"]', str.replace(str(ad_cfg.shipping_costs), ".", ",")) await self.web_input(By.XPATH, '//input[contains(@placeholder, "Versandkosten (optional)")]',
str.replace(str(ad_cfg.shipping_costs), ".", ","))
await self.web_click(By.XPATH, '//dialog//button[contains(., "Fertig")]') await self.web_click(By.XPATH, '//dialog//button[contains(., "Fertig")]')
except TimeoutError as ex: except TimeoutError as ex:
LOG.debug(ex, exc_info = True) LOG.debug(ex, exc_info = True)