




















https://github.com/microsoft/playwright-cli
Playwright CLI with SKILLS
This package provides CLI interface into Playwright. If you are using coding agents, that is the best fit.
CLI: Modern coding agents increasingly favor CLI–based workflows exposed as SKILLs over MCP because CLI invocations are more token-efficient: they avoid loading large tool schemas and verbose accessibility trees into the model context, allowing agents to act through concise, purpose-built commands. This makes CLI + SKILLs better suited for high-throughput coding agents that must balance browser automation with large codebases, tests, and reasoning within limited context windows.
MCP: MCP remains relevant for specialized agentic loops that benefit from persistent state, rich introspection, and iterative reasoning over page structure, such as exploratory automation, self-healing tests, or long-running autonomous workflows where maintaining continuous browser context outweighs token cost concerns. Learn more about Playwright MCP.
这是一个非常专业且切中要害的问题。在当前的 AI Agent 架构中,Playwright CLI 已经成为连接“大语言模型(LLM)推理能力”与“真实浏览器操作”的关键桥梁。
根据你提供的引用指令以及 Playwright CLI 的设计原理,Agent 调用 Playwright 完成浏览器操作的过程,本质上是一个**“观察-决策-行动”**的循环。
简单来说,Agent 并不是直接“看”屏幕,而是通过命令行交互和**快照文件(Snapshot)**来间接控制浏览器。
以下我将结合 playwright-cli 的具体机制,为你拆解这个过程的详细步骤:
根据文档介绍,Playwright CLI 的核心优势在于Token 效率。
playwright-cli click e15),无需加载庞大的页面结构数据。当 Agent 接收到指令 Use playwright skills to test https://demo.playwright.dev/todomvc/ 时,它会按以下步骤运作:
Agent 首先会启动 Playwright CLI 并打开目标 URL,同时获取当前页面的“状态快照”。
playwright-cli open https://demo.playwright.dev/todomvc/
Page Title: TodoMVCElement e1: <input id="new-todo"> (用于输入新任务)Element e2: <button>Submit</button> (假设存在)Agent 阅读第一步返回的快照文本,理解页面结构。
new-todo 的输入框对应引用 ID 是 e1。”e1 输入文本,然后按回车键。”Agent 利用快照中获得的元素引用 ID,直接调用 CLI 命令进行操作。
playwright-cli fill e1 "Buy groceries"
或者更简单的模拟键盘操作:
playwright-cli type "Buy groceries"
playwright-cli press Enter
e1。这极大地简化了 LLM 的工作。这是实现“Take screenshots for all successful and failing scenarios”的关键。Agent 需要判断操作是否生效。
playwright-cli snapshot 获取新状态。
Buy groceries 的 <li> 列表项(例如 e21)。e99),Agent 就判定为失败。# 假设判定为成功,截取成功画面
playwright-cli screenshot success_todos.png
# 或者在判定失败时截取错误画面
playwright-cli screenshot error_state.png
playwright-cli close 关闭浏览器。为了让你更直观地理解,我整理了以下对照表:
| 步骤 | Agent 的“大脑”在做什么 | 调用的 Playwright CLI 命令 | 作用 |
|---|---|---|---|
| 1 | 导航:去往 TodoMVC 网站 | open [url] |
启动浏览器并加载页面 |
| 2 | 观察:看页面上有什么 | snapshot (自动或手动) |
获取元素 ID (e1, e2) 的映射表 |
| 3 | 行动:输入内容 | fill e1 "text" |
在指定元素中填入文字 |
| 4 | 行动:触发交互 | press Enter |
模拟键盘事件 |
| 5 | 验证:检查结果 | snapshot + 文本分析 |
对比当前状态与预期状态 |
| 6 | 记录:留存证据 | screenshot [filename] |
满足“截图所有场景”的需求 |
-s=[name] 参数来保持会话(Session)。这确保了 Cookie 和 LocalStorage 在多次命令调用间保持一致,让 Agent 能像真人一样连续操作。--headed 参数,这样你就能亲眼看到浏览器按照 Agent 的指令自动点击和输入,非常震撼。通过这种机制,Agent 就像一个拥有“手”和“眼”的数字员工,利用 Playwright CLI 作为它的肢体,精准地完成了网页测试任务。
-----------------------------------------------------------------------------
针对你提供的引用内容,我将重点解释 Playwright CLI 与 Playwright MCP 的核心区别,以及为什么在 Agent(智能体)架构中,CLI 被认为是更优的方案。
由于我无法直接插入动态图片,我将使用结构化图表和代码块模拟图示来为你直观展示其工作原理。
根据引用内容,Playwright 提供了两种与浏览器交互的方式。对于使用 Coding Agents(代码智能体) 的场景,CLI 是首选。
| 特性维度 | Playwright CLI (推荐) | Playwright MCP |
|---|---|---|
| 核心定位 | 命令行接口,专为编码代理设计 | 模型上下文协议,专为深度推理设计 |
| 工作模式 | “盲操作”模式:通过简短的命令(如 click e15)直接操作,不加载页面数据到模型。 |
“全知模式”:将页面结构(Accessibility Tree)完整加载进模型上下文,让模型“看”懂页面。 |
| Token 效率 | ⭐⭐⭐⭐⭐ (极高) 避免了庞大的工具 Schema 和页面树,节省成本。 |
⭐⭐ (较低) 需要将大量页面结构数据塞入上下文窗口。 |
| 适用场景 | 高频自动化、回归测试、需要处理大型代码库的 Agent。 | 探索性自动化、自愈测试、需要模型对页面进行深度推理的长周期任务。 |
引用中提到的核心概念是 Token Efficiency(Token 效率)。以下是详细的原理拆解:
CLI 的设计哲学是**“最小化上下文污染”**。它不强迫 LLM(大语言模型)去阅读整个网页的 HTML 结构。
工作步骤:
playwright-cli click e15。e15 的元素并点击。图解:
[LLM Agent]
| (指令: "点击 e15")
v
[Playwright CLI] ——(直接操作浏览器)——> [Browser]
|
v
[结果: Success] (无冗余页面数据)
优势:这种方式非常适合高吞吐量的编码代理,因为它释放了宝贵的上下文窗口空间,让 Agent 可以专注于处理大型代码库或复杂的业务逻辑,而不是被网页标签淹没。
MCP 的设计哲学是**“最大化的感知”**。它允许模型与页面进行迭代式的推理。
工作步骤:
图解:
[LLM Agent]
| (接收: 整个页面的DOM/AT树 ~ 几十万字节)
v
[思考: "我要点这里"]
| (指令: "点击 X")
v
[Playwright MCP] ——(操作浏览器)——> [Browser]
适用性:虽然消耗资源,但 MCP 适合探索性任务(如:从未见过的网页,需要模型自己摸索怎么用)或自愈测试(当元素找不到时,模型可以重新分析页面结构来寻找替代路径)。
引用文档中的结论非常明确:
如果你是 Coding Agent(代码智能体):
SKILLs 的方式暴露功能,更加Token 高效。它避免了将大型工具 Schema 和冗长的可访问性树加载到模型上下文中。playwright-cli install --skills。如果你是 Specialized Agentic Loops(专业级智能体循环):
出处:http://www.cnblogs.com/lightsong/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。