给 AI Agent 提供页面感知时,为什么优先用可访问性树(accessibility tree)快照而不是原始 HTML DOM 或截图?
给 AI Agent 提供页面感知时,为什么优先用可访问性树(accessibility tree)快照而不是原始 HTML DOM 或截图? 本文先给出可直接复述的结论,再用最小代码说明AI Agent 页面感知 accessibility tree 快照对比 DOM的工作方式、判断依据、项目边界和常见误区。
程序员面试题库第 1 页,收录第 1–50 题,共 5000 道完整解析,覆盖前端、JavaScript、React、Vue、Node.js、AI Agent、网络、数据库与系统设计。
按稳定语义路径排序
给 AI Agent 提供页面感知时,为什么优先用可访问性树(accessibility tree)快照而不是原始 HTML DOM 或截图? 本文先给出可直接复述的结论,再用最小代码说明AI Agent 页面感知 accessibility tree 快照对比 DOM的工作方式、判断依据、项目边界和常见误区。
定位器依赖 accessible name 时,浏览器如何计算元素的可访问名称,多个命名来源冲突时哪个生效? 本文先给出可直接复述的结论,再用最小代码说明accessible name 计算 aria-label aria-labelledby 优先级的工作方式、判断依据、项目边界和常见误区。
aria-hidden="true" 与 display:none 对基于可访问性树的 Agent 感知有什么本质区别,各会漏掉什么? 本文先给出可直接复述的结论,再用最小代码说明aria-hidden 与 display none 可访问性树区别的工作方式、判断依据、项目边界和常见误区。
Playwright 执行 click 前的自动等待检查哪些可行动性(actionability)条件,各自拦截什么故障? 本文先给出可直接复述的结论,再用最小代码说明Playwright click 自动等待 actionability 检查的工作方式、判断依据、项目边界和常见误区。
Agent 遇到验证码或人机验证时,应如何检测并把控制权交还人类而不是尝试绕过? 本文先给出可直接复述的结论,再用最小代码说明验证码检测 人工接管浏览器 Agent的工作方式、判断依据、项目边界和常见误区。
Playwright 的 check 与 setChecked 如何保证勾选操作的幂等性,为什么比直接 click 更适合 Agent 重试? 本文先给出可直接复述的结论,再用最小代码说明Playwright check setChecked 幂等勾选的工作方式、判断依据、项目边界和常见误区。
面对一个登录表单,Playwright 的 getByLabel、getByPlaceholder、getByText 之间应如何按优先级选择? 本文先给出可直接复述的结论,再用最小代码说明Playwright getByLabel getByPlaceholder getByText 选择的工作方式、判断依据、项目边界和常见误区。
Cookie 同意横幅遮挡交互元素时,Agent 应把它作为一次性前置清除步骤还是每步防御性处理? 本文先给出可直接复述的结论,再用最小代码说明cookie 同意横幅遮挡交互处理策略的工作方式、判断依据、项目边界和常见误区。
Playwright 的 alert/confirm 对话框默认自动 dismiss,为什么必须在触发动作之前注册 page.on('dialog')? 本文先给出可直接复述的结论,再用最小代码说明Playwright dialog 事件须提前注册原因的工作方式、判断依据、项目边界和常见误区。
Playwright 的 dragTo 与手动 mouse.down/move/up 分步拖拽在目标页面上效果不同,如何诊断选择? 本文先给出可直接复述的结论,再用最小代码说明Playwright dragTo 与手动 mouse 分步拖拽对比的工作方式、判断依据、项目边界和常见误区。
Playwright 元素级截图(locator.screenshot)在流程确认中比整页截图多提供什么诊断价值? 本文先给出可直接复述的结论,再用最小代码说明Playwright 元素级截图流程确认价值的工作方式、判断依据、项目边界和常见误区。
toast 提示转瞬即逝,Agent 如何捕获并验证这类临时反馈而不引入固定等待? 本文先给出可直接复述的结论,再用最小代码说明Playwright 捕获瞬时 toast 反馈断言的工作方式、判断依据、项目边界和常见误区。
页面上没有可见 file input(只有拖拽区或按钮)时,Playwright 如何用 filechooser 事件完成上传? 本文先给出可直接复述的结论,再用最小代码说明Playwright filechooser 无 input 元素文件上传的工作方式、判断依据、项目边界和常见误区。
Playwright 的 fill 与逐键输入(pressSequentially)对带输入监听的前端组件行为差异是什么? 本文先给出可直接复述的结论,再用最小代码说明Playwright fill 与 pressSequentially 输入事件差异的工作方式、判断依据、项目边界和常见误区。
Playwright 的 force click 跳过可行动性检查能绕过什么、又会掩盖什么真实缺陷? 本文先给出可直接复述的结论,再用最小代码说明Playwright force click 跳过检查的风险的工作方式、判断依据、项目边界和常见误区。
Playwright 中为什么官方推荐 getByRole 定位器优先于 CSS/XPath 选择器? 本文先给出可直接复述的结论,再用最小代码说明Playwright getByRole 优先于 CSS XPath 原因的工作方式、判断依据、项目边界和常见误区。
hover 才出现的菜单或提示层,Agent 应如何保证悬停后子项可点击而不移出触发区? 本文先给出可直接复述的结论,再用最小代码说明Playwright hover 菜单提示层稳定点击的工作方式、判断依据、项目边界和常见误区。
Playwright 的 frameLocator 如何定位 iframe 内元素,跨域 iframe 会带来哪些额外限制? 本文先给出可直接复述的结论,再用最小代码说明Playwright frameLocator 跨域 iframe 限制的工作方式、判断依据、项目边界和常见误区。
在无限滚动列表中枚举全部条目时,Agent 如何判定『已到底』且不因去重不当漏项? 本文先给出可直接复述的结论,再用最小代码说明无限滚动列表枚举到底判断与去重的工作方式、判断依据、项目边界和常见误区。
只用键盘事件(Tab、Enter、快捷键)驱动表单流程时,Agent 需要验证什么才能确认焦点轨迹正确? 本文先给出可直接复述的结论,再用最小代码说明Playwright 键盘 Tab 焦点轨迹验证的工作方式、判断依据、项目边界和常见误区。
Playwright 的 waitForLoadState 中 domcontentloaded、load、networkidle 三个状态对 SPA 各意味着什么? 本文先给出可直接复述的结论,再用最小代码说明Playwright waitForLoadState 三种状态对 SPA 区别的工作方式、判断依据、项目边界和常见误区。
Playwright 的 locator.filter(has/hasText)适合解决哪类『结构相同但内容不同』的定位难题? 本文先给出可直接复述的结论,再用最小代码说明Playwright locator.filter has hasText 消歧的工作方式、判断依据、项目边界和常见误区。
原生 select 用 selectOption,而自绘下拉框必须点开再选项——Agent 如何区分并分别自动化? 本文先给出可直接复述的结论,再用最小代码说明Playwright selectOption 与自绘下拉框自动化的工作方式、判断依据、项目边界和常见误区。
为什么在轮询或长连接页面上等待 networkidle 会卡死,Agent 应改用什么就绪信号? 本文先给出可直接复述的结论,再用最小代码说明networkidle 卡死 轮询长连接替代等待信号的工作方式、判断依据、项目边界和常见误区。
点击链接触发 window.open 新标签页时,Playwright 中 Agent 如何捕获并切换到该弹窗页面? 本文先给出可直接复述的结论,再用最小代码说明Playwright 捕获切换 window.open 新标签页的工作方式、判断依据、项目边界和常见误区。
Agent 点击『提交』后,应等待哪一类可观察证据来确认动作生效,而不是直接执行下一步? 本文先给出可直接复述的结论,再用最小代码说明Agent 操作后等待可观察证据确认生效的工作方式、判断依据、项目边界和常见误区。
Playwright 截图的 fullPage 与视口截图在固定定位元素、懒加载内容上各有什么失真风险? 本文先给出可直接复述的结论,再用最小代码说明Playwright fullPage 与视口截图失真风险的工作方式、判断依据、项目边界和常见误区。
为多模态 Agent 选择观察方式时,什么任务截图优于可访问性树,什么任务反之? 本文先给出可直接复述的结论,再用最小代码说明多模态 Agent 截图与可访问性树观察方式选择的工作方式、判断依据、项目边界和常见误区。
元素在视口外导致交互失败时,Playwright 的 scrollIntoViewIfNeeded 与鼠标滚轮模拟滚动各适合什么场景? 本文先给出可直接复述的结论,再用最小代码说明Playwright scrollIntoViewIfNeeded 与滚轮滚动场景的工作方式、判断依据、项目边界和常见误区。
Playwright 定位器默认穿透开放 shadow DOM,闭合 shadow root 时 Agent 的感知和操作会丢失什么? 本文先给出可直接复述的结论,再用最小代码说明Playwright 穿透 shadow DOM 闭合 shadow root的工作方式、判断依据、项目边界和常见误区。
SPA 客户端路由切换不触发整页导航时,Agent 如何可靠检测『页面已经跳转完成』? 本文先给出可直接复述的结论,再用最小代码说明SPA 前端路由跳转完成检测 Playwright waitForURL的工作方式、判断依据、项目边界和常见误区。
Agent 多步流程中元素句柄因 DOM 重渲染失效(detached),为什么官方建议每次重新定位而非缓存 ElementHandle? 本文先给出可直接复述的结论,再用最小代码说明Playwright ElementHandle 失效 重新定位的工作方式、判断依据、项目边界和常见误区。
为什么浏览器 Agent 的每个步骤应尽量设计为幂等,对不可幂等的操作(如下单)怎么办? 本文先给出可直接复述的结论,再用最小代码说明浏览器 Agent 步骤幂等设计与安全重试的工作方式、判断依据、项目边界和常见误区。
Playwright 的 storageState 如何让 Agent 跳过重复登录,复用认证状态有哪些失效风险? 本文先给出可直接复述的结论,再用最小代码说明Playwright storageState 登录态复用失效风险的工作方式、判断依据、项目边界和常见误区。
什么时候应该推动在页面中注入 data-testid 并用 getByTestId,而不是继续强化语义定位? 本文先给出可直接复述的结论,再用最小代码说明Playwright getByTestId data-testid 使用场景的工作方式、判断依据、项目边界和常见误区。
多步浏览器流程的总超时预算应如何在各步骤间分配,避免单步耗尽预算或整体死等? 本文先给出可直接复述的结论,再用最小代码说明多步浏览器流程超时预算分配的工作方式、判断依据、项目边界和常见误区。
流程中途弹出预期外的模态框(促销、会话超时提醒)时,Agent 应设计怎样的中断检测与恢复机制? 本文先给出可直接复述的结论,再用最小代码说明意外模态框中断检测与恢复机制的工作方式、判断依据、项目边界和常见误区。
用截图基线比对(visual diff)作为 Agent 的操作确认手段时,动态内容导致的误报应如何收敛? 本文先给出可直接复述的结论,再用最小代码说明截图基线比对动态内容误报收敛的工作方式、判断依据、项目边界和常见误区。
Playwright waitForSelector 的 attached 与 visible 状态有何区别,等待『消失』该用哪个状态? 本文先给出可直接复述的结论,再用最小代码说明Playwright waitForSelector attached visible 状态区别的工作方式、判断依据、项目边界和常见误区。
在没有语义属性的遗留页面上,用 CSS 还是 XPath 兜底定位,各自在 DOM 变动下的断裂模式是什么? 本文先给出可直接复述的结论,再用最小代码说明CSS与XPath兜底定位抗DOM变动对比的工作方式、判断依据、项目边界和常见误区。
区分补丁应用、文件可见性、Git 提交和线上发布四种边界,解释隔离工作区、预检查、依赖顺序与失败后的范围化恢复。
为什么需要为 Agent 的每次工具调用、补丁与测试结果保留完整审计日志,记录哪些字段? 本文先给出可直接复述的结论,再用最小代码说明Agent 工具调用与补丁审计日志字段的工作方式、判断依据、项目边界和常见误区。
长任务中 Agent 执行到一半被预算或超时打断,应如何设计检查点以便从中断处恢复? 本文先给出可直接复述的结论,再用最小代码说明Agent 长任务中断检查点恢复设计的工作方式、判断依据、项目边界和常见误区。
围绕已知错误码与模糊业务描述比较文本搜索和语义召回,解释搜索范围、索引新鲜度、符号关系以及修改前重新读取原文件。
当仓库相关代码超过模型上下文窗口时,编码 Agent 应如何分配有限的上下文预算? 本文先给出可直接复述的结论,再用最小代码说明编码 Agent 上下文窗口预算分配的工作方式、判断依据、项目边界和常见误区。
Agent 在“再跑一次全量测试”和“只跑失败用例”之间应如何做成本感知的选择? 本文先给出可直接复述的结论,再用最小代码说明Agent 成本感知的测试重跑选择的工作方式、判断依据、项目边界和常见误区。
当 Agent 为修复 bug 引入新依赖而与现有锁文件冲突时,应遵循什么决策顺序? 本文先给出可直接复述的结论,再用最小代码说明Agent 依赖版本冲突与锁文件处理顺序的工作方式、判断依据、项目边界和常见误区。
如何用声明式的环境定义保证 Agent 的构建与测试在任何机器上可复现? 本文先给出可直接复述的结论,再用最小代码说明Dockerfile 保证 Agent 构建测试环境可复现的工作方式、判断依据、项目边界和常见误区。
编码 Agent 用搜索替换、行号、diff 还是整文件重写,怎样选择? 本文先给出可直接复述的结论,再用最小代码说明编码 Agent 编辑格式搜索替换行号 diff 整文件重写的工作方式、判断依据、项目边界和常见误区。
为什么 Agent 的每次任务执行环境应当是临时的、用完即销毁的? 本文先给出可直接复述的结论,再用最小代码说明Agent 临时执行环境用完即销毁的工作方式、判断依据、项目边界和常见误区。