通过 Playwright MCP 实现浏览器自动化。可导航网站、点击元素、填写表单、截图、提取数据及调试真实浏览器工作流。使用 w...
何时使用 : 使用此技能执行真实浏览器任务 : JS 已发送页面,多步形式,截图或 PDF , UI 调试, Playwright 测试作者, MCP 驱动浏览是一项面向实际任务的技能。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
请在执行真实浏览器任务时使用本技能:例如需 JavaScript 渲染的页面、多步骤表单、截图或生成 PDF、UI 调试、Playwright 测试编写、MCP 驱动的浏览器控制,以及从已渲染页面中进行结构化数据提取。
当静态 fetch 方式不足以满足需求,或任务依赖于浏览器事件、可见 DOM 状态、认证上下文、文件上传/下载,或面向用户的内容渲染时,应优先选用本技能。
若用户主要希望智能体通过简单动作(如 navigate、click、fill、screenshot、download 或 extract)驱动浏览器,则应将 MCP 视为首选路径。
对于脚本与测试,请直接使用 Playwright;当浏览器工具已集成到当前工作流中、用户明确要求使用 MCP,或相比编写新自动化代码,直接执行浏览器操作是最快路径时,则选用 MCP。
本技能的核心适用场景是仓库自有(repo-owned)的浏览器相关工作:测试、调试、问题复现(repros)、截图及确定性自动化。将“渲染后页面的数据提取”视为次要用例,而非默认定位。
本技能为纯指令型(instruction-only),默认不创建本地内存、不初始化文件夹、也不持久化浏览器配置文件(profiles)。
仅加载完成任务所需的最小参考文件。除非仓库已对认证状态标准化,且用户明确要求复用浏览器会话(browser-session reuse),否则应保持认证状态为临时性。
npx @playwright/mcp --headless
当智能体已具备可用的浏览器工具,或用户希望实现浏览器自动化而无需编写新的 Playwright 代码时,请采用此路径。
典型的 Playwright MCP 工具操作包括:
browser_navigate:打开页面browser_click 和 browser_press:交互操作browser_type 与 browser_select_option:表单填写与选项选择browser_snapshot 与 browser_evaluate:页面检查与结构化数据提取browser_choose_file:文件上传| 目标 | 典型 MCP 风格操作 |
|---|---|
| 打开并检查一个网站 | navigate、wait、inspect、screenshot |
| 完成一个表单 | navigate、click、fill、select、submit |
| 采集证据 | screenshot、PDF、download、trace |
| 提取结构化页面数据 | navigate、等待渲染完成、extract |
| 复现 UI 缺陷 | 启用 headed 模式运行、录制 trace、检查控制台或网络请求 |
npx playwright test npx playwright test --headed npx playwright test --trace on
npx playwright codegen https://example.com
const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch({ headless: true });
const page = await browser.newPage();
await page.goto('https://example.com');
await page.screenshot({ path: 'page.png', fullPage: true });
await browser.close();
})();
| 主题 | 文件 |
|---|---|
| 选择器策略与 frame 处理 | selectors.md |
| 失败分析、trace、日志与 headed 运行 | debugging.md |
| 测试架构、Mock、认证与断言 | testing.md |
| CI 默认配置、重试机制、Worker 并行与失败产物 | ci-cd.md |
| 渲染后页面提取、分页处理与合理限流 | scraping.md |
| 场景 | 最佳路径 | 原因 |
|---|---|---|
| 静态 HTML 或简单的 HTTP 响应已足够 | 优先使用更轻量的 fetch 路径 | 更快、成本更低、更稳定 |
| 需要可靠的选择器或操作流程初稿 | 从 codegen 或 headed 探索性运行起步 |
比从源码或过期 DOM 中猜测选择器更高效 |
| 本地应用、预发布环境(staging app)或仓库自有端到端(E2E)测试套件 | 使用 @playwright/test |
最适合可重复执行的测试与断言 |
| 一次性浏览器自动化、截图、下载或渲染后数据提取 | 使用 Playwright 直接 API | 简洁、明确、便于在代码中调试 |
智能体/浏览器工具工作流已依赖 browser_* 工具,或用户明确要求无代码浏览器控制 |
使用 Playwright MCP | 针对 navigate-click-fill-screenshot 类工作流的最快路径 |
| CI 失败、测试不稳定(flake)或环境漂移(environment drift) | 从 debugging.md 和 ci-cd.md 入手 |
trace 与失败产物的价值远高于新增代码 |
codegen、headed 模式或 trace 来发现稳定的选择器,而非凭源码或过期 DOM 猜测。first()、last() 或 nth() 来压制严格性警告。expect、URL 等待、响应等待,以及显式的应用就绪信号(app-ready signals),而非泛化的定时猜测。first()、last()、nth() 抑制歧义 → 自动化仅能成功一次,随后即变得不稳定。force: true → 测试掩盖了真实缺陷。networkidle 等待 → 分析埋点、轮询或 WebSocket 可能使页面持续处于“忙碌”状态,即使 UI 已准备就绪。| 端点 | 发送的数据 | 用途 |
|---|---|---|
| 用户指定的网页源站(web origins) | 浏览器请求、表单输入、cookies、上传文件及任务所需页面交互 | 自动化、测试、截图、PDF 生成与渲染后数据提取 |
https://registry.npmjs.org |
可选安装过程中传输的包元数据与 tarball | 安装 Playwright 或 Playwright MCP 工具 |
除此之外,不向任何其他外部服务发送数据。
离开您设备的数据包括:
保留在本地的数据包括:
本技能不会:
使用本技能时,浏览器请求将发送至您指定自动化的网站,可选的包下载则经由 npm 官方仓库完成。请仅在您信任这些服务及工作流所涉网站的前提下安装与使用。
若用户确认,可通过 clawhub install 安装以下技能:
web —— 在升级至真实浏览器前,优先采用基于 HTTP 的初步探查。scrape —— 当浏览器自动化并非主要挑战时,用于更广泛的提取类工作流。screenshots —— 浏览器操作完成后,用于捕获与优化视觉产物。multi-engine-web-search —— 在自动化前,用于搜索并筛选目标页面。clawhub star playwrightclawhub sync相关专题
热门下载
相关下载
精品课程
共0课时 | 0人学习
共0课时 | 0人学习