高级|浏览器自动化:snapshot / refs / act 最佳实践(SOP)
目标:让网页自动化更稳定——页面小改动也不容易挂。
适用场景
- 需要登录
- 需要点按钮/填表/下载文件
- 内容是 SPA 动态加载(
web_fetch抓不到)
不适用:
- 页面无需交互、内容在静态 HTML 中(优先
web_fetch)
前置条件
- 你能打开目标网页(网络可达)
- 如果需要登录:你愿意提供账号信息(建议最小权限/临时口令)
稳定自动化的标准套路(强烈推荐)
- 打开页面(必要时)
browser.snapshot(refs="aria")- 选择稳定 ref(按钮/输入框/列表区域)
browser.act(kind=click/type/select)执行动作- 再
snapshot或screenshot做验收
关键点:每做一次关键动作,就做一次 snapshot/screenshot 验证。
避免的反模式(最常见翻车点)
- 只靠坐标点击:页面滚动/布局变化就点歪
- 频繁
act:wait:等不来就卡死 - 不做中间验收:失败了不知道卡在哪一步
排错 SOP(点不到/找不到 ref 时怎么做)
1) ref 找不到
- 重新
snapshot(refs="aria"),不要复用旧 ref - 优先用 aria ref(比 role/name 更稳)
2) 页面元素在滚动后才出现
- 先定位滚动容器(列表区域)
- 用滚动/翻页动作,再 snapshot
3) 登录后页面结构变化
- 登录成功后立刻 snapshot 一次
- 后续 ref 全部以“登录后 snapshot”为准
最小示例(你怎么说)
打开某网页,登录后把“订单列表前 20 条”抓出来,输出字段:标题、链接、日期。抓完后截图确认。
小艺会按:open → snapshot(aria) → act(登录) → snapshot → act(抓取/滚动) → 输出表格 → screenshot。