用途
本技能是一份 Playwright 自动化测试模式参考,用于指导 Web 应用端到端测试的编写。它把 Playwright 常用能力按主题整理成可查阅的代码示例,帮助开发者选择合适的选择器、等待策略和断言方式,并组织可维护的测试结构。
主要能力
选择器
覆盖多种选择器写法:
- 文本选择器:
page.click('text=Login')、精确匹配text="Sign Up"、正则text=/log.*in/i。 - 角色选择器:基于 ARIA 角色,如
role=button[name="Submit"]、role=textbox[name="Email"]、role=link[name="Learn more"]、role=checkbox[name="Accept terms"]。 - 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()。
选择器稳定性优先级(从最稳定到最不稳定):data-testid 属性、role= 选择器、text= 选择器、id 属性、CSS 类、XPath。
等待策略
- 加载状态等待:
networkidle、domcontentloaded、load。 - 元素等待:
wait_for_selector支持visible、hidden、attached、detached状态。 - 超时等待:
wait_for_timeout,建议少用。 - 自定义条件:
wait_for_function,可等待 JavaScript 条件或变量。 - 自动等待:
click、fill等操作会自动等待元素可见、稳定、启用且未被遮挡。
元素交互
包括点击(右键、双击、修饰键、强制点击)、表单填写与按键、下拉选择(按标签、值、索引、多选)、复选框与单选按钮、文件上传(单个、多个、清空)、悬停与聚焦。
断言
使用 expect 进行元素可见性、文本内容(精确、包含、正则)、元素状态(启用/禁用、选中、可编辑)、属性与值、元素数量等断言。
测试组织
给出基础结构、Pytest 推荐写法(fixture 管理 browser 与 page)、测试分组、setup/teardown 示例。
网络拦截
支持模拟 API 响应、屏蔽资源以加速测试、等待特定网络响应。
截图与录像
支持整页截图、元素截图、自定义视口尺寸截图,以及通过 context 录制视频。
调试
包括 page.pause() 打开 Playwright Inspector、监听控制台日志、慢动作模式、通过 DEBUG 环境变量输出详细日志。
并行执行
使用 pytest-xdist 并行运行测试(pytest -n auto 或指定 worker 数),并通过浏览器上下文隔离保证每个测试独立。
使用方式
资料以代码示例形式呈现,可直接参考对应片段编写测试。示例使用 Python 的 playwright.sync_api,并推荐配合 Pytest 使用 fixture 管理浏览器与页面生命周期。并行执行需安装 pytest-xdist。
适用场景
适用于使用 Playwright 编写 Web 应用端到端测试、需要统一选择器与等待策略规范、需要模拟网络请求或录制测试过程、以及需要并行执行测试的团队与开发者。
限制
资料未提供该技能的安装命令、版本要求、支持的浏览器范围、收费或授权信息,也未说明其与具体框架或平台的集成方式。以上内容暂未提供。