(求虐)受不了前端天天改,自动化脚本天天崩!小弟肝了个工具,用“语义”干掉XPath,大佬们看这思路对吗?

各位搞 Web 自动化测试的大佬们,小弟先吐个槽:

不知道大家是不是也这样,现在前端迭代快得飞起,UI 稍微一改版,之前辛辛苦苦写的自动化脚本,元素定位(Locator)就全线崩溃!

结果就是,大半天时间不是在写新 Case,全TMD在维护旧脚本,改各种 XPath、CSS Selector,人都麻了...

这活儿的痛点简直不要太多:

  1. 门槛高: 想让业务 QA 参与,但手写 Python 脚本的门槛直接把人挡在门外。
  2. 效率低: 从需求分析到脚本产出,流程又臭又长,跟不上敏捷开发。
  3. 维护难: (核心槽点)元素定位太"脆"了! 前端稍微换个 DIV 结构,或者改个 Class,定位就失效,脚本就得改,烦得要死。

我的("作死")思路

实在受不了这种"面向 XPath 编程"的苦日子了,小弟花了几个月业余时间,关起门来肝了一款工具

我给它的定位是:一个 AI 驱动的、低代码自动化测试平台

核心思路很简单:

  1. 用"大白话"提效(AI): 让不懂代码的 QA,用自然语言(比如:"登录系统,用户名A,密码B")就能生成可执行的 Python 脚本。

  2. 用"语义化"抗变更(核心引擎): 这才是我想解决的核心问题! 我希望彻底告别脆弱的 XPath/CSS。

    • 比如,我封装了一个引擎,当你想操作一个多级菜单时,你根本不需要去 F12 找元素
    • 你只需要输入(或在脚本里调用):"首页" > "系统配置" > "用户管理"
    • 系统就会自动、依次地去点击这些菜单项。无论前端怎么改版,只要菜单的文字不变,脚本就永远有效!
  3. 它又不能是个"黑盒": 无论是 AI 生成的,还是引擎调用的,最终都是标准的 Python + Playwright 脚本。专业大佬随时可以接管,进行二次开发或调试。


"Show Time"(求轻喷)

光说不练假把式,直接上图(和 GIF),大佬们看看这功能是不是你们想要的:

1. 亮点一:用"嘴"写用例(自然语言 -> Python 脚本)

我直接输入 Prompt,它(调用我配置的 LLM 接口)就能自动生成 Playwright 脚本。

[ GIF 动图 演示 1 ]

  • 动图内容: 在 Prompt 输入框,输入"用例名称'项目演示-演示登录go入门指南并进入指定章节',访问'go.timpaik.top/directory.html',在目录>起源与发展菜单单,等待10秒,使用assert断言1等于1",点击发送按钮。平台将内容发送至配置的AI模型,并将模型返回的内容翻译成可执行的用例脚本执行,执行完成后可将用例进行归档至项目用例下。

2. 亮点二:用"语义"告别 XPath(这才是重点!)

看这里,我不用关心元素定位。比如我要操作菜单(其实也能操作复杂的web中form)。

[ GIF 动图演示 2 ]

  • 动图内容: 看上一个动图操作,浏览器界面自动完成访问和点击动作"https://go.timpaik.top/directory.html"、调用一个smart.click("目录">"起源于发展")这样的函数,然后了这一系列点击。请注意整个过程我只参与自然语言输入,并没写定位符,它却点对了目标元素

3. 不只是玩具:内置的编辑器和用例管理

生成的脚本不是摆设,可以直接在平台里组织、管理、运行,也支持二次编辑。

[ GIF 动图演示 3 ]

  • 动图内容: 生成的用例执行完成后进行归档到项目用例库中,当然少不了测试报告(暂时使用pytest-html)。中间是 Python 脚本编辑器(显示行号和高亮),可对生成的用例进行编辑优化,可以看到不需要关心元素定位。

** 这里少一个动图,不知道为啥插入的时候无法更新,睡觉先,明天再搞 **

