Playwright 第1章:简介与安装

Playwright 是微软开发的开源端到端自动化测试框架,支持 Chromium、Firefox 和 WebKit 三大浏览器引擎。它提供统一的 API 来编写跨浏览器测试,支持现代 Web 特性如 Shadow DOM、单页应用等。

什么是 Playwright

Playwright 是一个用于 Web 自动化测试和爬虫的 Node.js 库,它通过单个 API 控制 Chromium、Firefox 和 WebKit 浏览器。与传统的自动化工具不同,Playwright 采用浏览器上下文隔离机制,每个测试实例拥有独立的浏览器环境。

核心特性

特性描述
跨浏览器支持 Chromium、Firefox、WebKit
自动等待内置智能等待机制,无需手动 sleep
网络拦截可拦截、修改和模拟网络请求
移动端模拟内置设备描述,模拟移动端测试
并行执行支持多浏览器、多线程并行测试
代码生成提供 codegen 工具录制脚本

与 Selenium 对比

对比维度PlaywrightSelenium WebDriver
安装复杂度简单(npm install)需要安装各浏览器驱动
API 设计现代、简洁历史包袱较重
自动等待内置自动等待需手动等待
浏览器支持Chromium + Firefox + WebKit支持全平台
网络控制原生支持拦截和 Mock需借助代理
测试框架@playwright/test 集成需额外配置

与 Cypress 对比

对比维度PlaywrightCypress
浏览器支持三大引擎仅 Chromium 系列
多标签页原生支持有限支持
iframe原生支持支持
语言支持JavaScript/TypeScript/Python/.NET/Java仅 JavaScript/TypeScript
并行执行原生支持需 Dashboard 付费
速度

系统要求

操作系统

  • Windows:Windows 10+,Windows Server 2016+
  • macOS:12 Monterey 及以上
  • Linux:Ubuntu 20.04+,Debian 11+,CentOS 9+(需手动安装系统依赖)

运行时环境

  • Node.js:18 及以上版本
  • npm:8 及以上版本(或使用 yarn/pnpm)

安装 Playwright

基础安装

使用 npm 安装 Playwright 库:

npm init -y
npm install playwright

安装浏览器

Playwright 需要下载浏览器二进制文件:

# 安装所有浏览器(Chromium、Firefox、WebKit)
npx playwright install

# 仅安装 Chromium
npx playwright install chromium

# 安装带系统依赖的浏览器(Linux)
npx playwright install --with-deps

安装 Playwright Test

如果您使用 @playwright/test 测试框架:

npm init playwright@latest
# 或
npm install -D @playwright/test
npx playwright install

Docker 安装

Playwright 官方提供 Docker 镜像,适合 CI/CD 环境:

# 拉取 Playwright Docker 镜像
docker pull mcr.microsoft.com/playwright:v1.45.0-focal

# 运行测试
docker run -it --rm \
  -v $(pwd):/workspace \
  -w /workspace \
  mcr.microsoft.com/playwright:v1.45.0-focal \
  npx playwright test

注意:Docker 命令中使用 $(pwd) 语法,在 TypeScript 模板字符串中需写为 \$(pwd)

验证安装

创建简单的验证脚本 verify.mjs

import { chromium } from 'playwright';

const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('https://example.com');
const title = await page.title();
console.log('页面标题:', title);
await browser.close();

运行:

node verify.mjs

如果输出 页面标题: Example Domain,说明安装成功。

常见安装问题

Linux 系统依赖缺失

# Ubuntu/Debian
npx playwright install --with-deps

# 或手动安装
sudo apt-get install -y \
  libnss3 libnspr4 libatk1.0-0 \
  libatk-bridge2.0-0 libcups2 libdrm2 \
  libdbus-1-3 libxcb1 libxcomposite1 \
  libxdamage1 libxfixes3 libxrandr2 \
  libgbm1 libpango-1.0-0 libcairo2 \
  libasound2

权限错误

如果遇到 EACCES 权限错误:

# 设置浏览器缓存目录
PLAYWRIGHT_BROWSERS_PATH=/path/to/custom/dir npx playwright install

网络超时

浏览器下载超时的情况,可以设置代理:

# HTTP 代理
HTTPS_PROXY=http://proxy.example.com:8080 npx playwright install

# 或使用镜像
PLAYWRIGHT_DOWNLOAD_HOST=https://npmmirror.com npx playwright install

总结

Playwright 是一个功能强大的端到端测试框架,安装过程简单直接。根据项目需求选择合适的安装方式,推荐使用 @playwright/test 配合 npm init playwright@latest 初始化项目。安装完成后务必验证浏览器和 API 是否正常工作,确保环境配置正确。