发布与验证
让 AI 写 Playwright 定位器:删除指定一行
先定位目标行,再在行内按角色找按钮。

资料核验2026.11.12 · Playwright Test · 浏览器端到端测试
列表里每行都有删除按钮。AI 写下 getByRole('button', { name: '删除' }).first(),今天碰巧点中了目标。下次排序变化时,这条测试仍可能点到按钮,却删掉另一条记录。
交给编码助手的任务
把两条同名、编号不同的测试记录交给助手。要求它用角色定位目标行,在行内找删除按钮,并检查确认弹窗里出现同一编号。让列表逆序再跑,验证没有隐含位置依赖。

用业务身份缩小范围
先找名称包含订单号的行,再在行内找删除按钮。确认弹窗里应出现同一订单号。提交后检查目标行消失,并保留另一条相邻记录作为对照。
如果行标题可能重名,夹具中放两个同名但编号不同的条目。这份数据能看出测试到底依赖名称、编号还是列表顺序。
只有顺序本身就是需求时,才用位置描述目标。比如验证最新创建的记录出现在首行。
先准备一个对照样例
样本是「退款申请 / ORD-10」和「退款申请 / ORD-11」。先把 ORD-10 放第二行,再放第一行,各跑一次。用 getByRole('row') 限定到对应编号,再在行内找按钮。断言另一个编号仍可见,证明没有误删。
用这些结果验收
- 目标行消失。
- 相邻同名记录仍在。
- 改变排序后仍删除相同编号。
审查时容易漏掉什么
如果助手用 first 或 nth 让严格模式不报错,先问被测试的是排序还是删除。业务身份能定位时,测试应表达业务身份。若行没有可区分的可访问名称,核对页面是否提供了可读的编号。
如果订单行没有唯一可见编号,先确定产品允许读者根据什么识别目标。必要时补可见信息再写定位器。测试不能通过读一个实现细节来弥补界面没有区分目标的问题,因为人也可能点错。

