Playwright 1.0.3

Polar Sponsor
爱发电 赞助
.NET 9.0

通过 Playwright MCP 实现浏览器自动化。导航网站、点击元素、填写表单、截取屏幕截图、提取数据以及调试真实浏览器工作流程。使用 w...

何时使用 : 使用此技能执行真实浏览器任务 : JS 已发送页面,多步形式,截图或 PDF , UI 调试, Playwright 测试作者, MCP 驱动浏览

功能概述

何时使用 : 使用此技能执行真实浏览器任务 : JS 已发送页面,多步形式,截图或 PDF , UI 调试, Playwright 测试作者, MCP 驱动浏览是一项面向实际任务的技能。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

适用场景

在执行真实浏览器任务时使用该技能:JS 渲染页面、多步骤表单、截图或生成 PDF、UI 调试、Playwright 测试编写、MCP 驱动的浏览器控制,以及从已渲染页面中进行结构化数据提取。

当静态 fetch 无法满足需求,或任务依赖于浏览器事件、可见 DOM 状态、认证上下文、上传/下载行为、或面向用户的内容渲染时,优先选用本技能。

若用户主要希望智能体通过简单操作(如 navigate、click、fill、screenshot、download 或 extract)来驱动浏览器,请将 MCP 视为首选路径。

编写脚本和测试时请直接使用 Playwright;当浏览器工具已集成至当前工作流、用户明确要求使用 MCP,或浏览器操作比编写新自动化代码更快捷时,则选用 MCP。

本技能的核心适用场景是仓库自有(repo-owned)的浏览器相关工作:测试、调试、问题复现、截图及确定性自动化。将“已渲染页面的数据提取”视为次要用例,而非默认定位。

架构设计

该技能仅接受指令,不默认创建本地内存、不自动建立文件夹结构、也不持久化浏览器配置文件。

仅加载完成任务所需的最小参考文件。除非仓库已有标准化的认证状态管理机制,且用户明确要求复用浏览器会话,否则应保持认证状态为临时性。

快速入门

MCP 浏览器路径

npx @playwright/mcp --headless

当智能体已具备可用的浏览器工具,或用户希望实现浏览器自动化而无需编写新的 Playwright 代码时,采用此路径。

常用 MCP 操作

典型的 Playwright MCP 工具操作包括:

  • browser_navigate:打开页面
  • browser_click 和 browser_press:交互操作
  • browser_type 和 browser_select_option:表单输入与选项选择
  • browser_snapshot 和 browser_evaluate:页面检查与数据提取
  • browser_choose_file:文件上传
  • 通过当前活跃的浏览器工作流完成截图、PDF、trace 及下载捕获

常见浏览器任务结果

目标 典型 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();
})();

速查参考

主题 文件
选择器策略与 iframe 处理 selectors.md
失败分析、trace、日志与 headed 运行 debugging.md
测试架构、Mock、认证与断言 testing.md
CI 默认配置、重试机制、Worker 并行与失败产物 ci-cd.md
已渲染页面的数据提取、分页处理与尊重式限速 scraping.md

方案选型指南

场景 推荐路径 原因
静态 HTML 或简单 HTTP 响应已足够 优先使用更轻量的 fetch 路径 更快、成本更低、更稳定
需要可靠的选择器或操作流程初稿 从 codegen 或 headed 探索式运行起步 比从源码或过期 DOM 中猜测选择器更快
本地应用、预发布环境应用或仓库自有 E2E 测试套件 使用 @playwright/test 最适合可重复执行的测试与断言
一次性浏览器自动化、截图、下载或已渲染内容提取 直接使用 Playwright API 简洁、明确、便于在代码中调试
智能体/浏览器工具工作流已依赖 browser_* 工具,或用户明确要求无代码浏览器控制 使用 Playwright MCP 对 navigate-click-fill-screenshot 类工作流最快捷
CI 失败、不稳定(flake)或环境漂移 从 debugging.md 和 ci-cd.md 入手 trace 与产物的价值高于新增代码

核心准则

1. 验证用户可见行为与真实浏览器边界

  • 不要将 Playwright 用于单元测试或 API 测试即可低成本覆盖的实现细节。
  • 当成功与否取决于渲染后的 UI、可交互性、认证、上传/下载、导航或仅限浏览器的行为时,才使用 Playwright。

2. 先确保隔离性,再追求智能化

  • 保持测试与脚本相互独立,避免重试、并行执行或重运行继承隐式状态。
  • 优先扩展仓库现有的 Playwright 测试框架、配置与 fixture,而非从零构建一套并行测试体系。
  • 除非测试套件明确设计为支持共享状态,否则禁止在并行运行间共享可变账号、浏览器状态或服务端数据。

3. 行动前先侦察

  • 在锁定选择器或断言前,先打开页面、等待并检查已渲染的状态。
  • 使用 codegen、headed 模式或 trace 来发现稳定定位符,而非基于源码或过期 DOM 猜测。
  • 对于偶发性失败或仅在 CI 中出现的问题,应在重写选择器或等待逻辑前先捕获 trace。

