端到端测试中如何用 Playwright 验证组件的键盘可达性与焦点顺序
围绕“端到端测试中如何用 Playwright 验证组件的键盘可达性与焦点顺序”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 page.keyboard.press('Tab') 结合 toBeFocused 断言焦点路径的做法。
组件与端到端专题面试题第 1 页,显示第 1–42 题,共找到 42 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
围绕“端到端测试中如何用 Playwright 验证组件的键盘可达性与焦点顺序”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 page.keyboard.press('Tab') 结合 toBeFocused 断言焦点路径的做法。
围绕“Testing Library 中 getBy、queryBy、findBy 三类查询在元素不存在时的行为差异是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确三者对缺失元素分别抛错、返回 null、异步等待的差异及各自适用断言场景。
围绕“为什么组件测试推荐用 MSW 拦截请求而不是 mock fetch 或 axios 模块”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 MSW 在网络层拦截、与业务代码解耦且请求行为更真实的优势。
围绕“用 Playwright 集成 axe-core 做可访问性扫描时如何组织断言与违规处理”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 AxeBuilder 扫描指定区域、按违规等级断言及对已知问题的豁免管理。
围绕“Playwright 如何用 storageState 复用登录态避免每个测试都走登录流程”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 setup project 登录一次后序列化 cookie/localStorage 供后续测试注入的模式。
围绕“Playwright Component Testing 与用 Vitest+Testing Library 跑组件”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确真实浏览器渲染与 jsdom 模拟在布局、真实事件、视觉上的能力差异及选型依据。
围绕“为什么 Playwright 视觉快照要按浏览器和操作系统分开存基线,CI 上如何保证一致”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确渲染差异导致快照按项目名分目录及 CI 固定系统镜像或用容器生成基线的做法。
围绕“Playwright 中断言超时、动作超时、测试超时分别由什么配置控制,调大全局超时为何是反模式”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 expect timeout、action timeout、test timeout 的分层配置及用更稳的定位替代盲等。
围绕“Playwright 如何处理浏览器原生 confirm 对话框与文件下载这两类自动化盲区”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 page.on('dialog') 预注册接受与 download 事件等待保存的两套机制。
围绕“Playwright Test 的 fixture 机制相比 beforeEach 全局初始化有哪些可组合性优势”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 fixture 按需惰性创建、自动拆毁、可组合覆盖的优势及自定义 fixture 的写法思路。
围绕“诊断 Playwright 偶发失败(flaky)测试时 trace viewer 提供了哪些关键信息”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确用 trace 的动作快照、网络与控制台时间线定位竞态与等待不足。
围绕“Playwright 推荐的 getByRole、getByLabel、getByText 等定位器各自的适用边界是”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确按用户可见语义优先的定位器选择顺序及 getByTestId 兜底场景。
围绕“Playwright 用 HAR 文件回放网络请求的适用场景与局限是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 HAR 回放适合稳定只读接口、对动态数据与写操作失效的局限。
围绕“Playwright 定位 iframe 与 Shadow DOM 内元素分别需要什么特殊处理”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 frameLocator 进入 iframe、CSS/text 选择器默认穿透 open shadow root 的差异。
围绕“Playwright 的 Locator 相比 CSS 选择器字符串有哪些根本性优势”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 Locator 惰性求值、自动等待与可重试断言带来的稳定性提升。
围绕“用 Playwright 网络拦截模拟接口 500 与超时两种失败时实现方式有何不同”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 500 用 fulfill 状态码、超时用 abort 或延迟结合客户端超时配置的区别。
围绕“Playwright 页面对象模式在大型端到端测试套件中解决了什么问题,如何避免页对象膨胀”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确封装定位器与交互降低重复及按用户任务而非 DOM 结构拆分对象的原则。
围绕“Playwright 的并行 worker 与分片(sharding)机制如何影响测试设计与运行速度”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确文件级并行、测试间无共享状态的前提及 CI 多分片合并报告的做法。
围绕“Playwright 的 retries 重试机制应该如何配置才能既掩盖环境抖动又不掩盖真实缺陷”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确仅 CI 重试、结合 trace 与 testInfo.retry 诊断、禁止用重试掩盖等待缺失的原则。
围绕“Playwright 的 page.route 如何拦截并修改 API 响应,与 route.fulfill、rou”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 fulfill 完全造假响应、continue 放行、fetch 后改包再 fulfill 的三档选择。
围绕“Playwright 中每个测试新建 BrowserContext 的隔离机制是什么,代价与收益如何权衡”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 context 级 cookie/存储隔离保证独立性及共享 context 的风险。
围绕“Playwright 的 toHaveScreenshot 视觉回归测试如何工作,基线图片更新流程是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确像素对比与基线快照机制、--update-snapshots 更新流程及评审要求。
围绕“Playwright 视觉对比因抗锯齿和动画产生抖动时有哪些官方手段降低误报”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 maxDiffPixelRatio 阈值、animations:'disabled'、mask 遮盖动态区域三种手段。
围绕“Playwright 中如何断言某次点击确实触发了预期请求并校验其响应体”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 waitForResponse/waitForRequest 与 click 的 Promise.all 写法避免漏抓。
围绕“Playwright 中 page.waitForSelector 与 expect(locator).toBeVi”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确前者单次等待状态、后者基于轮询的重试断言及推荐用 web-first assertions 的理由。
围绕“用 Testing Library 断言一个元素从出现到消失的完整流程应该怎么写”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确出现用 findBy、消失用 waitForElementToBeRemoved 的组合及常见误用。
围绕“jest-dom 为 Testing Library 提供了哪些 DOM 断言,为什么不用 expect 直接断言属”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 jest-dom 语义化匹配器覆盖可见性、禁用态、属性等的价值。
围绕“为什么 React Testing Library 通常不需要手动调用 cleanup 和 act”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确测试框架 afterEach 自动清理与 render/fireEvent 内部已包裹 act 的机制。
围绕“Testing Library 测试中定位查询失败有哪些官方调试手段”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 screen.debug 输出 DOM、query 失败信息的建议查询提示、Testing Playground 辅助选查询。
围绕“在 Vitest 中用 fake timers 测试防抖或定时 UI 时与 Testing Library 异步查询”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确假时钟与 waitFor 内部定时器冲突及 advanceTimersByTime、shouldAdvanceTime 的处理。
围绕“用 React Testing Library 如何模拟表单输入并断言受控组件的值与校验提示”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 userEvent.type/clear 触发受控 onChange 及校验文案的异步断言。
围绕“Testing Library 查询默认为何查不到 display:none 的元素,如何用 hidden 选项改变”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确默认按可访问性过滤隐藏元素及 byRole 的 hidden:true 例外用法。
围绕“Testing Library 中 getAllBy 返回数组后如何对列表内容做稳定断言”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确用 getAllByRole 结合文本内容断言数量与条目、避免依赖 DOM 顺序以外的脆弱选择。
围绕“Testing Library 查询方法的优先级顺序是什么,为什么 getByRole 应优先于 getByTest”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确按可访问性贴近用户程度的优先级排序理由。
围绕“用 React Testing Library 测试依赖路由参数的组件时如何注入路由上下文与初始路径”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 MemoryRouter initialEntries 提供路径与参数、不依赖浏览器 history 的做法。
围绕“Testing Library 的 getByRole 如何通过可访问名称区分同名按钮,name 选项依据什么计算”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确可访问名称由 aria-label、关联 label、文本内容按规范计算并可用 name 过滤。
围绕“Testing Library 中为什么推荐用 screen 查询而不是解构 render 的返回值”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 screen 避免 container 引用过期、减少 render 返回项扩散的理由。
围绕“Testing Library 文本匹配中字符串、正则、函数三种 matcher 的匹配行为差异与大小写处理”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确默认整串精确匹配、正则部分匹配、函数自定义谓词的差异及 exact 参数作用。
围绕“React Testing Library 中 userEvent 与 fireEvent 的区别是什么,为什么官方”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 userEvent 模拟完整用户交互序列(hover、focus、逐字符输入)而 fireEvent 只派发单个事件。
围绕“Testing Library 的 waitFor 何时使用,它与 findBy 查询的重试机制有什么重叠与分工”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确对非查询类断言的轮询重试用 waitFor、查找元素用 findBy 的分工。
围绕“Testing Library 的 within 在什么场景比全局 screen 查询更可靠”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确将查询限定在某个容器子树内以避免重复元素冲突的场景与写法。
围绕“Vitest 中 jsdom 与 happy-dom 环境的选择依据是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 jsdom 兼容性更全、happy-dom 更快的取舍及切换配置方式。