SuperAPI AI 工具集

webapp-testing

测试与质量

查看项目

更新于 10-15 12:18

技能介绍

用途

该技能提供一份完整的 Playwright 自动化模式、选择器与最佳实践参考,用于指导 Web 应用测试的编写。内容以代码示例组织,覆盖从元素定位到测试执行、调试的完整流程。

主要能力

选择器

文档按稳定性给出优先级建议:data-testid 属性最稳定,其次是 role= 语义选择器,然后是 text= 文本选择器、id 属性、CSS 类,XPath 最脆弱、应尽量避免。具体支持:

  • 文本选择器:page.click('text=Login')、精确匹配 text="Sign Up"、正则 text=/log.*in/i
  • 角色选择器:role=button[name="Submit"]、role=textbox[name="Email"]、role=link、role=checkbox
  • CSS 选择器:#submit-button、.email-input、button.primary、nav > ul > li:first-child
  • XPath:xpath=//button[contains(text(), "Submit")]
  • data 属性:[data-testid="submit-btn"]、[data-test="email-input"]
  • 链式选择器:page.locator('div.modal').locator('button.submit').click()

等待策略

  • 加载状态等待:wait_for_load_state('networkidle')、'domcontentloaded'、'load'
  • 元素等待:wait_for_selector(..., state='visible'/'hidden'/'attached'/'detached')
  • 超时等待:wait_for_timeout(500),文档建议谨慎使用
  • 自定义条件:wait_for_function('() => window.appReady === true')
  • 自动等待:click、fill 等操作会自动等待元素可见、稳定、可用且未被遮挡

元素交互

覆盖点击(右键、双击、修饰键、force)、表单填写与按键、下拉选择(按 label/value/index/多选)、复选框与单选按钮、文件上传(单个/多个/清空)、悬停与聚焦。

断言

使用 expect 断言元素可见性、文本内容(精确/包含/正则)、启用禁用状态、勾选状态、可编辑性、属性与值、CSS 类、元素数量。

测试组织

给出基础结构、Pytest fixture(browser、page)、测试分组类、setup/teardown 的写法示例。

网络拦截

支持 mock API 响应(route.fulfill)、屏蔽图片与样式表等资源以加速测试、等待特定 API 响应(expect_response)。

截图与录像

支持整页截图、元素截图、自定义视口尺寸截图,以及通过 record_video_dir 录制视频。

调试

支持 page.pause() 打开 Playwright Inspector、监听 console 日志、slow_mo 慢动作、DEBUG 环境变量详细日志。

并行执行

通过 pytest-xdist 实现并行(pytest -n auto 或指定 worker 数),并可用浏览器上下文隔离保证每个测试的 cookies、localStorage 等互不影响。

使用方式

文档中的示例主要基于 Python 的 Playwright 同步 API(from playwright.sync_api import sync_playwright),并推荐配合 Pytest 使用。示例包含安装命令 pip install pytest-xdist。

适用场景

适合使用 Playwright 编写 Web 应用端到端测试的开发者,作为选择器写法、等待策略、断言与测试组织方式的参考手册。

限制

资料未提供该技能的具体安装方式、运行环境要求、版本兼容性、收费信息或平台支持范围,这些内容暂未提供。