Windows服务器VM中Selenium Chrome自动化CMD执行报错求助
解决Selenium在CMD执行时的"disconnected: Unable to receive message from renderer"问题
给你几个我和同行踩坑后验证有效的方案,针对你这种CMD执行报错、VSCode正常的情况:
- 强制用管理员权限启动CMD:右键CMD选「以管理员身份运行」再执行脚本,虚拟机里普通权限的CMD调用Chrome时容易出现进程权限冲突,VSCode大概率是用管理员权限启动的,所以能正常运行。
- 添加Chrome启动参数规避调试会话异常:在你的ChromeOptions里加上这几个参数,强制固定调试端口、禁用沙箱和GPU加速:
from selenium.webdriver.chrome.options import Options options = Options() options.add_argument("--no-sandbox") options.add_argument("--disable-dev-shm-usage") options.add_argument("--remote-debugging-port=9222") options.add_argument("--disable-gpu") options.add_argument("--headless=new") # 新版无头模式,避免桌面会话依赖 - 指定临时Chrome用户数据目录:每次运行脚本用全新的用户缓存,避免旧缓存导致会话断开:
# 提前创建好这个临时目录,或者让脚本自动创建 options.add_argument("--user-data-dir=C:\\temp\\chrome_temp_profile") - 检查CMD的环境变量:在CMD里执行
where chrome,看看能不能找到Chrome的执行路径。如果找不到,把Chrome安装目录(比如C:\Program Files\Google\Chrome\Application)加到系统PATH环境变量里,避免CMD找不到Chrome进程。 - 排查虚拟机的安全软件拦截:暂时关闭虚拟机里的防火墙或杀毒软件,有些安全工具会拦截Chrome和ChromeDriver的DevTools通信,导致会话断开。
内容的提问来源于stack exchange,提问作者Robaa
相关产品推荐
相关产品推荐

