Skip to content

Commit 2cfa7cc

Browse files
committed
Fix issue with clicking in "--uc" mode
1 parent ea421b9 commit 2cfa7cc

File tree

1 file changed

+24
-46
lines changed

1 file changed

+24
-46
lines changed

seleniumbase/fixtures/base_case.py

Lines changed: 24 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -395,10 +395,7 @@ def click(
395395
except Exception:
396396
pass
397397
# Normal click
398-
if not self.undetectable or self.__uc_frame_layer > 0:
399-
element.click()
400-
else:
401-
element.uc_click()
398+
self.__element_click(element)
402399
except StaleElementReferenceException:
403400
self.wait_for_ready_state_complete()
404401
time.sleep(0.16)
@@ -416,10 +413,7 @@ def click(
416413
if self.browser == "safari" and by == By.LINK_TEXT:
417414
self.__jquery_click(selector, by=by)
418415
else:
419-
if not self.undetectable or self.__uc_frame_layer > 0:
420-
element.click()
421-
else:
422-
element.uc_click()
416+
self.__element_click(element)
423417
except ENI_Exception:
424418
self.wait_for_ready_state_complete()
425419
time.sleep(0.1)
@@ -464,10 +458,7 @@ def click(
464458
else:
465459
self.__js_click(selector, by=by)
466460
else:
467-
if not self.undetectable or self.__uc_frame_layer > 0:
468-
element.click()
469-
else:
470-
element.uc_click()
461+
self.__element_click(element)
471462
except MoveTargetOutOfBoundsException:
472463
self.wait_for_ready_state_complete()
473464
try:
@@ -484,10 +475,7 @@ def click(
484475
timeout=timeout,
485476
original_selector=original_selector,
486477
)
487-
if not self.undetectable or self.__uc_frame_layer > 0:
488-
element.click()
489-
else:
490-
element.uc_click()
478+
self.__element_click(element)
491479
except WebDriverException as e:
492480
if (
493481
"cannot determine loading status" in e.msg
@@ -510,10 +498,7 @@ def click(
510498
timeout=timeout,
511499
original_selector=original_selector,
512500
)
513-
if not self.undetectable or self.__uc_frame_layer > 0:
514-
element.click()
515-
else:
516-
element.uc_click()
501+
self.__element_click(element)
517502
latest_window_count = len(self.driver.window_handles)
518503
if (
519504
latest_window_count > pre_window_count
@@ -1411,10 +1396,7 @@ def click_link_text(self, link_text, timeout=None):
14111396
element = self.wait_for_link_text_visible(link_text, timeout=0.2)
14121397
self.__demo_mode_highlight_if_active(link_text, by="link text")
14131398
try:
1414-
if not self.undetectable or self.__uc_frame_layer > 0:
1415-
element.click()
1416-
else:
1417-
element.uc_click()
1399+
self.__element_click(element)
14181400
except (
14191401
StaleElementReferenceException,
14201402
ENI_Exception,
@@ -1425,10 +1407,7 @@ def click_link_text(self, link_text, timeout=None):
14251407
element = self.wait_for_link_text_visible(
14261408
link_text, timeout=timeout
14271409
)
1428-
if not self.undetectable or self.__uc_frame_layer > 0:
1429-
element.click()
1430-
else:
1431-
element.uc_click()
1410+
self.__element_click(element)
14321411
except Exception:
14331412
found_css = False
14341413
text_id = self.get_link_attribute(link_text, "id", False)
@@ -1465,10 +1444,7 @@ def click_link_text(self, link_text, timeout=None):
14651444
element = self.wait_for_link_text_visible(
14661445
link_text, timeout=settings.MINI_TIMEOUT
14671446
)
1468-
if not self.undetectable or self.__uc_frame_layer > 0:
1469-
element.click()
1470-
else:
1471-
element.uc_click()
1447+
self.__element_click(element)
14721448
latest_window_count = len(self.driver.window_handles)
14731449
if (
14741450
latest_window_count > pre_window_count
@@ -1558,10 +1534,7 @@ def click_partial_link_text(self, partial_link_text, timeout=None):
15581534
partial_link_text, by="link text"
15591535
)
15601536
try:
1561-
if not self.undetectable or self.__uc_frame_layer > 0:
1562-
element.click()
1563-
else:
1564-
element.uc_click()
1537+
self.__element_click(element)
15651538
except (
15661539
StaleElementReferenceException,
15671540
ENI_Exception,
@@ -1572,10 +1545,7 @@ def click_partial_link_text(self, partial_link_text, timeout=None):
15721545
element = self.wait_for_partial_link_text(
15731546
partial_link_text, timeout=timeout
15741547
)
1575-
if not self.undetectable or self.__uc_frame_layer > 0:
1576-
element.click()
1577-
else:
1578-
element.uc_click()
1548+
self.__element_click(element)
15791549
except Exception:
15801550
found_css = False
15811551
text_id = self.get_partial_link_text_attribute(
@@ -1620,10 +1590,7 @@ def click_partial_link_text(self, partial_link_text, timeout=None):
16201590
element = self.wait_for_partial_link_text(
16211591
partial_link_text, timeout=settings.MINI_TIMEOUT
16221592
)
1623-
if not self.undetectable or self.__uc_frame_layer > 0:
1624-
element.click()
1625-
else:
1626-
element.uc_click()
1593+
self.__element_click(element)
16271594
latest_window_count = len(self.driver.window_handles)
16281595
if (
16291596
latest_window_count > pre_window_count
@@ -2099,7 +2066,7 @@ def click_nth_visible_element(
20992066
pre_window_count = len(self.driver.window_handles)
21002067
try:
21012068
self.__scroll_to_element(element)
2102-
element.click()
2069+
self.__element_click(element)
21032070
except (StaleElementReferenceException, ENI_Exception, ECI_Exception):
21042071
time.sleep(0.12)
21052072
self.wait_for_ready_state_complete()
@@ -2114,7 +2081,7 @@ def click_nth_visible_element(
21142081
if number < 0:
21152082
number = 0
21162083
element = elements[number]
2117-
element.click()
2084+
self.__element_click(element)
21182085
latest_window_count = len(self.driver.window_handles)
21192086
if (
21202087
latest_window_count > pre_window_count
@@ -2675,6 +2642,17 @@ def drag_and_drop_with_offset(
26752642
self.__slow_mode_pause_if_active()
26762643
return element
26772644

2645+
def __element_click(self, element):
2646+
self.__check_scope()
2647+
if (
2648+
not self.undetectable
2649+
or self.__uc_frame_layer > 0
2650+
or not hasattr(element, "uc_click")
2651+
):
2652+
element.click()
2653+
else:
2654+
element.uc_click()
2655+
26782656
def __select_option(
26792657
self,
26802658
dropdown_selector,

0 commit comments

Comments
 (0)