📦 Playwright CLI — Playwright 命令行
v1.0.0Playwright 命令行自动化工具。
运行时依赖
版本
Initial release, support full Microsoft Playwright CLI web automation operations, including page navigation, element interaction, screenshot, PDF generation, operation recording and other functions
安装命令
点击复制技能文档
Playwright CLI是微软官方的浏览器自动化工具,支持Chromium、Firefox、WebKit三大主流浏览器,提供强大的网页自动化能力。
安装步骤
1. 安装Playwright CLI
npm install -g @playwright/test
# 或者
pip install playwright
2. 安装浏览器
playwright install
# 仅安装特定浏览器
playwright install chromium firefox
# 安装系统依赖(Linux环境)
playwright install-deps
核心常用命令
页面操作
# 打开指定网页
playwright open https://example.com# 无头模式打开网页并截图
playwright screenshot https://example.com example.png
# 全屏截图
playwright screenshot https://example.com --full-page full.png
# 指定视口大小
playwright screenshot https://example.com --viewport-size=1920,1080 desktop.png
# 生成PDF
playwright pdf https://example.com example.pdf
# 自定义PDF格式
playwright pdf https://example.com --format=A4 --landscape report.pdf
录制用户操作
# 录制用户操作并生成代码
playwright codegen https://example.com
# 保存录制结果到文件
playwright codegen https://example.com --output script.py
# 生成指定语言的代码(python, javascript, java, csharp)
playwright codegen https://example.com --target python
测试相关
# 运行测试
playwright test
# 运行特定测试文件
playwright test tests/example.spec.js
# 有头模式运行测试(显示浏览器界面)
playwright test --headed
# 调试模式运行
playwright test --debug
# 生成测试报告
playwright show-report
浏览器管理
# 列出已安装的浏览器
playwright list-browsers
# 更新浏览器到最新版本
playwright install --force
# 卸载浏览器
playwright uninstall chromium
使用示例
示例1:批量截图多个网页
# 对多个网页进行全屏截图
for url in "https://google.com" "https://github.com" "https://stackoverflow.com"; do
name=$(echo $url | sed 's/https\?:\/\///' | sed 's/\//_/g')
playwright screenshot $url --full-page "${name}.png"
done
示例2:自动填写表单
# 录制生成的自动登录脚本示例
from playwright.sync_api import Playwright, sync_playwright, expectdef run(playwright: Playwright) -> None:
browser = playwright.chromium.launch(headless=False)
context = browser.new_context()
page = context.new_page()
page.goto("https://example.com/login")
page.get_by_label("用户名").fill("your_username")
page.get_by_label("密码").fill("your_password")
page.get_by_role("button", name="登录").click()
# 截图登录后的页面
page.screenshot(path="logged_in.png")
context.close()
browser.close()
with sync_playwright() as playwright:
run(playwright)
示例3:模拟移动端访问
# 模拟iPhone 14访问网页并截图
playwright screenshot https://example.com --device="iPhone 14" mobile.png
# 模拟安卓设备
playwright screenshot https://example.com --device="Galaxy S23" android.png
最佳实践
- 优先使用无头模式执行自动化任务,性能更高
- 复杂操作优先使用
codegen录制生成代码,再手动调整 - 执行长时间任务时添加
--slowmo=1000参数减慢操作速度,避免被反爬 - 保存登录状态使用
--保存-storage=auth.json,下次可以直接--加载-storage=auth.json跳过登录 - 网络不稳定时添加
--超时=60000延长超时时间