用途:Playwright 是微软的现代自动化库,用于现代 Web 应用的可靠端到端测试,覆盖 Chromium、WebKit(Safari)与 Firefox 的跨浏览器场景。适合多标签页与多源测试(弹窗、支付网关)、移动端模拟与地理位置、网络限速,以及在 UI 测试中直接发送 REST 与 GraphQL 请求。
主要能力:自动等待元素挂载、可见、稳定并接收事件后再点击;提供面向用户的定位器(getByRole、getByText、getByLabel)与 Web-First 断言(如 await expect(locator).toBeVisible(),失败自动重试);支持网络拦截与模拟响应、HAR 回放;Trace Viewer 记录 DOM 快照、控制台日志、网络瀑布与操作视频,便于事后调试。
使用方式:安装 @playwright/test 后编写测试,例如 import { test, expect } from "@playwright/test"; 使用 page.goto、getByRole().click() 与 expect(page).toHaveURL()。记录追踪:npx playwright test --trace on-first-retry;查看追踪:npx playwright show-trace trace.zip;调试:npx playwright test --debug。可用 Page Object Model 封装选择器与操作,并用 storageState 复用登录状态。
限制与注意:避免使用 page.waitForTimeout(5000) 等静态等待,避免依赖易碎的 XPath;测试间不要共享状态,应使用独立 BrowserContext。常见问题包括超时(用 Inspector 检查选择器)、容器共享内存不足(--shm-size=2gb 或 chromiumSandbox: false)、严格模式匹配多个元素(用 .first() 或更具体定位器)。