@@ -443,8 +443,32 @@ def uc_open_with_reconnect(driver, url, reconnect_time=None):
443443 js_utils .call_me_later (driver , script , 3 )
444444 time .sleep (0.007 )
445445 driver .close ()
446- driver .reconnect (reconnect_time )
447- driver .switch_to .window (driver .window_handles [- 1 ])
446+ if reconnect_time == "disconnect" :
447+ driver .disconnect ()
448+ time .sleep (0.007 )
449+ else :
450+ driver .reconnect (reconnect_time )
451+ driver .switch_to .window (driver .window_handles [- 1 ])
452+ else :
453+ driver .default_get (url ) # The original one
454+ return None
455+
456+
457+ def uc_open_with_disconnect (driver , url ):
458+ """Open a url and disconnect chromedriver.
459+ Note: You can't perform Selenium actions again
460+ until after you've called driver.connect()."""
461+ if url .startswith ("//" ):
462+ url = "https:" + url
463+ elif ":" not in url :
464+ url = "https://" + url
465+ if (url .startswith ("http:" ) or url .startswith ("https:" )):
466+ script = 'window.open("%s","_blank");' % url
467+ js_utils .call_me_later (driver , script , 3 )
468+ time .sleep (0.007 )
469+ driver .close ()
470+ driver .disconnect ()
471+ time .sleep (0.007 )
448472 else :
449473 driver .default_get (url ) # The original one
450474 return None
@@ -3754,6 +3778,11 @@ def get_local_driver(
37543778 driver , * args , ** kwargs
37553779 )
37563780 )
3781+ driver .uc_open_with_disconnect = (
3782+ lambda * args , ** kwargs : uc_open_with_disconnect (
3783+ driver , * args , ** kwargs
3784+ )
3785+ )
37573786 driver .uc_click = lambda * args , ** kwargs : uc_click (
37583787 driver , * args , ** kwargs
37593788 )
0 commit comments