当前位置: 首页 > news >正文

基于 AI 大模型的 UI 元素定位浏览器插件

Element Locator - UI测试助手 🎯

一个强大的浏览器扩展,帮助测试人员快速定位页面元素,生成多种定位策略,提高UI自动化测试效率。

实际图

imageimage
image

项目地址:https://github.com/lucky-Testrunner/element-locator-extension.git

✨ 主要功能

🖱️ 智能元素选择

  • 点击按钮进入选择模式
  • 鼠标悬停实时高亮元素
  • 点击选中目标元素

📋 多种定位策略

自动生成多种元素定位表达式:

  • XPath - 完整路径和优化路径
  • CSS Selector - 多种CSS选择器组合
  • ID - 元素ID(最优先)
  • Name - 元素name属性
  • Class - 单个或组合class
  • Data Test ID - data-testid等测试属性
  • Text - 基于文本内容的定位
  • Link Text - 链接文本定位

🧪 定位器测试

  • 实时测试定位表达式
  • 显示匹配元素数量
  • 验证定位器唯一性
  • 高亮所有匹配元素
  • 自动滚动到匹配元素

🤖 AI智能优化

  • 集成AI服务
  • 分析HTML结构
  • 生成最优定位策略
  • 避免脆弱的定位方式

📦 多格式导出

支持多种测试框架的代码格式:

  • 纯表达式 - 直接使用的定位表达式
  • Selenium (Python) - driver.find_element(By.XPATH, "...")
  • Selenium (Java) - driver.findElement(By.xpath("..."))
  • Playwright - page.locator("...")
  • Cypress - cy.get("...")

📦 安装方法

方法 1:从源代码安装(开发模式)

  1. 克隆或下载项目
    git clone https://github.com/lucky-Testrunner/element-locator-extension.git
    
  2. 在Chrome/Edge中加载扩展
    • 打开浏览器,访问 chrome://extensions/edge://extensions/
    • 启用"开发者模式"(右上角开关)
    • 点击"加载已解压的扩展程序"
    • 选择 element-locator-extension 目录

方法 2:从Chrome Web Store安装(未来)

待发布到Chrome Web Store后,可直接在线安装。

🚀 使用指南

1. 基础使用流程

  1. 打开目标网页

    • 在浏览器中打开需要测试的网页
  2. 启动元素选择

    • 点击浏览器工具栏中的扩展图标
    • 点击"开始选择元素"按钮
  3. 选择目标元素

    • 移动鼠标到目标元素上(会高亮显示)
    • 点击选中元素
  4. 查看定位策略

    • 自动生成多种定位表达式
    • 查看元素详细信息
  5. 测试定位器

    • 从下拉列表选择要测试的定位器
    • 点击"测试"按钮
    • 查看匹配结果(唯一性验证)
  6. 复制使用

    • 点击定位器旁的复制按钮
    • 选择目标格式(Selenium、Playwright等)
    • 粘贴到测试代码中

2. AI功能配置

  1. 打开设置页面

    • 点击扩展弹窗底部的"⚙️ 设置"
  2. 配置AI服务

    • API URL: 输入AI服务的API端点(支持OpenAI兼容格式)
    • API Key: 输入您的API密钥
    • 模型名称: 选择AI模型(推荐gpt-4)
    • 提示词模板: 可选,自定义提示词
  3. 测试连接

    • 点击"🧪 测试连接"按钮
    • 确认配置正确
  4. 保存设置

    • 点击"💾 保存设置"
  5. 使用AI生成

    • 选择元素后
    • 点击"🤖 AI优化"按钮
    • AI会分析元素并生成最优定位策略

3. 高级技巧

选择难以定位的元素
  • 使用XPath文本匹配://*[contains(text(), "关键词")]
  • 使用属性组合:input[type="text"][name="username"]
  • 使用父子关系:div.container > button.submit
