Skip to content

Commit 0695e51

Browse files
committed
Make improvements to "driver.uc_click(selector)" (UC Mode only)
1 parent 25f712c commit 0695e51

File tree

2 files changed

+34
-10
lines changed

2 files changed

+34
-10
lines changed

seleniumbase/core/browser_launcher.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -431,11 +431,24 @@ def uc_open_with_reconnect(driver, url, reconnect_time=None):
431431

432432

433433
def uc_click(
434-
driver, selector, by="css selector", timeout=settings.SMALL_TIMEOUT
434+
driver,
435+
selector,
436+
by="css selector",
437+
timeout=settings.SMALL_TIMEOUT,
438+
reconnect_time=None,
435439
):
440+
try:
441+
rct = float(by) # Add shortcut: driver.uc_click(selector, RCT)
442+
if not reconnect_time:
443+
reconnect_time = rct
444+
by = "css selector"
445+
except Exception:
446+
pass
436447
element = driver.wait_for_element(selector, by=by, timeout=timeout)
437448
try:
438-
element.uc_click()
449+
element.uc_click(
450+
driver, selector, by=by, reconnect_time=reconnect_time
451+
)
439452
except ElementClickInterceptedException:
440453
driver.js_click(selector, by=by, timeout=timeout)
441454

seleniumbase/undetected/webelement.py

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,25 @@
11
import selenium.webdriver.remote.webelement
2-
from seleniumbase.config import settings
32

43

54
class WebElement(selenium.webdriver.remote.webelement.WebElement):
6-
def uc_click(self):
7-
super().click()
8-
if (
9-
hasattr(settings, "PAGE_LOAD_STRATEGY")
10-
and settings.PAGE_LOAD_STRATEGY == "none"
11-
):
12-
pass
5+
def uc_click(
6+
self,
7+
driver=None,
8+
selector=None,
9+
by=None,
10+
reconnect_time=None,
11+
):
12+
if driver and selector and by:
13+
driver.js_click(selector, by=by, timeout=1)
1314
else:
15+
super().click()
16+
if not reconnect_time:
1417
self._parent.reconnect(0.1)
18+
else:
19+
self._parent.reconnect(reconnect_time)
20+
21+
def uc_reconnect(self, reconnect_time=None):
22+
if not reconnect_time:
23+
self._parent.reconnect(0.1)
24+
else:
25+
self._parent.reconnect(reconnect_time)

0 commit comments

Comments
 (0)