Skip to content

Commit 9445bb1

Browse files
committed
Add UC Mode customization options
1 parent 9a9dcbd commit 9445bb1

File tree

3 files changed

+14
-9
lines changed

3 files changed

+14
-9
lines changed

seleniumbase/core/browser_launcher.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -413,12 +413,14 @@ def uc_open_with_tab(driver, url):
413413
return None
414414

415415

416-
def uc_open_with_reconnect(driver, url):
417-
"""Open a url, then reconnect with UC before switching to the window."""
416+
def uc_open_with_reconnect(driver, url, reconnect_time=None):
417+
"""Open a url, disconnect chromedriver, wait, and reconnect."""
418+
if not reconnect_time:
419+
reconnect_time = constants.UC.RECONNECT_TIME
418420
if (url.startswith("http:") or url.startswith("https:")):
419421
driver.execute_script('window.open("%s","_blank");' % url)
420-
driver.reconnect(2.65)
421422
driver.close()
423+
driver.reconnect(reconnect_time)
422424
driver.switch_to.window(driver.window_handles[-1])
423425
else:
424426
driver.default_get(url) # The original one
@@ -3479,7 +3481,9 @@ def get_local_driver(
34793481
lambda url: uc_open_with_tab(driver, url)
34803482
)
34813483
driver.uc_open_with_reconnect = (
3482-
lambda url: uc_open_with_reconnect(driver, url)
3484+
lambda *args, **kwargs: uc_open_with_reconnect(
3485+
driver, *args, **kwargs
3486+
)
34833487
)
34843488
if mobile_emulator:
34853489
uc_metrics = {}

seleniumbase/fixtures/constants.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,10 @@ class Mobile:
359359
)
360360

361361

362+
class UC:
363+
RECONNECT_TIME = 2.15 # Seconds
364+
365+
362366
class ValidBrowsers:
363367
valid_browsers = [
364368
"chrome",

seleniumbase/undetected/__init__.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ def __init__(
217217
options.binary_location = (
218218
browser_executable_path or find_chrome_executable()
219219
)
220-
self._delay = 2.05
220+
self._delay = constants.UC.RECONNECT_TIME
221221
self.user_data_dir = user_data_dir
222222
self.keep_user_data_dir = keep_user_data_dir
223223
if suppress_welcome:
@@ -491,10 +491,7 @@ def __enter__(self):
491491
return self
492492

493493
def __exit__(self, exc_type, exc_val, exc_tb):
494-
self.service.stop()
495-
time.sleep(self._delay)
496-
self.service.start()
497-
self.start_session()
494+
self.reconnect(timeout=self._delay)
498495

499496
def __hash__(self):
500497
return hash(self.options.debugger_address)

0 commit comments

Comments
 (0)