DOM 感知与无障碍树
DOM Awareness & Accessibility Tree
构建混合 DOM+a11y 快照为 LLM 提供结构化页面理解,支持差异比对和深度定位
子问题
1.混合树快照捕获
2.页面变化差异检测
3.Shadow DOM 穿透
4.iframe 深度 XPath 解析
5.CBOR 栈溢出的自适应深度降级与截断分支补全
6.OOPIF 跨进程 iframe 的 CDP Session 路由
7.a11y 树结构性节点裁剪与冗余文本去除
8.Scoped 快速路径避免全页快照开销
各项目的解法1 solutions
Signals
横向对比
| 维度 | Stagehand |
|---|---|
| 快照架构 | 5 步管道:Scoped→SessionIndex→PerFrame→Prefix→Merge |
| 树模型 | DOM 树 + a11y 树双树融合,encodedId 桥接 |
| iframe 处理 | XPath 步骤解析 + CSS >> 分隔符,BFS 计算绝对前缀 |
| Shadow DOM | DOM.getDocument pierce=true + joinXPath // 标记穿透 |
| 深层 DOM 容错 | 10 级指数深度降级 + hydrateDomTree 逐节点补全 |
| 差异检测 | 行级 Set 差集,避免复杂树 diff 算法 |
| 性能优化 | Session 级 DOM Index 缓存 + focusSelector Scoped 快速路径 |
最佳实践
1.同时捕获 a11y 树和 DOM 树提供互补信息
2.用 frameOrdinal-backendNodeId 编码 ID 桥接 DOM 和 a11y 两棵树
3.Session 级 DOM Index 一次构建多 frame 复用减少 CDP 调用
4.focusSelector 命中时走 Scoped 快速路径跳过全页扫描
5.行级 Set 差集做树 diff 比结构化 diff 更简单高效