Selenium/Python/Chrome报错无法读写selenium目录如何解决?
问题根因
提示的读写权限告警由你配置的
user-data-dir=selenium参数触发:
- 你使用了相对路径指定Chrome用户数据目录,脚本运行时解析到的实际路径对应的文件夹,被杀毒软件、之前未正常退出的Chrome/ChromeDriver进程锁定,或是当前运行用户对该目录没有读写权限
- 其他设备运行正常是因为对应设备的运行用户对脚本工作目录下的selenium文件夹有完整读写权限,无进程占用锁定
- 点击取消后仍能正常运行,是因为Chrome检测到指定用户目录不可用后,会自动生成临时匿名配置文件启动,所以功能不受影响,但每次启动都会触发权限校验弹窗
修复方案
方案1:替换为绝对路径指定用户数据目录
避免相对路径解析错误,指定一个当前用户肯定有权限的目录,代码修改示例:import os from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager ... options = webdriver.ChromeOptions() # 写法1:直接将相对路径转为绝对路径 options.add_argument(f"user-data-dir={os.path.abspath('./selenium')}") # 写法2:直接指定固定的有权限的绝对路径,比如当前用户目录下的文件夹 # options.add_argument(r"user-data-dir=C:\Users\你的用户名\selenium_chrome_profile") options.add_argument("--remote-debugging-port=9222") # 额外添加两个参数规避沙箱权限校验 options.add_argument("--no-sandbox") options.add_argument("--disable-dev-shm-usage") driver = webdriver.Chrome(ChromeDriverManager().install(), options=options) try: driver.get(url) ...方案2:启动前清理残留进程
在初始化driver前杀掉所有残留的Chrome、ChromeDriver进程,解除目录占用:# 仅Windows环境可用 import os os.system('taskkill /f /im chrome.exe /t 2>nul') os.system('taskkill /f /im chromedriver.exe /t 2>nul')方案3:手动配置目录权限
找到脚本当前运行目录下的selenium文件夹,右键选择「属性」-「安全」,给当前登录的Windows用户添加「完全控制」权限,保存后重新运行脚本即可。
内容的提问来源于stack exchange,提问作者shulya403
相关产品推荐
相关产品推荐

