1、Playwright 是什么
Playwright 是 Microsoft 开源的 Web 自动化测试工具,主打端到端测试。它支持 Chromium、Firefox 和 WebKit,也提供 JavaScript、TypeScript、Python、C# 等语言绑定。对做前端测试的人来说,它最直接的价值不是'功能多',而是把浏览器驱动、等待机制和调试链路都收拢到了一套工具里,少了很多零碎配置。
它的目标很明确:让现代 Web 应用测试别那么脆弱。相较于老一代方案,Playwright 更强调稳定性和可重复性,这也是它这些年被频繁提起的原因。
2、适合用在哪些地方
Playwright 的常见场景其实很集中。
- 回归测试:用脚本验证核心流程,减少人工点点点。
- 响应式页面测试:模拟不同设备、窗口尺寸和网络条件。
- 可访问性检查:结合 ARIA 角色做定位,顺手也能检查无障碍问题。
- 截图、录屏和排障:失败时比单纯看日志直观得多。
- 动态页面采集:对依赖前端渲染的页面,Playwright 比传统请求库更省心。
如果你的页面交互比较复杂,或者页面状态经常受异步请求影响,它比'手写 sleep + 断言'的方案稳不少。
3、它为什么跑得稳
Playwright 的架构不难理解,但它确实解决了几个老问题。
它大致分成三层:
- Client:你的测试代码,Python、JavaScript 都在这一层。
- Server:通常基于 Node.js,负责启动和管理浏览器。
- 通信层:Client 和 Server 之间通过 WebSocket 保持长连接。
它和 Selenium 最大的差别,不只是 API 写法,而是底层通信方式。Playwright 借助 Chrome DevTools Protocol (CDP) 直接和浏览器内核交互,请求和状态反馈都走同一条链路。这样做的好处很实际:命令发得更快,连接也不容易因为中间环节抖一下就断掉。
Selenium 也能做同样的事,但通常要多绕一层 WebDriver,网络往返和连接管理会更重。不是不能用,只是大规模跑起来,Playwright 更顺手。
4、安装和基础配置
Playwright 安装不复杂,至少比单独折腾浏览器驱动轻松得多。
# 1. 安装 Playwright Python 包
pip install playwright
# 2. 安装浏览器二进制文件(Chromium, Firefox, WebKit)
playwright install
# 3. 仅安装特定浏览器(例如只安装 Chromium)
playwright install chromium
如果在国内网络环境里下载慢,可以把 pip 源换成镜像:
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
项目里我还是建议先起虚拟环境,省得后面依赖版本互相踩:
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
pip install playwright
5、同步和异步两种写法
Playwright 同时提供同步 API 和异步 API。写脚本、做小规模验证时,同步版更省脑子;如果你要并发跑多个任务,异步版更合适。
同步模式
from playwright.sync_api import sync_playwright
from time import sleep
sync_playwright() p:
browser = p.chromium.launch(headless=)
page = browser.new_page()
page.goto()
(page.title())
sleep()
browser.close()

