You need to enable JavaScript to run this app. 如何在Puppeteer中使用同一user-data-dir启动多个浏览器窗口
优惠活动
大模型
产品
解决方案
定价
更多

如何在Puppeteer中使用同一user-data-dir启动多个浏览器窗口

Puppeteer 绑定本地Chrome Profile多开的实现说明

报错根因

你遇到的Unable to move the cache: Access is denied错误,本质是两个问题叠加导致的:

  • 文件锁占用:Chrome对用户数据目录(user-data-dir)采用强独占访问机制,只要系统里有任意一个正在运行的Chrome进程(包括后台托盘驻留、开机自启的后台进程),就会锁住该目录下的所有缓存与配置文件。Puppeteer启动新进程时拿不到文件写入权限,就会直接抛出缓存操作失败的报错。
  • 参数写法错误:你当前的启动代码没有按照Puppeteer的规范传递Chrome启动参数,直接把--user-data-dir作为顶级属性写在launch配置里,参数根本不会被Chrome识别,进一步放大了配置不匹配的问题。

需求可行性说明

你要的「调用已保存的谷歌账号配置、启动2-4个共用同一profile的窗口」的需求是完全可以实现的,不需要绕过Chrome的权限机制,只需要遵守Chrome的运行规则即可:

  • 同一个user-data-dir路径绝对不能同时承载两个独立的Chrome进程,所有共用同一profile的窗口,都必须在同一个浏览器实例内创建,而不是反复调用puppeteer.launch()开多个独立浏览器。
  • 不建议直接使用系统默认的C:\Users\USER\AppData\Local\Google\Chrome\User Data路径做测试,该路径属于系统受保护目录,UAC权限管控严格,且日常使用Chrome时会频繁被占用,极易触发权限报错。

修正后的实现方案

  1. 先把系统默认的Chrome用户数据目录完整复制一份到非系统路径,比如D:\ChromeTestProfile,完整保留已登录的账号、书签、扩展等配置信息。
  2. 结束所有当前正在运行的Chrome进程(包括任务栏托盘驻留的、后台自动运行的chrome.exe进程),确保复制后的profile路径没有被任何程序占用。
  3. 按照规范修改Puppeteer启动代码,将Chrome启动参数统一放到args数组中传递,在同一个浏览器实例内直接创建需要的多窗口:
const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({
    headless: false,
    args: [
      // 指向复制好的独立profile路径
      '--user-data-dir=D:\\ChromeTestProfile',
      // 选择你要使用的具体子profile,默认已登录账号的配置一般在Default目录
      '--profile-directory=Default'
    ]
  });

  // 循环创建4个共用当前profile的窗口
  for (let windowIndex = 0; windowIndex < 4; windowIndex++) {
    const page = await browser.newPage();
    await page.goto('https://example.com');
    await page.screenshot({ path: `example_${windowIndex}.png` });
  }
})();

避坑提醒

  • 启动Puppeteer前务必检查任务管理器,确认没有残留的chrome.exe进程,否则哪怕你用的是复制出来的独立profile,只要路径下有残留的锁文件,就会触发权限报错。
  • 如果坚持要使用原系统路径的profile,除了关闭所有Chrome进程,还要手动删除profile根目录下的SingletonLock、SingletonCookie、SingletonSocket三个残留锁文件,否则哪怕没有进程占用,残留的锁文件也会触发启动权限报错。
  • 不需要为了多开同profile窗口反复启动新的浏览器实例,同一个实例下通过newPage()创建的所有页面,都会共享当前profile的登录态、缓存、扩展配置,完全满足多窗口使用需求。

内容的提问来源于stack exchange,提问作者DUMBUSER

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.26 14:57:03