跳到正文
阿里雲開發者社區 AI·· 4 小時前AI 評分38

我封裝的 Skill 如何解決 UI 自動化定位痛點

解决 UI 自动化定位痛点 ! 我封装了这套Skill

AI 導讀

作者封裝了一套用於 UI 自動化的 Skill,可掃描前端程式碼並批量新增 data-testid,減少頁面樣式、DOM 結構或文案變更導致定位失效的問題。它支援 React、Vue,會輸出包含頁面、路由及元素的清單,供確認後修改程式碼,且不會覆蓋已有的測試標識。

正文

2026-10-27 6

版权

版权声明:

本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《 阿里云开发者社区用户服务协议》和 《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写 侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

简介: 做UI自动化测试的不少同学可能都有遇到过这种问题:脚本运行极其脆弱,前端稍微调整页面样式、DOM 结构、文案,整套定位代码直接大面积报错,后续维护成本翻倍。 目前稳定的元素定位优先级里, data-testid 是大家比较认可的,它和样式、页面结构解耦,只要标识不变,无论前端怎么重构页面,自动化脚本都无需改动,是保障用例长期稳定运行的最优解。 元素定位稳定的优先级如下: 理论上我们只需要让前端在交互元素上统一补充 data-testid 就能解决问题,但实际情况总是不理想: 1. 前端开发日常业务排期紧张,额外增加埋点属性会占用开发时间,普遍抵触; 2. 团队缺少统一规范,手动新增容易出现命名

做UI自动化测试的不少同学可能都有遇到过这种问题:脚本运行极其脆弱,前端稍微调整页面样式、DOM 结构、文案,整套定位代码直接大面积报错,后续维护成本翻倍。

目前稳定的元素定位优先级里,data-testid是大家比较认可的,它和样式、页面结构解耦,只要标识不变,无论前端怎么重构页面,自动化脚本都无需改动,是保障用例长期稳定运行的最优解。

元素定位稳定的优先级如下:

理论上我们只需要让前端在交互元素上统一补充data-testid就能解决问题,但实际情况总是不理想:

1. 前端开发日常业务排期紧张,额外增加埋点属性会占用开发时间,普遍抵触;

2. 团队缺少统一规范,手动新增容易出现命名混乱、重复 id;

3. 存量老项目页面量大,逐行手动添加工作量巨大,很难推进落地。

很多测试只能退而求其次使用 CSS、XPath 定位,最终陷入 “前端改页面→脚本批量崩→反复修改定位器” 的恶性循环。

针对这个痛点,我封装了一套自动化 Skill,能够扫描前端代码,生成清单,然后添加 data-testid,可以将该 skill 提供给前端,或者我们自己拿到代码去操作。

###

实战案例

1、拉取前端项目

让前端负责同学提供项目地址,以及开通权限,之后使用git clone 拉取项目

如:

git clone xxx

2、skill 导入

打开前端项目,将 skill 安装在前端项目中

这套 Skill 核心能力

1. 自动扫描前端项目所有交互组件(按钮、输入框、弹窗、自定义组件等);

2. 按照统一命名规则批量生成唯一data-testid,自动写入代码,不会覆盖已存在的测试标识;

3. 输出全页面元素清单,记录组件位置、生成的 testid,方便后续自动化脚本编写;

4. 适配 React、Vue 主流前端框架,存量项目、新项目均可直接使用。

3、执行 skill

输入下面的 skill

4、模块选择

执行 skill 之后,AI 会先进行代码的扫描,判断前端有什么模块,之后让你选择需要生成 data-testid 的模块

我这里先以一个模块作为案例,如:公寓管理、房间管理

在确认好模块之后,会输出两个 md 文件,分别是公寓管理和房间管理的 testid 清单

5、清单确认

md 中的内容如下,有涉及了哪些界面、路由,以及元素清单

我们需要重点关注的是元素清单,检查一下表中列出的元素是否都进行覆盖了,还有可以testid 的命名是否满足要求

在文档中还会有一些待确认的问题,可以进行回答

6、修改代码

在元素清单确认没问题之后,在对话框中输入“确认”

这个时候,AI 就会直接修改代码了

当然,这里我们修改之后,如果不确认或者担心会出现产生 bug,则可以提交代码让前端的同学进行确认,或者直接将这个 skill 提供给前端的同学进行执行也是可以的

7、效果演示

在添加完 data-testid 之后,相关的元素则会显示这个属性

后续这个属性就可以在 UI 自动化中被捕获和使用,例如

这个是我使用 playwright cli+playwright test skill 生成的 page object 代码,它获取到了 data-testid,之后在执行的时候,就能够比较稳定的找到相应的元素了

小结

这套 Skill 用于解决 UI 自动化最常见的元素不稳定痛点,一次性批量处理全项目页面,省去人工逐行添加的重复工作,从根源减少自动化脚本因页面重构失效,大幅降低长期维护成本。经常被元素定位不稳定困扰的测试同学可以去试试看。

以上是今天分享的内容,文中提到的Skill包,以及更多AI赋能测试的实战教程(含环境配置、Skill包、实操案例及排坑说明),已整理在知识星球,跟着步骤操作就可以上手,学习过程中有问题也可以提问。感兴趣的小伙伴可以了解一下哦~

來源:阿里雲開發者社區 AI · developer.aliyun.com