You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Playwright/Selenium获取Chrome生成的完整Accessibility Tree/AOM

解决Playwright提取Accessibility Tree树形结构的问题

默认情况下,page.accessibility.snapshot()会返回扁平化的“关键元素”列表(对应interestingOnly: true的默认配置),只包含交互性或描述性元素,且没有父子层级。要获取和Chrome DevTools中完全一致的树形结构,只需调整调用参数:

修改后的代码示例

const browser = await playwright.chromium.launch({ headless: false });
const context = await browser.newContext();
const page = await context.newPage();

const endpoint = "url";
await page.goto(endpoint);

// 获取完整的带父子结构的Accessibility Tree
const fullAccessibilityTree = await page.accessibility.snapshot({
  interestingOnly: false, // 关闭仅显示关键元素,返回完整树
  // 可选:如果只需要某个根元素下的树,可指定root参数
  // root: await page.locator('#some-root-element').elementHandle()
});

console.log(JSON.stringify(fullAccessibilityTree, null, 2));

参数说明

  • interestingOnly: false:禁用默认的“仅提取关键元素”逻辑,返回包含所有可访问性节点的完整树结构,每个节点会带有children属性,对应其子节点。
  • root(可选):如果不需要整个页面的树,可指定某个DOM元素作为根节点,只提取该节点下的可访问性子树。

验证与Chrome的一致性

Chrome DevTools中的Accessibility Tree展示的是完整层级结构,修改后的代码返回的结果会包含相同的父子关系、角色、名称等属性,和浏览器中的结构完全对齐。

内容的提问来源于stack exchange,提问作者Mustafa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 08:02:41