BOM发料对比
This commit is contained in:
@@ -98,30 +98,27 @@ def patch_drission_ws_handshake() -> None:
|
|||||||
break
|
break
|
||||||
raise last_err
|
raise last_err
|
||||||
|
|
||||||
# 重新补回 WS 握手补丁,这两个补丁都需要
|
if is_linux_env():
|
||||||
if is_linux_env() and not getattr(dp_driver_module, "_DTSK_WS_PATCHED", False):
|
|
||||||
dp_driver_module.create_connection = resilient_create_connection
|
dp_driver_module.create_connection = resilient_create_connection
|
||||||
import websocket
|
import websocket
|
||||||
websocket.create_connection = resilient_create_connection
|
websocket.create_connection = resilient_create_connection
|
||||||
import DrissionPage._base.driver as driver_mod
|
import DrissionPage._base.driver as driver_mod
|
||||||
driver_mod.create_connection = resilient_create_connection
|
driver_mod.create_connection = resilient_create_connection
|
||||||
dp_driver_module._DTSK_WS_PATCHED = True
|
|
||||||
# 之前加在 ChromiumPage(opt) 前面其实没用,因为 run_browser 是在 ChromiumPage 实例化时才触发启动。
|
# 之前加在 ChromiumPage(opt) 前面其实没用,因为 run_browser 是在 ChromiumPage 实例化时才触发启动。
|
||||||
# 真正的解决办法是拦截原生库里去请求 /json/version 的那段代码。
|
# 真正的解决办法是拦截原生库里去请求 /json/version 的那段代码。
|
||||||
if is_linux_env() and not getattr(dp_driver_module, "_DTSK_UUID_PATCHED", False):
|
if is_linux_env() and not getattr(dp_driver_module, "_DTSK_UUID_PATCHED", False):
|
||||||
import DrissionPage._functions.browser as dp_browser_module
|
import DrissionPage._functions.browser as dp_browser_module
|
||||||
|
|
||||||
# 保存原生的 run_browser 函数
|
# 保存原生的 test_connect 函数
|
||||||
original_run_browser = dp_browser_module._run_browser
|
original_test_connect = dp_browser_module.test_connect
|
||||||
|
|
||||||
def resilient_run_browser(port, path, args):
|
def resilient_test_connect(ip, port):
|
||||||
log("INFO", "[DEBUG] 拦截到 _run_browser 启动 Chrome,强制等待 2 秒以防 UUID 跳变...")
|
log("INFO", "[DEBUG] 拦截到 test_connect,强制等待 3 秒以防 Chrome 还没准备好 HTTP 接口...")
|
||||||
res = original_run_browser(port, path, args)
|
time.sleep(3)
|
||||||
time.sleep(2)
|
return original_test_connect(ip, port)
|
||||||
return res
|
|
||||||
|
|
||||||
# 替换它
|
# 替换它
|
||||||
dp_browser_module._run_browser = resilient_run_browser
|
dp_browser_module.test_connect = resilient_test_connect
|
||||||
dp_driver_module._DTSK_UUID_PATCHED = True
|
dp_driver_module._DTSK_UUID_PATCHED = True
|
||||||
# ==============================================================
|
# ==============================================================
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user