Playwright 现代 Web 自动化测试简明教程
前言:为什么选择 Playwright?
在 Web 自动化测试领域,Selenium 曾长期占据主流,但面对现代前端框架(React/Vue/Next.js)、复杂 SPA 应用和多端适配需求,其局限性逐渐凸显。Microsoft 推出的 Playwright 框架,凭借跨引擎、跨平台、智能化的特性,成为新一代自动化测试的优选方案。
相比于传统的 Selenium 或 Cypress,Playwright 具有以下优势:
- 极致性能:基于浏览器上下文(Browser Context)隔离测试环境,启动速度比 Selenium 快 30%+,无冗余进程开销;
- 智能等待:内置自适应等待机制,自动等待元素可交互,彻底告别 sleep() 硬编码;
- 全场景覆盖:支持 Chromium/Firefox/WebKit 三大引擎,Windows/Linux/macOS 全平台,JavaScript/TypeScript/Python/Java/.NET 多语言;
- 强大工具链:Codegen(代码自动生成)、Trace Viewer(测试追踪分析)、UI Mode(交互式调试)一站式提效;
- 多端适配:原生支持移动端浏览器模拟,实验性支持安卓真机测试,覆盖 PC + 移动全场景。
安装
在已有 Node.js 环境的项目中,执行以下命令一键初始化 Playwright:
npm init playwright@latest
执行后,脚本会引导你完成以下配置:
- 选择使用 TypeScript 还是 JavaScript。
- 指定测试文件存放目录(默认
tests)。 - 是否添加 GitHub Actions 工作流。
- 是否安装 Playwright 浏览器(建议选择是,否则后续需要手动运行
npx playwright install)。
基础使用
编写第一个测试
Playwright 的 API 非常直观。在 tests/example.spec.ts 中:
import { test, expect } from '@playwright/test';
test('has title', async ({ page }) => {
await page.goto('https://playwright.dev/');
// 期待标题包含 "Playwright"
await expect(page).toHaveTitle(/Playwright/);
});
test('get started link', async ({ page }) => {
await page.goto('https://playwright.dev/');
page.(, { : }).();
(page).();
});


