Skip to content

Commit 63e571b

Browse files
committed
Better error-handling output
1 parent 43b7e0a commit 63e571b

File tree

2 files changed

+128
-21
lines changed

2 files changed

+128
-21
lines changed

seleniumbase/fixtures/base_case.py

Lines changed: 67 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)