@@ -230,7 +230,11 @@ def click(
230
230
self.__shadow_click(selector, timeout)
231
231
return
232
232
element = page_actions.wait_for_element_visible(
233
- self.driver, selector, by, timeout=timeout
233
+ self.driver,
234
+ selector,
235
+ by,
236
+ timeout=timeout,
237
+ original_selector=original_selector,
234
238
)
235
239
self.__demo_mode_highlight_if_active(original_selector, original_by)
236
240
if scroll and not self.demo_mode and not self.slow_mode:
@@ -280,7 +284,11 @@ def click(
280
284
self.wait_for_ready_state_complete()
281
285
time.sleep(0.16)
282
286
element = page_actions.wait_for_element_visible(
283
- self.driver, selector, by, timeout=timeout
287
+ self.driver,
288
+ selector,
289
+ by,
290
+ timeout=timeout,
291
+ original_selector=original_selector,
284
292
)
285
293
try:
286
294
self.__scroll_to_element(element, selector, by)
@@ -297,7 +305,11 @@ def click(
297
305
self.wait_for_ready_state_complete()
298
306
time.sleep(0.1)
299
307
element = page_actions.wait_for_element_visible(
300
- self.driver, selector, by, timeout=timeout
308
+ self.driver,
309
+ selector,
310
+ by,
311
+ timeout=timeout,
312
+ original_selector=original_selector,
301
313
)
302
314
href = None
303
315
new_tab = False
@@ -344,7 +356,11 @@ def click(
344
356
except Exception:
345
357
# One more attempt to click on the element
346
358
element = page_actions.wait_for_element_visible(
347
- self.driver, selector, by, timeout=timeout
359
+ self.driver,
360
+ selector,
361
+ by,
362
+ timeout=timeout,
363
+ original_selector=original_selector,
348
364
)
349
365
element.click()
350
366
latest_window_count = len(self.driver.window_handles)
@@ -410,15 +426,23 @@ def double_click(self, selector, by=By.CSS_SELECTOR, timeout=None):
410
426
original_by = by
411
427
selector, by = self.__recalculate_selector(selector, by)
412
428
element = page_actions.wait_for_element_visible(
413
- self.driver, selector, by, timeout=timeout
429
+ self.driver,
430
+ selector,
431
+ by,
432
+ timeout=timeout,
433
+ original_selector=original_selector,
414
434
)
415
435
self.__demo_mode_highlight_if_active(original_selector, original_by)
416
436
if not self.demo_mode and not self.slow_mode:
417
437
self.__scroll_to_element(element, selector, by)
418
438
self.wait_for_ready_state_complete()
419
439
# Find the element one more time in case scrolling hid it
420
440
element = page_actions.wait_for_element_visible(
421
- self.driver, selector, by, timeout=timeout
441
+ self.driver,
442
+ selector,
443
+ by,
444
+ timeout=timeout,
445
+ original_selector=original_selector,
422
446
)
423
447
pre_action_url = self.driver.current_url
424
448
try:
@@ -1906,7 +1930,7 @@ def hover_on_element(self, selector, by=By.CSS_SELECTOR):
1906
1930
selector = self.convert_to_css_selector(selector, By.XPATH)
1907
1931
by = By.CSS_SELECTOR
1908
1932
self.wait_for_element_visible(
1909
- selector , by=by , timeout=settings.SMALL_TIMEOUT
1933
+ original_selector , by=original_by , timeout=settings.SMALL_TIMEOUT
1910
1934
)
1911
1935
self.__demo_mode_highlight_if_active(original_selector, original_by)
1912
1936
self.scroll_to(selector, by=by)
@@ -1971,7 +1995,7 @@ def hover_and_click(
1971
1995
click_selector, click_by
1972
1996
)
1973
1997
dropdown_element = self.wait_for_element_visible(
1974
- hover_selector , by=hover_by , timeout=timeout
1998
+ original_selector , by=original_by , timeout=timeout
1975
1999
)
1976
2000
self.__demo_mode_highlight_if_active(original_selector, original_by)
1977
2001
self.scroll_to(hover_selector, by=hover_by)
@@ -2073,7 +2097,7 @@ def hover_and_double_click(
2073
2097
click_selector, click_by
2074
2098
)
2075
2099
dropdown_element = self.wait_for_element_visible(
2076
- hover_selector , by=hover_by , timeout=timeout
2100
+ original_selector , by=original_by , timeout=timeout
2077
2101
)
2078
2102
self.__demo_mode_highlight_if_active(original_selector, original_by)
2079
2103
self.scroll_to(hover_selector, by=hover_by)
@@ -4421,9 +4445,11 @@ def slow_scroll_to(self, selector, by=By.CSS_SELECTOR, timeout=None):
4421
4445
timeout = settings.SMALL_TIMEOUT
4422
4446
if self.timeout_multiplier and timeout == settings.SMALL_TIMEOUT:
4423
4447
timeout = self.__get_new_timeout(timeout)
4448
+ original_selector = selector
4449
+ original_by = by
4424
4450
selector, by = self.__recalculate_selector(selector, by)
4425
4451
element = self.wait_for_element_visible(
4426
- selector , by=by , timeout=timeout
4452
+ original_selector , by=original_by , timeout=timeout
4427
4453
)
4428
4454
try:
4429
4455
scroll_distance = js_utils.get_scroll_distance_to_element(
@@ -4437,7 +4463,7 @@ def slow_scroll_to(self, selector, by=By.CSS_SELECTOR, timeout=None):
4437
4463
self.wait_for_ready_state_complete()
4438
4464
time.sleep(0.12)
4439
4465
element = self.wait_for_element_visible(
4440
- selector , by=by , timeout=timeout
4466
+ original_selector , by=original_by , timeout=timeout
4441
4467
)
4442
4468
self.__slow_scroll_to_element(element)
4443
4469
@@ -6798,11 +6824,16 @@ def wait_for_element_visible(
6798
6824
timeout = settings.LARGE_TIMEOUT
6799
6825
if self.timeout_multiplier and timeout == settings.LARGE_TIMEOUT:
6800
6826
timeout = self.__get_new_timeout(timeout)
6827
+ original_selector = selector
6801
6828
selector, by = self.__recalculate_selector(selector, by)
6802
6829
if self.__is_shadow_selector(selector):
6803
6830
return self.__wait_for_shadow_element_visible(selector, timeout)
6804
6831
return page_actions.wait_for_element_visible(
6805
- self.driver, selector, by, timeout
6832
+ self.driver,
6833
+ selector,
6834
+ by,
6835
+ timeout=timeout,
6836
+ original_selector=original_selector,
6806
6837
)
6807
6838
6808
6839
def wait_for_element_not_present(
@@ -6819,9 +6850,14 @@ def wait_for_element_not_present(
6819
6850
timeout = settings.LARGE_TIMEOUT
6820
6851
if self.timeout_multiplier and timeout == settings.LARGE_TIMEOUT:
6821
6852
timeout = self.__get_new_timeout(timeout)
6853
+ original_selector = selector
6822
6854
selector, by = self.__recalculate_selector(selector, by)
6823
6855
return page_actions.wait_for_element_absent(
6824
- self.driver, selector, by, timeout
6856
+ self.driver,
6857
+ selector,
6858
+ by,
6859
+ timeout=timeout,
6860
+ original_selector=original_selector,
6825
6861
)
6826
6862
6827
6863
def assert_element_not_present(
@@ -9230,11 +9266,16 @@ def wait_for_element_present(
9230
9266
timeout = settings.LARGE_TIMEOUT
9231
9267
if self.timeout_multiplier and timeout == settings.LARGE_TIMEOUT:
9232
9268
timeout = self.__get_new_timeout(timeout)
9269
+ original_selector = selector
9233
9270
selector, by = self.__recalculate_selector(selector, by)
9234
9271
if self.__is_shadow_selector(selector):
9235
9272
return self.__wait_for_shadow_element_present(selector, timeout)
9236
9273
return page_actions.wait_for_element_present(
9237
- self.driver, selector, by, timeout
9274
+ self.driver,
9275
+ selector,
9276
+ by,
9277
+ timeout=timeout,
9278
+ original_selector=original_selector,
9238
9279
)
9239
9280
9240
9281
def wait_for_element(self, selector, by=By.CSS_SELECTOR, timeout=None):
@@ -9801,9 +9842,14 @@ def wait_for_element_absent(
9801
9842
timeout = settings.LARGE_TIMEOUT
9802
9843
if self.timeout_multiplier and timeout == settings.LARGE_TIMEOUT:
9803
9844
timeout = self.__get_new_timeout(timeout)
9845
+ original_selector = selector
9804
9846
selector, by = self.__recalculate_selector(selector, by)
9805
9847
return page_actions.wait_for_element_absent(
9806
- self.driver, selector, by, timeout
9848
+ self.driver,
9849
+ selector,
9850
+ by,
9851
+ timeout=timeout,
9852
+ original_selector=original_selector,
9807
9853
)
9808
9854
9809
9855
def assert_element_absent(
@@ -9837,9 +9883,14 @@ def wait_for_element_not_visible(
9837
9883
timeout = settings.LARGE_TIMEOUT
9838
9884
if self.timeout_multiplier and timeout == settings.LARGE_TIMEOUT:
9839
9885
timeout = self.__get_new_timeout(timeout)
9886
+ original_selector = selector
9840
9887
selector, by = self.__recalculate_selector(selector, by)
9841
9888
return page_actions.wait_for_element_not_visible(
9842
- self.driver, selector, by, timeout
9889
+ self.driver,
9890
+ selector,
9891
+ by,
9892
+ timeout=timeout,
9893
+ original_selector=original_selector,
9843
9894
)
9844
9895
9845
9896
def assert_element_not_visible(
0 commit comments