From 8840d991503505b5f8325578e5a74b07293a6def Mon Sep 17 00:00:00 2001
From: Brandon Rodriguez <brodriguez8774@gmail.com>
Date: Sun, 5 Nov 2023 01:09:49 -0400
Subject: [PATCH] Improve handling of selenium and firefox

---
 .../mixins/live_server_mixin.py                       | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/django_expanded_test_cases/mixins/live_server_mixin.py b/django_expanded_test_cases/mixins/live_server_mixin.py
index 0864bc1..c503ba3 100644
--- a/django_expanded_test_cases/mixins/live_server_mixin.py
+++ b/django_expanded_test_cases/mixins/live_server_mixin.py
@@ -68,15 +68,18 @@ class LiveServerMixin(ResponseTestCaseMixin):
                 # Add window position data to driver options.
                 self._options.add_argument('window-position={0},{1}'.format(window_x, window_y))
 
+            # Avoid possible error when many drivers are opened.
+            # See https://stackoverflow.com/a/56638103
+            global SELENIUM_DEBUG_PORT
+            SELENIUM_DEBUG_PORT += 1
+
             # Create instance, based on selected driver type.
             if self._browser == 'chrome':
-                # # Avoid possible error when many drivers are opened.
-                # # See https://stackoverflow.com/a/56638103
-                global SELENIUM_DEBUG_PORT
-                SELENIUM_DEBUG_PORT += 1
+
                 self._options.add_argument('--remote-debugging-port={0}'.format(SELENIUM_DEBUG_PORT))
                 driver = webdriver.Chrome(service=self._service, options=self._options)
             elif self._browser == 'firefox':
+                self._service = webdriver.firefox.service.Service(port=SELENIUM_DEBUG_PORT)
                 driver = webdriver.Firefox(service=self._service, options=self._options)
             else:
                 raise ValueError('Unknown browser "{0}".'.format(self._browser))
-- 
GitLab