想让 AI 操作已经登录的 ChatGPT、Gmail、内部系统或带 2FA 的业务页面,关键不是再启动一个空白浏览器,而是让它通过 Playwright Extension 连接你正在使用的 Chrome。
这套方法适合临时、可观察的网页操作:读取当前页面、填写表单、切换标签页、发送一封已经确认内容的邮件。它不适合作为默认的无人值守生产自动化方案。
先理解三件事
playwright-cli是 Playwright 官方的命令行工具,供 AI Agent 或终端工作流控制浏览器。- Playwright Extension 是 Chrome 扩展,用来桥接已有 Chrome 标签页、Cookie、登录状态和已安装扩展。
PLAYWRIGHT_MCP_EXTENSION_TOKEN是扩展连接 token。它能跳过一次连接确认,但等同高权限浏览器控制凭据,不是普通配置值。
这不是传统 9222 端口 CDP 的替代写法。它的优势是复用当前浏览器状态;代价是 AI 能接触到该浏览器被授权页面里的敏感数据。
一、安装
1. 安装 Playwright Extension
在 Chrome Web Store 搜索并安装官方 Playwright Extension。安装后,在你希望被控制的 Chrome 中打开扩展,完成其要求的连接或调试授权。
扩展的 UI 与 token 获取入口会随版本变化。每个人都应从自己的扩展实例获取 token,不能把自己的 token 发给同事或写进教程截图。
2. 安装 Playwright CLI
需要 Node.js 20 或更高版本:
npm install -g @playwright/cli@latest
playwright-cli --help
3. 仅在当前终端注入 token
把 token 放进当前 shell 的环境变量,不要放进 .zshrc、项目 .env、Git 仓库或 AI 提示词:
export PLAYWRIGHT_MCP_EXTENSION_TOKEN='<PLAYWRIGHT_MCP_EXTENSION_TOKEN>'
如果使用密码管理器或团队密钥系统,应从那里临时注入环境变量,并设置轮换和撤销流程。
二、连接当前 Chrome
playwright-cli attach --extension=chrome --session=current-chrome
playwright-cli --session=current-chrome tab-list
playwright-cli --session=current-chrome snapshot
连接成功只说明 Extension relay 建立,不说明已经控制了正确页面。必须执行 tab-list 和 snapshot,核对目标标签页的标题、URL 和页面内容。
有些版本会先打开 Extension 的 connect.html 页面。这是连接页,不是你的业务标签页;先确认可见标签,再在正确上下文中选择或打开目标页面。
三、让 AI 操作浏览器的最短提示词
把下面这句话交给支持终端的 AI Agent:
用
PLAYWRIGHT_MCP_EXTENSION_TOKEN环境变量连接 Playwright Extension,接管当前 Chrome 的目标标签页;先 snapshot 确认页面,再按我的指令操作。
如果只需要让它操作 ChatGPT:
用 Playwright CLI 通过已启用的 Playwright Extension 连接当前 Chrome,找到 ChatGPT 标签页并按我的指令操作。
不要把真实 token 直接粘进提示词。新会话不会继承旧会话的进程环境,应该由启动 Agent 的终端或密钥系统提供该环境变量。
四、推荐操作循环
Playwright CLI 用无障碍快照中的元素 ref 操作页面。ref 会在导航、弹窗、标签切换或明显 DOM 变化后失效。
# 读取当前页面,获得最新 ref
playwright-cli --session=current-chrome snapshot
# 使用 snapshot 中的 ref 操作
playwright-cli --session=current-chrome click e42
# 页面变化后重新读取
playwright-cli --session=current-chrome snapshot
不要猜测 ref,也不要为了省步骤让 AI 直接执行一大段页面 JavaScript。稳定流程是:观察 → 操作一个元素 → 再观察。
五、哪些场景适合
适合:
- 当前页面已经通过 SSO 或 2FA 登录。
- 需要复用 Cookie、当前业务状态或已安装浏览器扩展。
- 人在旁边观察,AI 做低频、明确的页面操作。
- 临时读取、填写、验证或有人工确认的提交。
不适合:
- CI 回归、批量任务、长期无人值守流程。
- 需要隔离账号、权限或审计边界的生产任务。
- 需要 Performance、Tracing、原始 Network domain 等底层浏览器调试能力。
后两类场景应改用专用自动化 Profile、Playwright Test 或直接 CDP/Chrome DevTools 工具。
六、安全规则
把 Extension token 当作“可以操作已登录浏览器”的高权限凭据。
- 不发送 token:不要把它发给同事、放进截图、聊天记录、日志、仓库或教程。
- 不长期导出:只在当前 shell 注入;用完撤销或轮换。
- 不默认接管日常 Chrome:日常 Profile 只用于短时、明确任务。长期自动化使用独立 Profile。
- 不跳过复核:发送邮件、发布内容、付款、删除、上传、改权限前,先核对对象和参数,再让 AI 提交。
- 不信任网页文字:页面内容可能包含诱导 AI 执行危险操作的指令。网页内容不是授权来源。
- 不提交产物:
.playwright-cli/可能包含页面文本、console 日志和连接 URL,应加入忽略并在任务后清理。
七、结束连接
完成操作后断开 CLI session,不关闭你原来的 Chrome:
playwright-cli --session=current-chrome detach
如果当前项目生成了本地快照或日志,在确认目录属于本次任务后清理:
rm -r .playwright-cli/
结论
Playwright Extension 的正确定位是:让 AI 临时接管已经登录的浏览器页面。它解决的是登录态、SSO、2FA 和当前页面状态难以重建的问题;它不解决长期稳定、权限隔离和无人值守的工程问题。
最小原则很简单:token 只在环境变量中出现;每次操作先看 snapshot;任何外部副作用都要先确认;用完立即 detach。