Skip to content

Commit 2f1da80

Browse files
committed
Refactoring
1 parent a54db08 commit 2f1da80

File tree

4 files changed

+42
-26
lines changed

4 files changed

+42
-26
lines changed

seleniumbase/core/log_helper.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88
from seleniumbase.config import settings
99
from seleniumbase.fixtures import constants
1010

11+
python3_11_or_newer = False
12+
if sys.version_info >= (3, 11):
13+
python3_11_or_newer = True
14+
1115

1216
def log_screenshot(test_logpath, driver, screenshot=None, get=False):
1317
screenshot_name = settings.SCREENSHOT_NAME
@@ -75,7 +79,7 @@ def get_master_time():
7579

7680

7781
def get_browser_version(driver):
78-
if sys.version_info >= (3, 11) and hasattr(sb_config, "_browser_version"):
82+
if python3_11_or_newer and hasattr(sb_config, "_browser_version"):
7983
return sb_config._browser_version
8084
driver_capabilities = driver.capabilities
8185
if "version" in driver_capabilities:

seleniumbase/fixtures/base_case.py

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,9 @@ def test_anything(self):
8686
python3 = False
8787
reload(sys) # noqa: F821
8888
sys.setdefaultencoding("utf8")
89+
python3_11_or_newer = False
90+
if sys.version_info >= (3, 11):
91+
python3_11_or_newer = True
8992
selenium4_or_newer = False
9093
if sys.version_info >= (3, 7):
9194
selenium4_or_newer = True
@@ -116,7 +119,7 @@ def __initialize_variables(self):
116119
self.__last_saved_url = None # Used by Recorder-Mode
117120
self.__called_setup = False
118121
self.__called_teardown = False
119-
self.__start_time_ms = None
122+
self.__start_time_ms = int(time.time() * 1000.0)
120123
self.__requests_timeout = None
121124
self.__screenshot_count = 0
122125
self.__level_0_visual_f = False
@@ -173,9 +176,9 @@ def open(self, url):
173176
self.__check_scope()
174177
self.__check_browser()
175178
if self.__needs_minimum_wait():
176-
time.sleep(0.025)
179+
time.sleep(0.026)
177180
if self.undetectable:
178-
time.sleep(0.025)
181+
time.sleep(0.024)
179182
pre_action_url = None
180183
try:
181184
pre_action_url = self.driver.current_url
@@ -490,26 +493,26 @@ def click(
490493
except Exception:
491494
pass
492495
if self.__needs_minimum_wait():
493-
time.sleep(0.025)
496+
time.sleep(0.026)
494497
if self.undetectable:
495-
time.sleep(0.025)
498+
time.sleep(0.024)
496499
try:
497500
if self.driver.current_url != pre_action_url:
498501
self.__ad_block_as_needed()
499502
self.__disable_beforeunload_as_needed()
500503
if self.__needs_minimum_wait():
501-
time.sleep(0.025)
504+
time.sleep(0.026)
502505
if self.undetectable:
503-
time.sleep(0.025)
506+
time.sleep(0.024)
504507
except Exception:
505508
try:
506509
self.wait_for_ready_state_complete()
507510
except Exception:
508511
pass
509512
if self.__needs_minimum_wait():
510-
time.sleep(0.025)
513+
time.sleep(0.026)
511514
if self.undetectable:
512-
time.sleep(0.025)
515+
time.sleep(0.024)
513516
if self.demo_mode:
514517
if self.driver.current_url != pre_action_url:
515518
self.__demo_mode_pause_if_active()
@@ -2154,7 +2157,7 @@ def switch_to_frame_of_element(self, selector, by="css selector"):
21542157
May not work if multiple iframes are nested within each other."""
21552158
self.wait_for_ready_state_complete()
21562159
if self.__needs_minimum_wait():
2157-
time.sleep(0.02)
2160+
time.sleep(0.04)
21582161
selector, by = self.__recalculate_selector(selector, by)
21592162
if self.is_element_present(selector, by=by):
21602163
return None
@@ -2920,14 +2923,14 @@ def switch_to_frame(self, frame, timeout=None):
29202923
if self.timeout_multiplier and timeout == settings.LARGE_TIMEOUT:
29212924
timeout = self.__get_new_timeout(timeout)
29222925
if self.__needs_minimum_wait():
2923-
time.sleep(0.035)
2926+
time.sleep(0.04)
29242927
if type(frame) is str and self.is_element_visible(frame):
29252928
try:
29262929
self.scroll_to(frame, timeout=1)
29272930
if self.__needs_minimum_wait():
2928-
time.sleep(0.01)
2931+
time.sleep(0.02)
29292932
except Exception:
2930-
time.sleep(0.01)
2933+
time.sleep(0.02)
29312934
else:
29322935
if self.__needs_minimum_wait():
29332936
time.sleep(0.04)
@@ -5712,9 +5715,9 @@ def get_unique_links(self):
57125715
"""
57135716
self.wait_for_ready_state_complete()
57145717
if self.__needs_minimum_wait():
5715-
time.sleep(0.05)
5718+
time.sleep(0.08)
57165719
if self.undetectable:
5717-
time.sleep(0.05)
5720+
time.sleep(0.02)
57185721
try:
57195722
self.wait_for_element_present("body", timeout=1.5)
57205723
self.wait_for_element_visible("body", timeout=1.5)
@@ -6071,6 +6074,8 @@ def choose_file(
60716074
element = self.wait_for_element_present(
60726075
selector, by=by, timeout=timeout
60736076
)
6077+
if self.__needs_minimum_wait():
6078+
time.sleep(0.08) # Force a minimum wait, even if skipping waits.
60746079
if self.is_element_visible(selector, by=by):
60756080
self.__demo_mode_highlight_if_active(selector, by)
60766081
if not self.demo_mode and not self.slow_mode:
@@ -8866,7 +8871,7 @@ def __assert_eq(self, *args, **kwargs):
88668871
raise VisualException(minified_exception)
88678872

88688873
def _process_visual_baseline_logs(self):
8869-
if sys.version_info < (3, 11):
8874+
if not python3_11_or_newer:
88708875
return
88718876
self.__process_visual_baseline_logs()
88728877

@@ -8991,14 +8996,14 @@ def check_window(
89918996
self.check_window(name="wikipedia_page", level=3)
89928997
"""
89938998
self.wait_for_ready_state_complete()
8994-
if self.__needs_minimum_wait():
8995-
time.sleep(0.05) # Force a minimum wait, even if skipping waits.
89968999
try:
89979000
self.wait_for_element_visible(
89989001
"body", timeout=settings.MINI_TIMEOUT
89999002
)
90009003
except Exception:
90019004
pass
9005+
if self.__needs_minimum_wait():
9006+
time.sleep(0.08)
90029007
if level == "0":
90039008
level = 0
90049009
if level == "1":
@@ -11780,7 +11785,7 @@ def __click_with_offset(
1178011785

1178111786
self.wait_for_ready_state_complete()
1178211787
if self.__needs_minimum_wait():
11783-
time.sleep(0.05) # Force a minimum wait, even if skipping waits.
11788+
time.sleep(0.08) # Force a minimum wait, even if skipping waits.
1178411789
if not timeout:
1178511790
timeout = settings.SMALL_TIMEOUT
1178611791
if self.timeout_multiplier and timeout == settings.SMALL_TIMEOUT:
@@ -13534,7 +13539,7 @@ def __insert_test_result(self, state, err):
1353413539
self.testcase_manager.update_testcase_data(data_payload)
1353513540

1353613541
def _add_pytest_html_extra(self):
13537-
if sys.version_info < (3, 11):
13542+
if not python3_11_or_newer:
1353813543
return
1353913544
self.__add_pytest_html_extra()
1354013545

@@ -14179,7 +14184,7 @@ def save_teardown_screenshot(self):
1417914184
if (
1418014185
self.__has_exception()
1418114186
or self.save_screenshot_after_test
14182-
or sys.version_info >= (3, 11)
14187+
or python3_11_or_newer
1418314188
):
1418414189
self.__set_last_page_screenshot()
1418514190
self.__set_last_page_url()
@@ -14189,7 +14194,7 @@ def save_teardown_screenshot(self):
1418914194
self.__add_pytest_html_extra()
1419014195

1419114196
def _log_fail_data(self):
14192-
if sys.version_info < (3, 11):
14197+
if not python3_11_or_newer:
1419314198
return
1419414199
test_id = self.__get_test_id()
1419514200
test_logpath = os.path.join(self.log_path, test_id)
@@ -14348,7 +14353,7 @@ def tearDown(self):
1434814353
)
1434914354
self.__add_pytest_html_extra()
1435014355
sb_config._has_logs = True
14351-
elif sys.version_info >= (3, 11) and not has_exception:
14356+
elif python3_11_or_newer and not has_exception:
1435214357
# Handle a bug on Python 3.11 where exceptions aren't seen
1435314358
self.__set_last_page_screenshot()
1435414359
self.__set_last_page_url()

seleniumbase/plugins/base_plugin.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@
1414
from seleniumbase.core import report_helper
1515
from seleniumbase.fixtures import constants
1616

17+
python3_11_or_newer = False
18+
if sys.version_info >= (3, 11):
19+
python3_11_or_newer = True
20+
1721

1822
class Base(Plugin):
1923
"""
@@ -307,7 +311,7 @@ def add_fails_or_errors(self, test, err):
307311
test, self.test_count, self.duration
308312
)
309313
)
310-
if sys.version_info >= (3, 11):
314+
if python3_11_or_newer:
311315
# Handle a bug on Python 3.11 where exceptions aren't seen
312316
sb_config._browser_version = None
313317
try:

seleniumbase/plugins/pytest_plugin.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@
1919
python3 = True
2020
if sys.version_info[0] < 3:
2121
python3 = False
22+
python3_11_or_newer = False
23+
if sys.version_info >= (3, 11):
24+
python3_11_or_newer = True
2225
sys_argv = sys.argv
2326
pytest_plugins = ["pytester"] # Adds the "testdir" fixture
2427

@@ -2121,7 +2124,7 @@ def pytest_runtest_makereport(item, call):
21212124
sb_config._extra_dash_entries.append(test_id)
21222125
elif (
21232126
sb_config._sbase_detected
2124-
and sys.version_info >= (3, 11)
2127+
and python3_11_or_newer
21252128
and (report.outcome == "failed" or "AssertionError" in str(call))
21262129
and not sb_config._has_exception
21272130
):

0 commit comments

Comments
 (0)