睡醒了,补图补图:


技术实现(欢迎大佬们开喷这部分)

为了让大佬们喷得有理有据,我简单贴下我的(简陋)架构。这玩意儿是个桌面应用(用 Tkinter 打包的):

scss 复制代码
┌──────────────┐
│ 表现层 GUI   │ → Tkinter + ttkbootstrap (图它打包方便)
└─────▼────────┘
      │
┌──────────────┐
│ 业务逻辑层   │ → 用例生成 / 脚本执行 / 报告管理
└─────▼────────┘
      │
┌──────────────┐
│ 核心API引擎  │ → Playwright封装 + 【语义定位引擎】 + 链式调用
└─────▼────────┘
      │
┌──────────────┐
│ AI集成层     │ → OpenAI / Gemini / Kimi 等大模型接口 (可配置)
└─────▼────────┘
      │
┌─────▼────────┐
│ 数据持久层   │ → YAML / JSON / .py 文件 (轻量级)
└──────────────┘

几个设计上的考虑:

  • GUI 为啥用 Tkinter? 主要是图个简单、跨平台、打包成 .exe 方便。ttkbootstrap 库让它颜值勉强能看(内置了深色/浅色主题)。
  • 核心引擎怎么搞的? 底层还是 Playwright。重点就在于我封装的**"语义定位引擎"**。它会根据 "A > B > C" 这种输入,结合 DOM 结构去智能分析和查找元素(比如基于文本、A 标签、父子关系等多种策略),而不是依赖单一的 XPath。目标就是提高脚本的"健壮性",减少维护。

真正"求虐"的来了!

小弟目前还在埋头开发,发帖就是想在"闭门造车"的路上听听劝,看看这个方向对不对。

想请教各位大佬几个问题:

  1. 这个思路(AI 生成 + 语义定位 + Pro-Code)大家觉得靠谱吗? 还是说又是一个"重复造轮子"的玩具?
  2. (灵魂拷问)大家对这种 "首页 > 系统配置" 的"语义化"操作方式怎么看? 会觉得它实用,还是更信任自己手写的 XPath/CSS?
  3. 大家对"AI 生成脚本"的容忍度咋样? 是希望它 100% 准确,还是能帮我生成个 70% 的框架、我再改改就行?
  4. 大家觉得 Web 自动化测试里,还有啥是巨恶心的痛点?

如果大佬们觉得这个玩意儿还有点意思,或者想喷我几句,都欢迎留言。

可以先 Mark 一下这个帖子,等我手续搞定了,一定第一时间把试用包和(可能的)开源地址放出来,再请大家使劲"鞭尸"!

相关推荐
流之云低代码平台1 天前
从蜗牛到猎豹!PHP工作流改进加速软件开发实战
低代码·php工作流搭建技巧·php工作流改进方法·php代码复用方法·php工作流测试流程·php工作流优化考量因素·php工作流性能优化技巧
NocoBase2 天前
8 个最佳 Google Sheets 替代方案(附成本与能力分析)
低代码·开源·github
雷文成.思泉软件2 天前
以ERP为核心、企微为门户,实现一体化集成
大数据·低代码·创业创新
酷柚易汛智推官2 天前
AI编程不是低代码的“终结者”,而是进化的“催化剂”
低代码·ai编程·酷柚易汛
简道云平台2 天前
越来越多企业用“低代码”搭进销存?它到底适合哪些企业?
低代码
低代码布道师2 天前
医疗小程序12出诊列表
低代码·小程序
OpenTiny社区3 天前
TinyEngine 低代码实时协作揭秘:原理 +实操,看完直接用!
前端·vue.js·低代码
中杯可乐多加冰3 天前
逻辑控制案例详解|基于smardaten实现OA一体化办公系统逻辑交互
人工智能·深度学习·低代码·oa办公·无代码·一体化平台·逻辑控制
信也科技布道师FTE4 天前
当AMIS遇见AI智能体:如何为低代码开发装上“智慧大脑”?
人工智能·低代码·llm