@@ -86,6 +86,9 @@ def test_anything(self):
86
86
python3 = False
87
87
reload(sys) # noqa: F821
88
88
sys.setdefaultencoding("utf8")
89
+ python3_11_or_newer = False
90
+ if sys.version_info >= (3, 11):
91
+ python3_11_or_newer = True
89
92
selenium4_or_newer = False
90
93
if sys.version_info >= (3, 7):
91
94
selenium4_or_newer = True
@@ -116,7 +119,7 @@ def __initialize_variables(self):
116
119
self.__last_saved_url = None # Used by Recorder-Mode
117
120
self.__called_setup = False
118
121
self.__called_teardown = False
119
- self.__start_time_ms = None
122
+ self.__start_time_ms = int(time.time() * 1000.0)
120
123
self.__requests_timeout = None
121
124
self.__screenshot_count = 0
122
125
self.__level_0_visual_f = False
@@ -173,9 +176,9 @@ def open(self, url):
173
176
self.__check_scope()
174
177
self.__check_browser()
175
178
if self.__needs_minimum_wait():
176
- time.sleep(0.025 )
179
+ time.sleep(0.026 )
177
180
if self.undetectable:
178
- time.sleep(0.025 )
181
+ time.sleep(0.024 )
179
182
pre_action_url = None
180
183
try:
181
184
pre_action_url = self.driver.current_url
@@ -490,26 +493,26 @@ def click(
490
493
except Exception:
491
494
pass
492
495
if self.__needs_minimum_wait():
493
- time.sleep(0.025 )
496
+ time.sleep(0.026 )
494
497
if self.undetectable:
495
- time.sleep(0.025 )
498
+ time.sleep(0.024 )
496
499
try:
497
500
if self.driver.current_url != pre_action_url:
498
501
self.__ad_block_as_needed()
499
502
self.__disable_beforeunload_as_needed()
500
503
if self.__needs_minimum_wait():
501
- time.sleep(0.025 )
504
+ time.sleep(0.026 )
502
505
if self.undetectable:
503
- time.sleep(0.025 )
506
+ time.sleep(0.024 )
504
507
except Exception:
505
508
try:
506
509
self.wait_for_ready_state_complete()
507
510
except Exception:
508
511
pass
509
512
if self.__needs_minimum_wait():
510
- time.sleep(0.025 )
513
+ time.sleep(0.026 )
511
514
if self.undetectable:
512
- time.sleep(0.025 )
515
+ time.sleep(0.024 )
513
516
if self.demo_mode:
514
517
if self.driver.current_url != pre_action_url:
515
518
self.__demo_mode_pause_if_active()
@@ -2154,7 +2157,7 @@ def switch_to_frame_of_element(self, selector, by="css selector"):
2154
2157
May not work if multiple iframes are nested within each other."""
2155
2158
self.wait_for_ready_state_complete()
2156
2159
if self.__needs_minimum_wait():
2157
- time.sleep(0.02 )
2160
+ time.sleep(0.04 )
2158
2161
selector, by = self.__recalculate_selector(selector, by)
2159
2162
if self.is_element_present(selector, by=by):
2160
2163
return None
@@ -2920,14 +2923,14 @@ def switch_to_frame(self, frame, timeout=None):
2920
2923
if self.timeout_multiplier and timeout == settings.LARGE_TIMEOUT:
2921
2924
timeout = self.__get_new_timeout(timeout)
2922
2925
if self.__needs_minimum_wait():
2923
- time.sleep(0.035 )
2926
+ time.sleep(0.04 )
2924
2927
if type(frame) is str and self.is_element_visible(frame):
2925
2928
try:
2926
2929
self.scroll_to(frame, timeout=1)
2927
2930
if self.__needs_minimum_wait():
2928
- time.sleep(0.01 )
2931
+ time.sleep(0.02 )
2929
2932
except Exception:
2930
- time.sleep(0.01 )
2933
+ time.sleep(0.02 )
2931
2934
else:
2932
2935
if self.__needs_minimum_wait():
2933
2936
time.sleep(0.04)
@@ -5712,9 +5715,9 @@ def get_unique_links(self):
5712
5715
"""
5713
5716
self.wait_for_ready_state_complete()
5714
5717
if self.__needs_minimum_wait():
5715
- time.sleep(0.05 )
5718
+ time.sleep(0.08 )
5716
5719
if self.undetectable:
5717
- time.sleep(0.05 )
5720
+ time.sleep(0.02 )
5718
5721
try:
5719
5722
self.wait_for_element_present("body", timeout=1.5)
5720
5723
self.wait_for_element_visible("body", timeout=1.5)
@@ -6071,6 +6074,8 @@ def choose_file(
6071
6074
element = self.wait_for_element_present(
6072
6075
selector, by=by, timeout=timeout
6073
6076
)
6077
+ if self.__needs_minimum_wait():
6078
+ time.sleep(0.08) # Force a minimum wait, even if skipping waits.
6074
6079
if self.is_element_visible(selector, by=by):
6075
6080
self.__demo_mode_highlight_if_active(selector, by)
6076
6081
if not self.demo_mode and not self.slow_mode:
@@ -8866,7 +8871,7 @@ def __assert_eq(self, *args, **kwargs):
8866
8871
raise VisualException(minified_exception)
8867
8872
8868
8873
def _process_visual_baseline_logs(self):
8869
- if sys.version_info < (3, 11) :
8874
+ if not python3_11_or_newer :
8870
8875
return
8871
8876
self.__process_visual_baseline_logs()
8872
8877
@@ -8991,14 +8996,14 @@ def check_window(
8991
8996
self.check_window(name="wikipedia_page", level=3)
8992
8997
"""
8993
8998
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.
8996
8999
try:
8997
9000
self.wait_for_element_visible(
8998
9001
"body", timeout=settings.MINI_TIMEOUT
8999
9002
)
9000
9003
except Exception:
9001
9004
pass
9005
+ if self.__needs_minimum_wait():
9006
+ time.sleep(0.08)
9002
9007
if level == "0":
9003
9008
level = 0
9004
9009
if level == "1":
@@ -11780,7 +11785,7 @@ def __click_with_offset(
11780
11785
11781
11786
self.wait_for_ready_state_complete()
11782
11787
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.
11784
11789
if not timeout:
11785
11790
timeout = settings.SMALL_TIMEOUT
11786
11791
if self.timeout_multiplier and timeout == settings.SMALL_TIMEOUT:
@@ -13534,7 +13539,7 @@ def __insert_test_result(self, state, err):
13534
13539
self.testcase_manager.update_testcase_data(data_payload)
13535
13540
13536
13541
def _add_pytest_html_extra(self):
13537
- if sys.version_info < (3, 11) :
13542
+ if not python3_11_or_newer :
13538
13543
return
13539
13544
self.__add_pytest_html_extra()
13540
13545
@@ -14179,7 +14184,7 @@ def save_teardown_screenshot(self):
14179
14184
if (
14180
14185
self.__has_exception()
14181
14186
or self.save_screenshot_after_test
14182
- or sys.version_info >= (3, 11)
14187
+ or python3_11_or_newer
14183
14188
):
14184
14189
self.__set_last_page_screenshot()
14185
14190
self.__set_last_page_url()
@@ -14189,7 +14194,7 @@ def save_teardown_screenshot(self):
14189
14194
self.__add_pytest_html_extra()
14190
14195
14191
14196
def _log_fail_data(self):
14192
- if sys.version_info < (3, 11) :
14197
+ if not python3_11_or_newer :
14193
14198
return
14194
14199
test_id = self.__get_test_id()
14195
14200
test_logpath = os.path.join(self.log_path, test_id)
@@ -14348,7 +14353,7 @@ def tearDown(self):
14348
14353
)
14349
14354
self.__add_pytest_html_extra()
14350
14355
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:
14352
14357
# Handle a bug on Python 3.11 where exceptions aren't seen
14353
14358
self.__set_last_page_screenshot()
14354
14359
self.__set_last_page_url()
0 commit comments