ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Playwright-MCP持久化Profile-Cookie登录态保存教程

Playwright-MCP持久化Profile-Cookie登录态保存教程 Playwright MCP 用持久化 Profile 保存 Cookie 登录态 —— 完整技术教程适用范围opencode Playwright MCP 浏览器自动化场景关键词Playwright MCP、persistent profile、user-data-dir、cookie 持久化、免登录一、为什么要持久化 Profile浏览器自动化如 opencode 里调用 Playwright MCP最烦的一点是每次启动浏览器登录态、Cookie、LocalStorage 全部丢失。比如自动化需要访问某个需要登录的站点每次都重新扫码 / 输密码 / 验证码。Cookie 有效期一过又得重新登录。登录验证滑块、人机校验在无头浏览器里几乎过不去。解决办法给自动化用的浏览器绑定一个固定身份目录persistent profile让 Cookie 和登录态落盘。下次启动自动加载登录一次、长期有效。二、原理Playwright MCP 的持久化机制2.1 默认行为Playwright MCP 启动浏览器时默认就带一个临时 user-data-dir每次随机用完即焚 → 登录态必然丢失。2.2 核心参数--user-data-dirMCP 支持通过命令行指定固定的浏览器数据目录npx-yplaywright/mcplatest\--user-data-dir /home/a1/.cache/hs-playwright-mcp指定之后Chrome 会把Cookie、LocalStorage、IndexedDB、登录态全部写入这个目录下的Default/子目录。具体文件Default/CookiesSQLite 数据库、Default/Local Storage/、Default/Login Data等。下次任何会话再指向同一个目录 → 自动加载上次的全部状态。2.3 一个关键限制同一时刻只能一个实例用⚠️ 一个 user-data-dir同一时刻只能被一个浏览器进程占用。判断标准目录里有没有锁文件锁定错误提示形如Browser is already in use for userDataDir。因此不能用--isolated那是隔离模式刻意不落盘与之相反。想要多个并行会话各自指向不同的 user-data-dir。关闭浏览器后锁自动释放目录可被再次使用。三、实战opencode MCP 配置本机已验证3.1 配置文件位置~/.config/opencode/opencode.json3.2 当前生效的 Playwright MCP 配置{playwright:{command:[npx,-y,playwright/mcplatest,--user-data-dir,/home/a1/.cache/hs-playwright-mcp,--executable-path,/usr/bin/google-chrome,--no-sandbox],enabled:true,type:local}}要点参数值作用--user-data-dir/home/a1/.cache/hs-playwright-mcp持久化 profileCookie/登录态落在这里--executable-path/usr/bin/google-chrome直接用系统里装的真实 Chrome而非 Playwright 自带内核--no-sandbox无值容器/服务器环境root 或受限沙箱下必需的启动开关注意上面是真实 Chrome 内核 固定 profile即执行文件是真实的 Chrome。某些网站仍可能通过 UA/自动化特征识别为自动化但 Cookie 持久化与 profile 复用与 UA 无关照常生效。四、验证方法照做即可4.1 看进程确认用的哪个目录psaux|grep-Eplaywright-mcp|/opt/google/chrome/chrome|grep-vgrep找--user-data-dir/home/a1/.cache/hs-playwright-mcp这一行即确认。4.2 看 Cookie 文件是否已落盘ls-la/home/a1/.cache/hs-playwright-mcp/Default/Cookies有文件且大小非 0 → Cookie 数据库已存在。4.3 实测写入 Cookie → 关浏览器 → 重开 → 还在打开任意站点如https://example.com。注入测试 Cookiedocument.cookietest_persisthello; path/; max-age3600;读取确认写入成功 → 关闭浏览器标签页。重新导航到同一站点再次读取。document.cookie// 返回 test_persisthello → 持久化成功 ✅本机实测结果test_persisthello_mybili_123在关浏览器重开后依然存在。✅五、验收清单怎么确保MCP 一定走带 Cookie 的 Profile唯一配置源grep-A8playwright ~/.config/opencode/opencode.json确认--user-data-dir指向固定路径且没有--isolated。无项目级覆盖cat/home/a1/mybilibili/opencode.jsongrep-rnisolated~/.config/opencode/ /home/a1/mybilibili/都为空 → 全局配置唯一生效。进程实测最可靠psaux|grepuser-data-dir看活动进程实际用的目录是否等于固定 profile 路径。三条全过 → 100% 保证 Cookie 持久化。六、常见坑与 FAQQ1登录态为什么会丢用--isolated或每次--user-data-dir指向不同临时目录 → 状态不落盘。检查命令行参数。Q2报错 “Browser is already in use for”该目录正被另一个 Chrome 实例占用。关掉那个实例或改用新的 user-data-dir。Q3我想配置完立刻生效修改opencode.json后需要重启 opencode / 重连 MCP。可在 opencode 里执行/mcp重置。Q4Cookie 一直保存在磁盘安全吗该目录权限为-rw-------仅当前用户可读写且只含自动化浏览器自动生成的会话数据。建议不要在自动化 profile 里手动保存密码/表单password-storebasic仅示例环境可用。Q5能直接复用你平时打开的那个 Chrome的登录态吗不能直接复用运行中的实例Profile 锁冲突。两条正路方案 A推荐自动化专用 profile在自动化浏览器里登录一次之后长期有效。方案 BPlaywright MCP 官方 Chrome 扩展直接接管你已打开的真实浏览器可复用登录态需额外装扩展。七、总结固定 --user-data-dir 持久化 Profile Cookie/登录态落盘 登录一次长期免登录这是让浏览器自动化有记忆的关键。配合真实 Chrome 内核--executable-path既能保存 Cookie又能贴近真实浏览器行为。配置好之后用 MCP 一定走带 Cookie 持久化的那个 Profile无需每次重复登录。参考Playwright MCP 官方文档microsoft/playwright-mcp README。本文档基于本机实际环境与实测结果编写。
返回列表