BOM发料对比

This commit is contained in:
hjq
2026-06-26 20:39:31 +08:00
parent 4d1ad3402e
commit 456e9fc582

View File

@@ -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
# ============================================================== # ==============================================================