Windows 10环境下Python Selenium操控Chrome启动崩溃问题求助
看起来你已经做了不少基础排查了,版本匹配、常见参数都试过,结合公司设备的特殊环境,我给你几个针对性的方向,你可以逐一尝试:
1. 更换用户数据目录,避免权限或进程冲突
你当前指定了自己的Chrome用户目录user-data-dir=C:\\Users\\UP1170\\AppData\\Local\\Google\\Chrome\\User Data,但公司设备的这个目录可能有严格的权限控制,或者已有Chrome进程在占用该目录资源。试试改用一个你有权限的临时目录:
- 先在桌面手动创建一个文件夹,比如
TempChromeProfile - 修改参数为:
这样可以绕过原有用户目录的权限问题,也避免和正在运行的Chrome实例冲突。options.add_argument("user-data-dir=C:\\Users\\UP1170\\Desktop\\TempChromeProfile")
2. 修正参数拼写并补充安全管控绕过参数
注意你脚本里有个参数拼写错误:--disable-dev-shm-using应该是--disable-dev-shm-usage,这个参数是解决共享内存不足问题的关键。另外,公司设备通常有组策略或安全软件拦截,补充这些参数试试:
options.add_argument("--disable-dev-shm-usage") # 修正拼写 options.add_argument("--disable-features=VizDisplayCompositor") options.add_argument("--disable-background-networking") options.add_argument("--disable-default-apps") options.add_experimental_option("useAutomationExtension", False) # 关闭自动化扩展,避免被拦截
3. 以管理员身份运行脚本
公司设备的普通用户权限可能不足以让ChromeDriver和Chrome建立稳定连接。右键点击你的Python脚本或运行脚本的命令提示符,选择以管理员身份运行,再测试是否正常。
4. 更换远程调试端口
你当前用的9222端口可能被公司的防火墙或安全策略占用/拦截,试试换成其他端口,比如9223或8080:
options.add_argument("--remote-debugging-port=9223")
5. 排查安全软件拦截
公司的终端防护工具(比如EDR、杀毒软件)很可能会拦截ChromeDriver的通信。如果IT允许的话,暂时关闭这类软件,再运行脚本测试。如果恢复正常,就需要联系IT部门把ChromeDriver和你的Python脚本添加到安全白名单中。
6. 简化配置逐步排查
先去掉所有非必要参数,用最基础的配置测试,确认核心功能是否正常,再逐步添加参数找出冲突项:
from selenium import webdriver options = webdriver.ChromeOptions() options.add_argument("--no-sandbox") options.add_argument("--disable-dev-shm-usage") driver = webdriver.Chrome(options=options, executable_path="C:\\Users\\UP1170\\Desktop\\chromedriver.exe") driver.get("https://www.google.com")
最后提醒
因为是公司设备,最核心的限制通常是权限管控或安全策略拦截,如果以上方法都无效,建议联系公司IT部门,说明你需要用Selenium做自动化任务,请求协助排查组策略、防火墙或安全软件的拦截规则。
内容的提问来源于stack exchange,提问作者Ozzie86_uk

