SuperAPI AI 工具集

playwright-automation

测试与质量

查看项目

更新于 10-15 11:27

技能介绍

用途

Playwright 浏览器自动化用于模拟真实用户操作,适用于自动化爬虫、数据采集、表单填写、UI 测试等需要浏览器自动化的场景。它无需人工干预,完全自动,适合定时任务(cron)和生产环境部署。

主要能力

  • 无头浏览器模式(后台运行)
  • 数据采集和爬虫
  • 表单自动填写
  • UI 自动化测试
  • 截图和 PDF 生成

与 browser tool 的区别:browser tool 需要手动打开浏览器、需要用户参与、不适合定时任务;Playwright 完全自动、适合定时任务、可后台运行,但需要安装,调试需依赖日志。

安装

# 安装 Python 包
pip install playwright

# 安装浏览器(Chromium)
playwright install chromium

# 验证安装
python3 -c "from playwright.sync_api import sync_playwright; print('✅ 安装成功')"

使用方式

基本使用

同步 API(简单任务):

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(headless=True)  # headless=False 显示浏览器
    page = browser.new_page()
    page.goto('https://example.com')
    print(page.title())
    browser.close()

异步 API(推荐,性能更好):

import asyncio
from playwright.async_api import async_playwright

async def main():
    async with async_playwright() as p:
        browser = await p.chromium.launch(headless=True)
        page = await browser.new_page()
        await page.goto('https://example.com')
        title = await page.title()
        print(title)
        await browser.close()

asyncio.run(main())

常用功能

页面导航、元素定位(CSS、XPath、文本、组合选择器)、提取数据、表单操作、等待策略、滚动和交互、截图和 PDF、处理弹窗,均有对应代码示例。

反爬策略

User-Agent 轮换、随机延迟、Cookie 保存和加载、代理设置、浏览器上下文隔离。

调试技巧

显示浏览器(headless=False、slow_mo)、截图调试、查看日志(console、request、response)、Playwright Inspector(PWDEBUG=1)。

资源清理原则(强制)

所有涉及浏览器的 cron 任务完成后,必须自动关闭 Chrome/Chromium 进程:

import subprocess

# 方式1: 显式关闭浏览器
await browser.close()
await context.close()

# 方式2: 强制清理残留进程(推荐在脚本结束时调用)
subprocess.run(['pkill', '-f', 'chrome'], capture_output=True)
subprocess.run(['pkill', '-f', 'chromium'], capture_output=True)

原因:避免内存泄漏和资源占用,防止 Gateway CPU 100% 过载。

适用场景

使用 Playwright:定时监控(cron 任务)、大规模数据采集、无人值守运行、生产环境部署。

使用 browser tool:交互式调试、需要人工决策的操作、一次性任务、绕过复杂验证码。

限制与常见问题

  • 验证码:可使用打码平台、手动处理(暂停等待用户输入)、降级用 browser tool 让用户手动操作。
  • 元素找不到:检查是否在 iframe 中(需要切换)、是否动态加载(需要等待)、选择器是否正确。
  • 提高性能:使用异步 API、并发多个页面、减少不必要的等待。

与 OpenClaw 集成

可在 healthcare-monitor 中使用,与 browser tool 配合:Playwright 用于日常自动监控,browser tool 用于调试和异常处理。

资源

  • 官方文档: https://playwright.dev/python/
  • API 参考: https://playwright.dev/python/docs/api/class-playwright
  • 示例代码: ~/clawd/skills/playwright-automation/examples/

快速命令

# 安装
pip install playwright && playwright install chromium

# 运行脚本
python3 script.py

# 调试模式
PWDEBUG=1 python3 script.py

# 查看版本
playwright --version