diff --git a/inbound_verify/runtime.py b/inbound_verify/runtime.py index e69b70d..6081d09 100644 --- a/inbound_verify/runtime.py +++ b/inbound_verify/runtime.py @@ -301,6 +301,15 @@ def launch_and_prepare(debug_mode=False, debug_target="", foreground=True): _launch_args = ["--remote-debugging-port=9223"] if debug_mode else [] browser = pw.chromium.launch(headless=False, args=_launch_args) context = browser.new_context(viewport={"width": 1920, "height": 1080}) + # 默认禁用麦克风/摄像头:在每个页面/iframe 加载前覆盖 getUserMedia 为“直接拒绝”, + # 这样站点(如韵达登录/工作台会请求麦克风)调用时立即 NotAllowedError,Chromium 不再 + # 弹出系统授权窗,且麦克风被真正挡住(不是授权给它)。物流工作台无需音视频采集。 + context.add_init_script( + "(()=>{const d=()=>Promise.reject(new DOMException('Permission disabled','NotAllowedError'));" + "if(navigator.mediaDevices)navigator.mediaDevices.getUserMedia=d;" + "for(const k of ['getUserMedia','webkitGetUserMedia','mozGetUserMedia']){" + "if(typeof navigator[k]==='function')navigator[k]=function(){return d();};}})();" + ) pages_map = {} print("\n====================================================")