From 1e4bb57cd88931cdc702cd6160b357c4a78664c8 Mon Sep 17 00:00:00 2001 From: Blallo Date: Tue, 3 Sep 2019 16:57:44 +0200 Subject: [PATCH] Fix missing attribute in webdriver and reload loop. --- bot_z/operator.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/bot_z/operator.py b/bot_z/operator.py index 5743392..d9a8636 100644 --- a/bot_z/operator.py +++ b/bot_z/operator.py @@ -182,6 +182,10 @@ class Operator(wd.Firefox): self.username = None # Clean preceding session self.delete_all_cookies() + # Fix incompatibility + if not hasattr(self, "switch_to_default_content"): + self.logger.debug("switch_to_default_content patched.") + self.switch_to_default_content = self.switch_to.default_content @safely(RETRIES) def login(self, user: str, password: str, force: bool = False) -> None: @@ -228,11 +232,17 @@ class Operator(wd.Firefox): login_butt.submit() time.sleep(5) self.logger.debug("Login result: %s", self.title) + safe_counter = 0 while "Routine window" in self.title: self.logger.debug("Reloading...") self.refresh() self.logger.info("Reloaded %s", self.name) self.switch_to.alert.accept() + time.sleep(0.5) + if safe_counter > 5: + self.logger.error("Too many reloads. Aborting.") + raise RuntimeError("Too many reloads.") + safe_counter += 1 if is_present(self, '//a[contains(@class, "imgMenu_ctrl")]', self.timeout): self._logged_in = True self.logger.info("Login succeeded for user: %s", user)