Skip to content

Commit a7e2a94

Browse files
committed
Handle browser-closing in a single method
1 parent 71a9b1d commit a7e2a94

File tree

1 file changed

+17
-29
lines changed

1 file changed

+17
-29
lines changed

seleniumbase/fixtures/base_case.py

Lines changed: 17 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1931,6 +1931,19 @@ def _add_pytest_html_extra(self):
19311931
except Exception:
19321932
pass
19331933

1934+
def _quit_all_drivers(self):
1935+
# Close all open browser windows
1936+
self._drivers_list.reverse() # Last In, First Out
1937+
for driver in self._drivers_list:
1938+
try:
1939+
driver.quit()
1940+
except AttributeError:
1941+
pass
1942+
except Exception:
1943+
pass
1944+
self.driver = None
1945+
self._drivers_list = []
1946+
19341947
def tearDown(self):
19351948
"""
19361949
Be careful if a subclass of BaseCase overrides setUp()
@@ -1990,20 +2003,8 @@ def tearDown(self):
19902003
if self.with_page_source:
19912004
log_helper.log_page_source(
19922005
test_logpath, self.driver)
1993-
try:
1994-
# Finally close the browser
1995-
if self._extra_drivers:
1996-
for extra_driver in self._extra_drivers:
1997-
try:
1998-
extra_driver.quit()
1999-
except Exception:
2000-
pass # Extra driver was already quit
2001-
self.driver.quit()
2002-
except AttributeError:
2003-
pass
2004-
except Exception:
2005-
pass
2006-
self.driver = None
2006+
# (Pytest) Finally close all open browser windows
2007+
self._quit_all_drivers()
20072008
if self.headless:
20082009
if self.headless_active:
20092010
self.display.stop()
@@ -2041,18 +2042,5 @@ def tearDown(self):
20412042
data_payload.logURL = index_file
20422043
self.testcase_manager.update_testcase_log_url(data_payload)
20432044
else:
2044-
# Using Nosetests
2045-
try:
2046-
# Finally close the browser
2047-
if self._extra_drivers:
2048-
for extra_driver in self._extra_drivers:
2049-
try:
2050-
extra_driver.quit()
2051-
except Exception:
2052-
pass # Extra driver was already quit
2053-
self.driver.quit()
2054-
except AttributeError:
2055-
pass
2056-
except Exception:
2057-
pass
2058-
self.driver = None
2045+
# (Nosetests) Finally close all open browser windows
2046+
self._quit_all_drivers()

0 commit comments

Comments
 (0)