Agent Skills
返回列表
💻

Puppeteer 浏览器自动化库

开发编程 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/puppeteer-browser-automation-library。

技能介绍

解决的工程痛点

网页自动化场景中,开发者常面临三类难题:一是DOM结构动态变化导致的元素定位失效,比如懒加载组件未渲染完成就执行点击操作;二是跨浏览器兼容性差异,同一套脚本在Chrome下正常,在Firefox中却因选择器支持不同而报错;三是异步操作的时序问题,网络请求未完成就提交表单,或滚动未结束就提取数据,最终得到空结果。这些问题会让自动化脚本稳定性骤降,调试成本远超手动操作的时间。

技能的核心工作逻辑

1. 统一浏览器控制接口

封装Puppeteer原生的浏览器实例管理方法,通过browserType.launch启动指定内核(Chrome/Firefox),并提供browser.newPage创建独立标签页,避免多任务间的上下文污染。对于需要隔离的测试场景,可调用browser.createIncognitoBrowserContext生成隐私上下文,确保Cookie和缓存互不干扰。

2. 精准的页面交互能力

针对元素交互提供了增强型API:使用page.waitForSelector等待目标元素渲染完成,支持visible、attached两种状态判断;通过elementHandle.click定位元素并触发真实鼠标事件,避免因display: none或pointer-events: none导致的点击无效;对于表单输入,page.type会自动处理键盘事件,并支持delay参数模拟真实输入速度。

3. 可调试的执行链路

所有操作步骤都保留中间状态,可通过page.screenshot截取关键页面快照,或用page.content导出渲染后的HTML,方便定位脚本执行失败的位置。遇到网络请求阻塞时,调用page.setRequestInterception拦截特定接口,模拟超时或错误响应,验证页面的容错逻辑。

适用边界与注意事项

  • 不适合处理包含动态验证码的场景,这类人机验证需要额外集成OCR或打码平台;
  • 对于依赖WebSocket实时通信的单页应用,需自行实现消息监听逻辑,技能不提供现成的事件订阅接口;
  • 跨域请求时需在启动参数中添加--disable-web-security,否则会被浏览器的同源策略拦截;
  • 建议在CI/CD环境中固定浏览器版本,避免因内核自动更新导致测试结果不一致。

使用场景

  • 自动化测试工程师需要用同一套脚本在 Chrome 和 Firefox 上回归登录、下单等交互流程。
  • 后端工程师要抓取依赖 JS 渲染的列表页数据,并在脚本里等待元素可见后再提取文本。
  • 前端工程师要通过截图、拦截请求和复用页面上下文,定位异步加载或表单提交失败的页面问题。
  • 运维工程师要为基于 Puppeteer 的 MCP 服务维护浏览器自动化与调试流程。

适合人员

  • 负责回归测试的自动化测试工程师,需要稳定控制 Chrome/Firefox 并复现页面交互。
  • 负责数据同步或采集的后端工程师,需要按页面结构提取 JS 渲染后的列表数据。
  • 排查页面异步问题的前端工程师,需要截图、拦截请求并复现用户操作。
  • 维护 Puppeteer MCP 服务的运维工程师,需要快速查阅浏览器控制 API 和上游文档。