Playwright:一套 API 驱动三大浏览器的自动化框架
Playwright 一套 API 驱动 Chromium、Firefox、WebKit:自动等待、弹性定位器、Trace Viewer。
项目资料
GitHub Ecosystem- 许可证
- Apache-2.0
- 主语言
- TypeScript
- 星标
- 97,768
- 核查时间
- 2026-10-15
以上快照资料以核查当日为准,可能随版本或运营策略变化。
接「数据采集、竞品监控、自动填表」这类单子,工具选型的第一道坎在于换浏览器要不要重写。公众号「寻微一隅」10 月 15 日清单把 Playwright 放在效率工具层,它正是微软维护的那套事实标准(TypeScript,Apache-2.0,截至 2026-10-15 约 9.8 万 star):一套 API 驱动 Chromium、Firefox 和 WebKit,测试、脚本和给 AI 智能体用的工具都从这来。
核心功能
- 一套 API,三个引擎:Chromium(156)、Firefox(157)、WebKit(27.2)同一套接口,README 徽章直接标出版本;写一次,跨浏览器跑。
- 自动等待与 web-first 断言:不写死等待时间——元素可交互才操作,断言自动重试直到条件满足,flaky 测试的第一大来源被消掉。
- 弹性定位器:
getByRole、getByLabel、getByPlaceholder、getByTestId按用户看到的方式找元素,DOM 结构微调不一定挂。 - 测试隔离与状态复用:每个测试跑在独立 browser context(相当于新配置文件);登录态存一次(
storageState)跨测试复用,不用每条用例重登。 - Trace Viewer:失败时捕获执行 trace、截图和视频,Trace Viewer 里回放每个动作、DOM 快照、网络请求和控制台消息。
- 并行默认开:测试默认并行跑,跨所有配置的浏览器。
- 四种用法一套内核:Playwright Test(端到端测试)、CLI(给编码智能体用,README 称比 MCP 更省 token——不把大段工具 schema 和可访问性树塞进上下文)、MCP(LLM 驱动自动化)、Library(普通自动化脚本)。
典型使用场景
- 接采集与监控单子的开发者:竞品价格、工商信息批量拉取,一套脚本三个引擎都能跑。
- 要补 E2E 测试的前端团队:自动等待加 Trace Viewer 把「玄学 flaky」变成可回放的证据。
- 让编码智能体操作网页的团队:CLI 与 MCP 两条路都在官方仓库里,按 token 预算选。
快速上手
npm init playwright@latest
或手动加依赖并装浏览器:
npm i -D @playwright/test
npx playwright install
第一条测试:
import { test, expect } from '@playwright/test';
test('has title', async ({ page }) => {
await page.goto('https://playwright.dev/');
await expect(page).toHaveTitle(/Playwright/);
});
npx playwright test 跑起来,默认 headless 并行。失败要看现场,配置里加 trace: 'on-first-retry',然后 npx playwright show-trace trace.zip。
小结
适合要写 E2E 测试的团队、接浏览器自动化交付的开发者,以及给智能体接网页操作能力的团队;不适合需要驱动真实用户profile(已装扩展、特定指纹)的场景——Playwright 给的是干净隔离的 context,不是你的日常浏览器。TypeScript,Apache-2.0,截至 2026-10-15 是 97768 star、当天仍有推送,微软维护、生态成熟。
给智能体用的两条路里,站内此前的 Playwright MCP 记的是 MCP 服务器形态(LLM 驱动、按可访问性树操作);Playwright CLI 则是同一团队为编码智能体做的更轻替代——选哪个取决于你的智能体怎么接工具。