From 99134d736ca74abdeb13c71addd5340446950781 Mon Sep 17 00:00:00 2001 From: Jeroen van der Heijden Date: Tue, 19 May 2026 10:58:25 +0200 Subject: [PATCH 1/3] retries --- infrasonar_selenium/base.py | 58 ++++++++++++++++++++++++------------- 1 file changed, 38 insertions(+), 20 deletions(-) diff --git a/infrasonar_selenium/base.py b/infrasonar_selenium/base.py index 70470b3..cdba2bb 100644 --- a/infrasonar_selenium/base.py +++ b/infrasonar_selenium/base.py @@ -35,30 +35,48 @@ def run(cls, name: str | None = None, command_executor="http://localhost:4444") t0 = time.time() - success = True - error = None + retries = 2 try: - driver.get(cls.url) - cls.test(driver) - except WebDriverException as e: - success = False - error = e.msg or type(e).__name__ - except Exception as e: - success = False - error = str(e) or type(e).__name__ + while True: + try: + driver.get(cls.url) + cls.test(driver) + + success = True + error = None + break + except WebDriverException as e: + if retries: + retries -= 1 + time.sleep(1.0) + try: + # reset browser to restart clean + driver.delete_all_cookies() + driver.get("about:blank") + except Exception: + pass + continue + success = False + error = e.msg or type(e).__name__ + break + except Exception as e: + success = False + error = str(e) or type(e).__name__ + break + + return { + 'name': name or cls.__name__, # str + 'test': cls.__name__, # str + 'url': cls.url, # str + 'success': success, # int + 'error': error, # str? + 'duration': time.time() - t0, # float + 'description': cls.description, # str + 'version': cls.version, # str + } finally: driver.quit() - return { - 'name': name or cls.__name__, # str - 'test': cls.__name__, # str - 'url': cls.url, # str - 'success': success, # int - 'error': error, # str? - 'duration': time.time() - t0, # float - 'description': cls.description, # str - 'version': cls.version, # str - } @classmethod def print_run(cls, name: str | None = None, From 55babec87f4141a554bebbe3c5f41f501dd294dd Mon Sep 17 00:00:00 2001 From: Jeroen van der Heijden Date: Tue, 19 May 2026 11:04:04 +0200 Subject: [PATCH 2/3] Include retries metric --- infrasonar_selenium/base.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/infrasonar_selenium/base.py b/infrasonar_selenium/base.py index cdba2bb..38813d9 100644 --- a/infrasonar_selenium/base.py +++ b/infrasonar_selenium/base.py @@ -5,6 +5,9 @@ from selenium.common.exceptions import WebDriverException +MAX_RETRIES = 2 + + class TestBase(abc.ABC): url: str description: str @@ -35,7 +38,7 @@ def run(cls, name: str | None = None, command_executor="http://localhost:4444") t0 = time.time() - retries = 2 + retries = MAX_RETRIES try: while True: @@ -74,6 +77,7 @@ def run(cls, name: str | None = None, 'duration': time.time() - t0, # float 'description': cls.description, # str 'version': cls.version, # str + 'retries': MAX_RETRIES-retries, # int } finally: driver.quit() From 16b82d0c6c7c36b4baff62e0977af211d818deb8 Mon Sep 17 00:00:00 2001 From: Jeroen van der Heijden Date: Tue, 19 May 2026 11:17:16 +0200 Subject: [PATCH 3/3] connection_retries --- infrasonar_selenium/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infrasonar_selenium/base.py b/infrasonar_selenium/base.py index 38813d9..9e95328 100644 --- a/infrasonar_selenium/base.py +++ b/infrasonar_selenium/base.py @@ -77,7 +77,7 @@ def run(cls, name: str | None = None, 'duration': time.time() - t0, # float 'description': cls.description, # str 'version': cls.version, # str - 'retries': MAX_RETRIES-retries, # int + 'connection_retries': MAX_RETRIES-retries, # int } finally: driver.quit()