提高定位稳定性
  • 优先使用ID和data-testid
  • 避免使用动态生成的class名
  • 使用相对路径而非绝对路径
  • 结合多个属性提高唯一性
批量处理
  • 使用测试功能验证每个定位器
  • 选择唯一性最好的定位策略
  • 记录并整理元素定位库

🛠️ 项目结构

element-locator-extension/
├── manifest.json              # 扩展配置文件
├── icons/                     # 图标资源
│   ├── icon16.png
│   ├── icon48.png
│   ├── icon128.png
│   └── generate_icons.py     # 图标生成脚本
├── popup/                     # 弹出窗口
│   ├── popup.html            # 主界面
│   ├── popup.js              # 交互逻辑
│   └── popup.css             # 样式
├── options/                   # 设置页面
│   ├── options.html          # 设置界面
│   ├── options.js            # 配置逻辑
│   └── options.css           # 样式
├── content/                   # 内容脚本
│   ├── content.js            # 主控制器
│   ├── content.css           # 页面样式
│   ├── element-selector.js   # 元素选择器
│   ├── locator-generator.js  # 定位策略生成器
│   └── element-tester.js     # 表达式测试器
├── background/               # 后台服务
│   └── background.js         # 后台脚本
└── README.md                 # 项目文档

🔧 技术栈

  • Manifest V3 - Chrome扩展最新标准
  • Vanilla JavaScript - 无框架依赖
  • CSS3 - 现代样式
  • Chrome Extension APIs - 浏览器扩展API

📝 支持的浏览器

  • ✅ Chrome 88+
  • ✅ Microsoft Edge 88+

Element Locator - 让UI自动化测试更简单! 🚀

http://www.dtcms.com/a/494408.html

相关文章:

  • Prism框架核心对象全解析
  • 阿里云服务器上部署Mosquitto
  • Android 设计模式实战手册(Kotlin 实战版)
  • Android thermal (5)_cooling device(下)
  • 活字格低代码平台实现移动端应用(安卓 /iOS)打包的技术方案与实践指南
  • SpringBoot电子商城系统
  • 解析 Qt Remote Objects:从框架原理到 Repcs 实践,以正点原子 RK3588 UI 系统为例
  • 【底层机制】【Android】Binder架构与原理
  • 揭阳市住房和城乡建设局网站网站类游戏网站开发
  • DeviceNet 转 MODBUS TCP罗克韦尔 ControlLogix PLC 与上位机在汽车零部件涂装生产线漆膜厚度精准控制的通讯配置案例
  • 【STM32项目开源】基于STM32的智能衣柜系统
  • python基于web的汽车班车车票管理系统/火车票预订系统/高铁预定系统 可在线选座
  • ssh终端管理多个k8s集群,快速切换配置
  • 景德镇建站公司全国建筑四库一平台
  • 奥运网站模板wordpress在 分栏
  • toLua[七] Examples 06_LuaCoroutine2分析
  • CAD如何生成等高线
  • Java并发工具类详解:Semaphore、CyclicBarrier与CountDownLatch
  • 御剑问情_附带自动假人版_大型3D仙侠类剧情闯关手游_Linux服务端_通用视频架设教程_GM授权网页后台_运营网页后台_安卓苹果IOS双端
  • 基于信息保留与细粒度特征聚合的无人机目标检测
  • AINode部署全指南:从独立部署到Kubernetes集群部署
  • PYcharm——获取天气
  • Kafka多网卡环境配置
  • TypeScript 与淘宝 API:构建类型安全的商品数据查询前端 / Node.js 服务
  • 网站备案名称要求郴州网站排名优化
  • 百度做一个网站多少钱sns营销
  • List<map<String,Object>下划线转驼峰
  • List.subList() 返回值为什么不能强转成 ArrayList
  • phpcms网站转移网站关键词百度排名在下降
  • mac使用本地jdk启动elasticsearch解决elasticsearch启动时jdk损坏问题