Fix missing attribute in webdriver and reload loop.

This commit is contained in:
sfigato 2019-09-03 16:57:44 +02:00 committed by blallo
parent ef848e6ca8
commit 1e4bb57cd8
Signed by: blallo
GPG Key ID: 0CBE577C9B72DC3F

View File

@ -182,6 +182,10 @@ class Operator(wd.Firefox):
self.username = None self.username = None
# Clean preceding session # Clean preceding session
self.delete_all_cookies() 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) @safely(RETRIES)
def login(self, user: str, password: str, force: bool = False) -> None: def login(self, user: str, password: str, force: bool = False) -> None:
@ -228,11 +232,17 @@ class Operator(wd.Firefox):
login_butt.submit() login_butt.submit()
time.sleep(5) time.sleep(5)
self.logger.debug("Login result: %s", self.title) self.logger.debug("Login result: %s", self.title)
safe_counter = 0
while "Routine window" in self.title: while "Routine window" in self.title:
self.logger.debug("Reloading...") self.logger.debug("Reloading...")
self.refresh() self.refresh()
self.logger.info("Reloaded %s", self.name) self.logger.info("Reloaded %s", self.name)
self.switch_to.alert.accept() 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): if is_present(self, '//a[contains(@class, "imgMenu_ctrl")]', self.timeout):
self._logged_in = True self._logged_in = True
self.logger.info("Login succeeded for user: %s", user) self.logger.info("Login succeeded for user: %s", user)