[教程]如何让AI通过playwrightMCP更安全可控的操控登录状态页面

682 字
3 分钟
[教程]如何让AI通过playwrightMCP更安全可控的操控登录状态页面

我最开始让AI操控浏览器用的是codex自带的插件,操作效率低而且废token,之后就找到了playwrightMCP,为了让它能够操控我已经登录的页面我加了--extension 参数,用了一段时间发现MCP会接管整个浏览器,比如说你只让操作A页面,但它能够读取其他所有页面的信息包括cookie

所以只推荐使用playwrightMCP提供的其他两种比--extension 更安全的方法

—user-data-dir#

使用这个参数指向一个文件夹后,AI调用playwright会开启一个独立的浏览器页面,在这个页面进行的登录、退出等信息都会保存在指定文件夹,且这些数据是运行时持续回写的

使用命令提前生成内容:

cmd
npx playwright open --channel msedge --user-data-dir=F:\playwright-profile https://www.4399.com/

—storage-state#

使用这个参数指向一个JSON文件,同样会开启一个独立的页面,登录信息从这个 JSON 文件读入

--user-data-dir不同的是:

  • 要搭配--isolated参数使用,这个参数会让配置文件保留在内存中,不保存到磁盘。也就是说仅在开启阶段读入JSON文件,之后的操作都在内存里面,用完即丢不回写
  • 需要提前生成好JSON文件,因为只在运行时读取一次

使用命令提前生成内容:

cmd
npx playwright open --channel msedge --save-storage=F:\playwright-profile\auth.json https://www.4399.com/
两条规则

--user-data-dir 不能和 --isolated 同时写 --storage-state 必须和 --isolated 同时写

这两样东西等于明文密码

playwright-profile/auth.json 里躺着可直接登录的凭证

二者的区别#

相同点:#

都能保存多个站点的登录信息

不同点:#

--user-data-dir--storage-state
层级进程级context 级
形态一个目录,几十~几百 MB 二进制(SQLite 等)一个几 KB 的 JSON
内容cookie、localStorage、IndexedDB、Service Worker、缓存、历史、扩展、保存的密码、站点权限只有 cookie + localStorage
读写读写,浏览器全程往里写只读注入,退出不回写
会话续期自动,站点轮换 token 会存回去不会续期
可复现性状态累积,每次不一样每次从同一起点开始

怎么选?#

日常用 --user-data-dir,自动续期,不用维护 JSON,IndexedDB 也带着,登一次能用很久,代价是它会攒缓存和历史,状态不可复现

需要可复现的自动化任务上 --storage-state--isolated。每次从同一个已知状态开始,跑完什么也不留,出问题好复现,代价是那份 JSON 不会续期,到期需要重新导出

完整配置示例#

CCSwitch
{
"type": "stdio",
"command": "npx",
"args": [
"@playwright/mcp@latest",
"--browser",
"msedge",
"--user-data-dir",
"F:\\playwright-profile"
]
}

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

[教程]如何让AI通过playwrightMCP更安全可控的操控登录状态页面
https://www.20050209.xyz/posts/playwright-mcp-safe-browser/
作者
Erythritol
发布于
2026-09-01
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Erythritol
Hello, I'm Erythritol.
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签
最新动态
站点统计
文章
8
分类
4
标签
26
总字数
9,229
运行时长
0
最后活动
0 天前