@@ -395,10 +395,7 @@ def click(
395
395
except Exception:
396
396
pass
397
397
# 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)
402
399
except StaleElementReferenceException:
403
400
self.wait_for_ready_state_complete()
404
401
time.sleep(0.16)
@@ -416,10 +413,7 @@ def click(
416
413
if self.browser == "safari" and by == By.LINK_TEXT:
417
414
self.__jquery_click(selector, by=by)
418
415
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)
423
417
except ENI_Exception:
424
418
self.wait_for_ready_state_complete()
425
419
time.sleep(0.1)
@@ -464,10 +458,7 @@ def click(
464
458
else:
465
459
self.__js_click(selector, by=by)
466
460
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)
471
462
except MoveTargetOutOfBoundsException:
472
463
self.wait_for_ready_state_complete()
473
464
try:
@@ -484,10 +475,7 @@ def click(
484
475
timeout=timeout,
485
476
original_selector=original_selector,
486
477
)
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)
491
479
except WebDriverException as e:
492
480
if (
493
481
"cannot determine loading status" in e.msg
@@ -510,10 +498,7 @@ def click(
510
498
timeout=timeout,
511
499
original_selector=original_selector,
512
500
)
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)
517
502
latest_window_count = len(self.driver.window_handles)
518
503
if (
519
504
latest_window_count > pre_window_count
@@ -1411,10 +1396,7 @@ def click_link_text(self, link_text, timeout=None):
1411
1396
element = self.wait_for_link_text_visible(link_text, timeout=0.2)
1412
1397
self.__demo_mode_highlight_if_active(link_text, by="link text")
1413
1398
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)
1418
1400
except (
1419
1401
StaleElementReferenceException,
1420
1402
ENI_Exception,
@@ -1425,10 +1407,7 @@ def click_link_text(self, link_text, timeout=None):
1425
1407
element = self.wait_for_link_text_visible(
1426
1408
link_text, timeout=timeout
1427
1409
)
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)
1432
1411
except Exception:
1433
1412
found_css = False
1434
1413
text_id = self.get_link_attribute(link_text, "id", False)
@@ -1465,10 +1444,7 @@ def click_link_text(self, link_text, timeout=None):
1465
1444
element = self.wait_for_link_text_visible(
1466
1445
link_text, timeout=settings.MINI_TIMEOUT
1467
1446
)
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)
1472
1448
latest_window_count = len(self.driver.window_handles)
1473
1449
if (
1474
1450
latest_window_count > pre_window_count
@@ -1558,10 +1534,7 @@ def click_partial_link_text(self, partial_link_text, timeout=None):
1558
1534
partial_link_text, by="link text"
1559
1535
)
1560
1536
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)
1565
1538
except (
1566
1539
StaleElementReferenceException,
1567
1540
ENI_Exception,
@@ -1572,10 +1545,7 @@ def click_partial_link_text(self, partial_link_text, timeout=None):
1572
1545
element = self.wait_for_partial_link_text(
1573
1546
partial_link_text, timeout=timeout
1574
1547
)
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)
1579
1549
except Exception:
1580
1550
found_css = False
1581
1551
text_id = self.get_partial_link_text_attribute(
@@ -1620,10 +1590,7 @@ def click_partial_link_text(self, partial_link_text, timeout=None):
1620
1590
element = self.wait_for_partial_link_text(
1621
1591
partial_link_text, timeout=settings.MINI_TIMEOUT
1622
1592
)
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)
1627
1594
latest_window_count = len(self.driver.window_handles)
1628
1595
if (
1629
1596
latest_window_count > pre_window_count
@@ -2099,7 +2066,7 @@ def click_nth_visible_element(
2099
2066
pre_window_count = len(self.driver.window_handles)
2100
2067
try:
2101
2068
self.__scroll_to_element(element)
2102
- element.click( )
2069
+ self.__element_click(element )
2103
2070
except (StaleElementReferenceException, ENI_Exception, ECI_Exception):
2104
2071
time.sleep(0.12)
2105
2072
self.wait_for_ready_state_complete()
@@ -2114,7 +2081,7 @@ def click_nth_visible_element(
2114
2081
if number < 0:
2115
2082
number = 0
2116
2083
element = elements[number]
2117
- element.click( )
2084
+ self.__element_click(element )
2118
2085
latest_window_count = len(self.driver.window_handles)
2119
2086
if (
2120
2087
latest_window_count > pre_window_count
@@ -2675,6 +2642,17 @@ def drag_and_drop_with_offset(
2675
2642
self.__slow_mode_pause_if_active()
2676
2643
return element
2677
2644
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
+
2678
2656
def __select_option(
2679
2657
self,
2680
2658
dropdown_selector,
0 commit comments