@@ -230,7 +230,11 @@ def click(
230230 self.__shadow_click(selector, timeout)
231231 return
232232 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,
234238 )
235239 self.__demo_mode_highlight_if_active(original_selector, original_by)
236240 if scroll and not self.demo_mode and not self.slow_mode:
@@ -280,7 +284,11 @@ def click(
280284 self.wait_for_ready_state_complete()
281285 time.sleep(0.16)
282286 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,
284292 )
285293 try:
286294 self.__scroll_to_element(element, selector, by)
@@ -297,7 +305,11 @@ def click(
297305 self.wait_for_ready_state_complete()
298306 time.sleep(0.1)
299307 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,
301313 )
302314 href = None
303315 new_tab = False
@@ -344,7 +356,11 @@ def click(
344356 except Exception:
345357 # One more attempt to click on the element
346358 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,
348364 )
349365 element.click()
350366 latest_window_count = len(self.driver.window_handles)
@@ -410,15 +426,23 @@ def double_click(self, selector, by=By.CSS_SELECTOR, timeout=None):
410426 original_by = by
411427 selector, by = self.__recalculate_selector(selector, by)
412428 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,
414434 )
415435 self.__demo_mode_highlight_if_active(original_selector, original_by)
416436 if not self.demo_mode and not self.slow_mode:
417437 self.__scroll_to_element(element, selector, by)
418438 self.wait_for_ready_state_complete()
419439 # Find the element one more time in case scrolling hid it
420440 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,
422446 )
423447 pre_action_url = self.driver.current_url
424448 try:
@@ -1906,7 +1930,7 @@ def hover_on_element(self, selector, by=By.CSS_SELECTOR):
19061930 selector = self.convert_to_css_selector(selector, By.XPATH)
19071931 by = By.CSS_SELECTOR
19081932 self.wait_for_element_visible(
1909- selector , by=by , timeout=settings.SMALL_TIMEOUT
1933+ original_selector , by=original_by , timeout=settings.SMALL_TIMEOUT
19101934 )
19111935 self.__demo_mode_highlight_if_active(original_selector, original_by)
19121936 self.scroll_to(selector, by=by)
@@ -1971,7 +1995,7 @@ def hover_and_click(
19711995 click_selector, click_by
19721996 )
19731997 dropdown_element = self.wait_for_element_visible(
1974- hover_selector , by=hover_by , timeout=timeout
1998+ original_selector , by=original_by , timeout=timeout
19751999 )
19762000 self.__demo_mode_highlight_if_active(original_selector, original_by)
19772001 self.scroll_to(hover_selector, by=hover_by)
@@ -2073,7 +2097,7 @@ def hover_and_double_click(
20732097 click_selector, click_by
20742098 )
20752099 dropdown_element = self.wait_for_element_visible(
2076- hover_selector , by=hover_by , timeout=timeout
2100+ original_selector , by=original_by , timeout=timeout
20772101 )
20782102 self.__demo_mode_highlight_if_active(original_selector, original_by)
20792103 self.scroll_to(hover_selector, by=hover_by)
@@ -4421,9 +4445,11 @@ def slow_scroll_to(self, selector, by=By.CSS_SELECTOR, timeout=None):
44214445 timeout = settings.SMALL_TIMEOUT
44224446 if self.timeout_multiplier and timeout == settings.SMALL_TIMEOUT:
44234447 timeout = self.__get_new_timeout(timeout)
4448+ original_selector = selector
4449+ original_by = by
44244450 selector, by = self.__recalculate_selector(selector, by)
44254451 element = self.wait_for_element_visible(
4426- selector , by=by , timeout=timeout
4452+ original_selector , by=original_by , timeout=timeout
44274453 )
44284454 try:
44294455 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):
44374463 self.wait_for_ready_state_complete()
44384464 time.sleep(0.12)
44394465 element = self.wait_for_element_visible(
4440- selector , by=by , timeout=timeout
4466+ original_selector , by=original_by , timeout=timeout
44414467 )
44424468 self.__slow_scroll_to_element(element)
44434469
@@ -6798,11 +6824,16 @@ def wait_for_element_visible(
67986824 timeout = settings.LARGE_TIMEOUT
67996825 if self.timeout_multiplier and timeout == settings.LARGE_TIMEOUT:
68006826 timeout = self.__get_new_timeout(timeout)
6827+ original_selector = selector
68016828 selector, by = self.__recalculate_selector(selector, by)
68026829 if self.__is_shadow_selector(selector):
68036830 return self.__wait_for_shadow_element_visible(selector, timeout)
68046831 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,
68066837 )
68076838
68086839 def wait_for_element_not_present(
@@ -6819,9 +6850,14 @@ def wait_for_element_not_present(
68196850 timeout = settings.LARGE_TIMEOUT
68206851 if self.timeout_multiplier and timeout == settings.LARGE_TIMEOUT:
68216852 timeout = self.__get_new_timeout(timeout)
6853+ original_selector = selector
68226854 selector, by = self.__recalculate_selector(selector, by)
68236855 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,
68256861 )
68266862
68276863 def assert_element_not_present(
@@ -9230,11 +9266,16 @@ def wait_for_element_present(
92309266 timeout = settings.LARGE_TIMEOUT
92319267 if self.timeout_multiplier and timeout == settings.LARGE_TIMEOUT:
92329268 timeout = self.__get_new_timeout(timeout)
9269+ original_selector = selector
92339270 selector, by = self.__recalculate_selector(selector, by)
92349271 if self.__is_shadow_selector(selector):
92359272 return self.__wait_for_shadow_element_present(selector, timeout)
92369273 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,
92389279 )
92399280
92409281 def wait_for_element(self, selector, by=By.CSS_SELECTOR, timeout=None):
@@ -9801,9 +9842,14 @@ def wait_for_element_absent(
98019842 timeout = settings.LARGE_TIMEOUT
98029843 if self.timeout_multiplier and timeout == settings.LARGE_TIMEOUT:
98039844 timeout = self.__get_new_timeout(timeout)
9845+ original_selector = selector
98049846 selector, by = self.__recalculate_selector(selector, by)
98059847 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,
98079853 )
98089854
98099855 def assert_element_absent(
@@ -9837,9 +9883,14 @@ def wait_for_element_not_visible(
98379883 timeout = settings.LARGE_TIMEOUT
98389884 if self.timeout_multiplier and timeout == settings.LARGE_TIMEOUT:
98399885 timeout = self.__get_new_timeout(timeout)
9886+ original_selector = selector
98409887 selector, by = self.__recalculate_selector(selector, by)
98419888 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,
98439894 )
98449895
98459896 def assert_element_not_visible(
0 commit comments