4. 优先使用高韧性定位符与面向 Web 的断言

  • 优先使用 role、label、text、alt 文本、title 或 test ID,其次才是 CSS 选择器或 XPath。
  • 使用 Playwright 断言验证用户可见的结果,而非仅确认 click 或 fill 命令是否执行成功。
  • 若定位符存在歧义,请明确消歧;除非位置本身即为被测行为,否则不应使用 first()、last() 或 nth() 来压制严格性警告。

5. 基于可交互性与应用状态等待,而非任意时间延迟

  • 在引入 sleep 或强制操作前,优先利用 Playwright 内置的可交互性检查机制。
  • 相比泛化的定时猜测,优先使用 expect、URL 等待、响应等待及显式的应用就绪信号。

6. 控制你未拥有的外部依赖

  • 当目标是验证自身应用时,应 Mock 或隔离第三方服务、不稳定的上游 API、分析埋点噪声及跨域依赖。
  • 对于已渲染页面的数据提取,应优先使用有文档支持的 API 或纯 HTTP 接口,而非驱动完整浏览器。
  • 除非用户明确要求验证该集成本身,否则不应让第三方小部件或上游集成成为测试套件不稳定的根本原因。

7. 显式管理认证、生产环境访问与状态持久化

  • 默认不持久化已保存的浏览器状态。
  • 仅当仓库已有标准认证状态管理机制,或用户明确要求复用会话时,才复用认证状态。
  • 对于具有破坏性、涉及财务/医疗信息、生产环境或其它高风险的操作流程,应优先使用预发布或本地环境,并在继续前要求用户显式确认。

Playwright 常见陷阱

  • 从源码猜测选择器,或使用 first()、last()、nth() 抑制歧义警告 → 自动化仅能成功一次,随后即出现不稳定(flake)。
  • 在仓库已存在配置、fixture、认证设置或约定的情况下,另行新建 Playwright 结构 → 新流程与现有测试框架冲突,徒耗时间。
  • 测试内部实现细节而非用户可见结果 → 测试套件全部通过,但用户实际路径仍不可用。
  • 在并行测试间共享同一认证状态,且这些测试会变更服务端数据 → 失败变为顺序依赖型,结果难以信任。
  • 在尚未理解遮罩层、禁用状态或可交互性前提下即启用 force: true → 测试掩盖了真实缺陷。
  • 对高频通信的单页应用(SPA)使用 networkidle 等待 → 分析埋点、轮询请求或 WebSocket 连接会使页面持续处于“忙碌”状态,即使 UI 已准备就绪。
  • 本可通过 HTTP 或 API 解决问题,却仍驱动完整浏览器 → 成本更高、更不稳定、有效信号更少。
  • 将第三方小部件与实时上游服务视作自身产品中稳定的一部分 → 故障变得不可归因、不可修复。

外部端点

端点 发送的数据 用途
用户指定的 Web 域名 浏览器请求、表单输入、Cookie、上传文件及页面交互等任务必需数据 自动化、测试、截图、PDF 生成与已渲染内容提取
https://registry.npmjs.org 可选安装过程中传输的包元数据与 tarball 文件 安装 Playwright 或 Playwright MCP 工具

除此之外,不向任何其他外部服务发送数据。

安全与隐私

离开您设备的数据:

  • 发送至用户指定需自动化的网站的请求。
  • 安装 Playwright 工具时可选的 npm 包下载流量。

保留在本地的数据:

  • 源代码、trace、截图、视频、PDF 及暂存于 workspace 或系统临时目录中的浏览器状态。

本技能不会:

  • 创建隐藏内存文件或本地文件夹系统。
  • 推荐浏览器指纹伪造技巧、验证码破解服务或代理出口轮换方案。
  • 默认持久化会话或凭据。
  • 在任务目标站点及可选工具安装之外发起未声明的网络请求。
  • 将高风险的生产环境操作流程视为默认安全,不经用户明确指示即自动执行。

可信度说明

使用本技能时,浏览器请求将发送至您所指定的自动化目标网站,可选的包下载则经由 npm 完成。仅当您信任这些服务及工作流中涉及的网站时,才应安装并使用本技能。

相关技能

若用户确认,可通过 clawhub install 安装以下技能:

  • web —— 在升级至真实浏览器前,优先采用 HTTP 方式开展初步调查。
  • scrape —— 当浏览器自动化并非主要挑战时,适用于更广泛的提取类工作流。
  • screenshots —— 浏览器操作完成后,用于捕获并优化视觉产物。
  • multi-engine-web-search —— 在自动化前,用于查找并筛选目标页面。

反馈

  • 若本技能有用:clawhub star playwright
  • 保持更新:clawhub sync

相关专题

更多
LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

2026.09.30

0

10

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

2026.09.30

0

14

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

2026.09.30

0

12

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

2026.09.30

0

26

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

2026.09.29

0

15

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

2026.09.23

0

15

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

2026.09.23

0

15

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

2026.09.23

0

15

Conan创建软件包配方指南
Conan创建软件包配方指南

本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。

2026.09.22

0

12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习