Playwright 简单操作指南(OBPM portal)¶
配套 run-testcase。定位以**可见文案 / title / role** 为主,不使用 catalog / OBPMTest。
MCP 工具(user-playwright)¶
| 工具 | 用途 |
|---|---|
browser_navigate |
打开登录页、portal |
browser_snapshot |
获取可点击 target 与结构 |
browser_click |
点击;参数用 target(snapshot ref)或稳定选择器 |
browser_fill_form / browser_type |
填账号、表单字段 |
browser_take_screenshot |
截图到本轮 screenshots/ |
browser_evaluate |
轻量断言:document.body.innerText、toast 文本 |
browser_run_code_unsafe |
多步串联时用 page.getByTitle / getByText / getByRole |
browser_close |
套件结束后关闭 |
调用前用 GetMcpTools 核对当前 schema(字段名可能为 target)。
登录¶
进入应用¶
- 顶栏应用列表中点击目标软件(名称可能省略号截断,看
title或关键字,如「ISO」) - 等待侧栏出现该应用中文菜单
菜单与页签(硬规则:父容器限定)¶
侧栏菜单与主区页签常同名(如都叫「文档分类」)。**禁止**裸用 page.getByTitle('…') / 全页 getByText 点菜单或页签。
| 目标 | 父元素限定 | Playwright 示例 |
|---|---|---|
| 菜单(一级/叶子) | 父为 class="main-navbar" |
page.locator('.main-navbar').getByTitle('文档分类') |
| 页签 | 父为 class="main-tab" |
page.locator('.main-tab').getByTitle('文档分类') |
# 打开菜单叶子(唯一合法路径)
page.locator('.main-navbar').getByTitle('元数据配置').click()
page.locator('.main-navbar').getByTitle('文档分类').click()
# 切换已打开页签(不是重新点菜单)
page.locator('.main-tab').getByTitle('文档分类').click()
- 一级与叶子都用中文业务名
- 打开失败时先 snapshot,确认目标在
.main-navbar/.main-tab内,勿盲目重试 - 顶栏「切换应用」仍在应用列表区域(非业务叶子);业务侧栏一律落在
.main-navbar
禁止用查询栏打开菜单(硬)¶
- 禁止 portal 顶栏/全局「查询」「搜索」「菜单搜索」输入菜单名再点结果进功能
- **禁止**工作台搜索、快捷搜索冒充侧栏导航
- 菜单打不开 → 展开一级分类 / snapshot / 人工协助,**不要**改走查询栏
用例结束后关闭页签(硬)¶
每条用例结束(PASS/FAIL/SKIP)后关闭本条打开的业务页签,再跑下一条:
- 关页签前先关残留
.el-dialog - 套件全部结束、
browser_close前再清一次页签
视图工具栏¶
常见按钮可见文本:新建、删除、导入Excel、查询相关按钮。
优先:getByText('新建', { exact: true }) 或 snapshot 后 click 对应 target。
表单字段¶
优先级:
- 与标签文案关联的输入(label / 邻近「分类编码」等)
- placeholder
- snapshot 中 textbox 顺序(仅字段少且稳定时)
填写后可用 innerText 或输入框 value 抽查。
保存与 toast¶
- 点击
[title="保存"]或[title="保存并返回"],或按钮文本 - 成功常见:
保存 成功、保存并返回 成功(以实际 toast 为准) - 失败:页面/toast 含「失败」「错误」「重复」「已存在」等
列表断言¶
- 回到列表页签或再点叶子菜单
document.body.innerText包含业务键(编码、名称、状态)- 统计行数时注意表头也会出现列名,避免误计
重开单据¶
- 正确:列表行点击 / 查询后打开
- 错误:再点侧栏同一菜单叶子(会新建空单)
弹层¶
视图选择 / 用户 / 部门:打开 → 选中 →「确认」→ 确认 dialog 消失后再继续。
截图命名¶
screenshots/{用例编号}-step{序号}-{简述}.png
失败步骤必截;通过关键步建议截。
禁止¶
build_obpm_catalog.py、catalog.jsoninject-obpm-dom.js、window.OBPMTest- 用资源 id 拼 DOM 选择器冒充稳定定位(除非用户在人工协助中明确给出且已写入本指南)
- 用查询栏 / 菜单搜索代替
.main-navbar侧栏点菜单 - 用例结束后不关页签、带着旧表单页签继续下一条