SuperAPI AI 工具集

web-browser-automation

测试与质量

查看项目

更新于 10-16 04:04

技能介绍

概述

本技能是一份 macOS 桌面端网页浏览器自动化指南,聚焦自动化(而非测试)场景,覆盖四种主流自动化框架,并提供面向真实场景的实践示例。

主要工具与用途

  • PyXA:macOS 原生 Python 封装,可直接与浏览器集成,支持直接操作系统级功能与 Arc 空间。
  • Playwright:跨平台框架,提供 Python 绑定,适用于现代网页自动化。
  • Selenium:行业标准自动化方案,集成 ChromeDriver。
  • Puppeteer:Node.js 框架,用于 Chrome/Chromium 自动化。

工具选择指南

工具 主要用途 关键优势
PyXA macOS 原生控制 直接系统集成、Arc 空间
Playwright 跨浏览器测试 自动等待、移动端模拟
Selenium 遗留企业场景 生态成熟、语言支持广泛
Puppeteer 无头 Chrome 执行快速、PDF 生成

详细的浏览器支持情况参见 references/browser-compatibility-matrix.md。

快速开始

  1. 根据需求选择框架(见上方工具选择指南)。
  2. 为所选框架安装依赖。
  3. 阅读下方对应的框架专属指南。
  4. 查看工作流了解常见自动化模式。

各框架安装与指南

  • PyXA 浏览器集成:适合 macOS 原生浏览器控制并支持 Arc 空间;安装命令 pip install PyXA;指南 references/pyxa-integration.md。若使用 PyXA 示例,安装说明参见 automating-mac-apps 技能中的 PyXA 安装部分。
  • Playwright:适合带自动等待的跨浏览器测试;安装命令 pip install playwright && playwright install;指南 references/playwright-automation.md。
  • Selenium WebDriver:适合遗留企业自动化;安装命令 pip install selenium;指南 references/selenium-webdriver.md。
  • Puppeteer Node.js:适合无头 Chrome 与 PDF 生成;安装命令 npm install puppeteer;指南 references/puppeteer-automation.md。

自动化工作流

  • 工作流 1:多浏览器标签管理(references/workflows.md#workflow-1-multi-browser-tab-management)
  • 工作流 2:自动化研究与数据收集(references/workflows.md#workflow-2-automated-research-and-data-collection)
  • 工作流 3:跨浏览器测试套件(references/workflows.md#workflow-3-cross-browser-testing-suite)
  • 工作流 4:网页抓取与数据提取(references/workflows.md#workflow-4-web-scraping-and-data-extraction)

简短自动化模式

浏览器启动与配置文件管理(PyXA 方式,以 Chrome 为例)

chrome = PyXA.Application("Google Chrome")
chrome.new_window("https://example.com")

标签组织与分组(PyXA 标签过滤)

tabs = chrome.windows()[0].tabs()
work_tabs = [tab for tab in tabs if "meeting" in tab.title().lower()]
for tab in work_tabs:
    tab.close()

JavaScript 注入用于内容提取(PyXA JavaScript 执行)

content = tab.execute_javascript("document.body.innerText")
links = tab.execute_javascript("Array.from(document.querySelectorAll('a')).map(a => a.href)")

跨浏览器同步(PyXA 多浏览器控制)

browsers = [PyXA.Application("Google Chrome"), PyXA.Application("Microsoft Edge")]
for browser in browsers:
    browser.new_tab("https://shared-resource.com")

表单填写与交互(Playwright 自动等待)

page.fill("#username", "user@example.com")
page.click("text=Submit")  # Auto-waits for element

截图与内容捕获(Puppeteer)

await page.screenshot({ path: 'capture.png', fullPage: true });
await page.pdf({ path: 'page.pdf', format: 'A4' });

Playwright 快速入门

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch()
    page = browser.new_page()
    page.goto("https://example.com")
    page.click("text=Get Started")  # Auto-waits for element
    page.fill("#search-input", "automation")
    browser.close()

Playwright 高级特性(上下文、视口、动态内容)参见 references/playwright-automation.md。

高级技术

  • 网络拦截:references/playwright-automation.md#network-interception
  • 并行浏览器自动化:references/selenium-webdriver.md#parallel-testing
  • 性能监控:references/puppeteer-automation.md#performance-monitoring
  • 浏览器上下文管理:references/selenium-webdriver.md#browser-contexts-and-pages

验证清单

实现浏览器自动化后:

  • 验证浏览器启动无错误;
  • 确认页面导航成功完成;
  • 测试元素选择器能否定位到预期元素;
  • 校验提取的数据与页面内容一致;
  • 检查截图/PDF 是否正确生成;
  • 对 PyXA,验证 macOS 权限已授予。

故障排查

  • 元素未找到错误:跨框架的常见解决方案。
  • 陈旧的元素引用:处理动态内容。
  • 浏览器检测:规避自动化检测。
  • 网络超时问题:超时配置。

安全注意事项

  • 凭证管理:安全存储登录凭证。
  • 证书处理:SSL/TLS 证书验证。
  • 沙箱与隔离:在隔离环境中运行自动化。
  • 数据清洗:清理提取的数据。

性能优化

  • 浏览器配置:禁用不必要功能。
  • 网络优化:拦截不需要的资源。
  • 并行执行:并发运行测试。
  • 资源池化:高效管理浏览器实例。

不适用场景

  • 移动端浏览器自动化(应使用 Appium 或原生测试框架)。
  • 仅 Windows/Linux 的环境(部分 PyXA 功能仅限 macOS)。
  • 需要破解验证码时(应使用专门服务)。
  • 不遵守 robots.txt 的生产环境抓取。

应加载的参考资料

  • PyXA:references/pyxa-integration.md(macOS 原生浏览器控制)
  • Playwright:references/playwright-automation.md(跨浏览器测试)
  • Selenium:references/selenium-webdriver.md(企业自动化)
  • Puppeteer:references/puppeteer-automation.md(Node.js Chrome 自动化)
  • 工作流:references/workflows.md(完整自动化场景)