Skip to content

debbide/GeoFill

Repository files navigation

GeoFill - 智能表单填充助手

GeoFill 是一个浏览器扩展工具,可根据地理位置生成符合本地格式的测试数据,并一键自动填写网页表单。

本项目主要用于 Web 开发、前端调试、测试(QA)以及表单兼容性验证,帮助开发者在不同国家/地区场景下高效完成表单测试工作。


GeoFill 界面预览

✨ 功能特性

🌍 地理位置识别

  • 基于 IP 的位置检测:获取当前 IP 所在国家、城市及州/省信息
  • 城市信息直接应用:检测到的城市可直接用于地址生成
  • 位置手动刷新:支持手动刷新当前 IP 位置信息
  • 国家手动切换:切换国家后自动重新生成匹配的数据结构

📝 测试数据生成

  • 地址一致性校验:城市、州/省、邮编保持真实对应关系
  • 电话格式本地化:按各国真实号码规则与号段生成
  • 姓名本地化生成:根据国家生成对应语言和文化习惯的姓名
  • 用户名多样化策略:基于姓名组合生成多种风格用户名
  • 安全密码生成:默认 12 位,包含大小写字母、数字与符号

🎨 界面与交互

  • 字段一键复制:支持单字段快速复制
  • 深色 / 浅色主题:支持主题切换
  • 字段独立刷新:每个字段可单独重新生成
  • 操作提示反馈:通过 Toast 提示操作结果

📋 表单自动填写

  • 增强字段匹配策略:支持更多属性与选择器规则
  • React / Vue 兼容:使用原生 setter 触发框架状态更新
  • 全名字段识别:自动识别 fullname 并拆分填写
  • 性别 Radio 支持:支持 radio 类型字段
  • 密码确认字段处理:自动填写密码与确认密码

📦 支持的数据类型

字段 说明
姓名 根据国家生成本地化姓名
性别 随机生成
生日 18–55 岁范围内随机
用户名 基于姓名组合生成
邮箱 用户名 + 自定义后缀
密码 强密码(可配置)
电话 各国真实格式
地址 本地化街道与编号
城市 IP 检测或随机
州/省 与城市正确匹配
邮编 基于地区规则生成
国家 支持手动选择

📞 电话号码示例

国家 示例
🇺🇸 美国 +1 (212) 555-1234
🇨🇳 中国 +86 138 1234 5678
🇯🇵 日本 +81 90-1234-5678
🇬🇧 英国 +44 7456 123 456
🇩🇪 德国 +49 170 1234 5678
🇫🇷 法国 +33 6 12 34 56 78
🇰🇷 韩国 +82 10-1234-5678
🇸🇬 新加坡 +65 9123 4567
🇭🇰 香港 +852 9123 4567
🇹🇼 台湾 +886 912 345 678

🚀 安装方式

Chrome / Edge

  1. 打开扩展管理页面
  2. 开启「开发者模式」
  3. 选择「加载已解压的扩展程序」
  4. 选择项目目录

Firefox

  1. 打开 about:debugging#/runtime/this-firefox
  2. 点击「临时加载附加组件」
  3. 选择 manifest.json

📖 使用说明

  1. 打开包含表单的网页
  2. 点击浏览器工具栏中的 GeoFill 图标
  3. 查看或调整生成的数据
  4. 点击「填写表单」

🌐 已支持国家/地区

美国、英国、加拿大、澳大利亚、中国、日本、韩国、德国、法国、俄罗斯、西班牙、意大利、巴西、印度、新加坡、台湾、香港、墨西哥、荷兰


📁 项目结构

├── manifest.json        # 插件清单
├── popup/
│   ├── popup.html       # 弹出面板
│   ├── popup.css        # 样式
│   ├── popup.js         # 主入口
│   └── js/              # 功能模块
│       ├── constants.js # 常量和全局状态
│       ├── utils.js     # 工具函数
│       ├── storage.js   # 存储管理
│       ├── ui.js        # 界面渲染
│       ├── api.js       # API 通信
│       ├── mail.js      # 临时邮箱
│       ├── history.js   # 历史记录
│       ├── archive.js   # 存档管理
│       ├── form-fill.js # 表单填充
│       ├── events.js    # 事件处理
│       └── ai.js        # AI 功能
├── scripts/
│   ├── generators.js    # 信息生成器
│   └── content.js       # 表单填写
└── icons/               # 插件图标

🔄 更新日志

v1.8.0 (2025-12-30)

  • 🔨 代码模块化重构:将 popup.js 拆分为独立功能模块
  • ✨ 新增 DEBUG 调试开关(生产环境可关闭日志)
  • ✨ 新增统一日志系统和错误处理
  • ✨ 新增按钮加载动画
  • 🐛 增强字段锁定功能:锁定字段在任何操作下都不会被修改
  • 🔧 合并 theme.js 到 ui.js,清理重复代码

v1.7.3 (2025-12-25)

  • ✨ 新增主界面地址 API 开关 🗺️(快速切换是否使用 API 获取真实地址)
  • 🐛 修复地址 API 返回后州省和邮编未更新的问题
  • 🐛 修复刷新 IP 后州省字段为空的问题

v1.7.2 (2025-12-25)

  • ✨ 新增 OpenStreetMap 地址 API 支持(免费,无需 Key)
  • 🔧 智能切换:优先 Geoapify → 备用 OSM → 本地生成
  • 🎨 Toast 提示显示地址来源

v1.7.1 (2025-12-25)

  • ✨ 新增 Geoapify 地址 API 支持(可生成真实有效的地址,免费 3000次/天)
  • 🐛 修复 geoapifyApiKey 变量重复声明导致扩展无法正常工作的问题
  • 🔧 优化地址生成逻辑,确保地址与城市/州/邮编数据一致

v1.7.0 (2025-12-23)

  • 🎛️ 新增主界面 AI 模式开关
  • ✨ 配置 AI 后,底部显示 🤖 开关按钮
  • ✨ 开关开启:重新生成和填表使用 AI
  • ✨ 开关关闭:使用普通本地生成
  • ✨ 开关状态自动保存,下次打开保持上次状态
  • 🎨 开关激活时高亮显示
  • 🔧 简化交互,无需进入设置即可快速切换 AI 模式

v1.6.0 (2025-12-22)

  • 🧠 增强 AI 字段收集智能
  • ✨ 多层父元素上下文分析(深度4层)
  • ✨ 表单分组检测(fieldset/legend/heading)
  • ✨ 相邻字段关系分析
  • ✨ 页面类型自动识别(注册/登录/结账/调查等)
  • ✨ 增强标签获取(aria-label/aria-labelledby/title等)
  • ✨ 语义关键词提取(class/data-*属性)
  • 🔍 检测 CAPTCHA 存在
  • 🔍 识别表单 action 和提交按钮文本

v1.5.0 (2025-12-22)

  • 📜 新增历史记录功能
  • ✨ 最多保存 10 组最近使用的数据
  • ✨ 填写表单时自动保存到历史记录
  • ✨ 点击历史记录快速加载之前使用的数据
  • ✨ 支持单条删除和清空历史
  • 🎨 友好的时间显示(刚刚、X分钟前、X小时前)

v1.4.0 (2025-12-22)

  • 🤖 新增 AI 智能填表功能
  • ✨ 支持 OpenAI 兼容 API 配置(自定义 API Key、Base URL、模型)
  • ✨ AI 自动分析页面表单结构并生成匹配数据
  • ✨ AI 生成数据自动遵循本地规则(密码复杂度、电话格式)
  • 🔧 优化密码生成逻辑,确保符合用户设置的复杂度要求
  • 🔧 统一电话号码生成逻辑,避免生成虚拟号码
  • 🔧 修复设置功能变量冲突问题
  • 🎨 优化 UI 交互体验

v1.3.0 (2025-12-21)

  • 🇯🇵 新增日本表单支持
  • ✨ 日本汉字姓名生成
  • ✨ 片假名姓名生成(カタカナ)
  • ✨ 日本地址格式(都道府県、市区町村、町域・番地、建物名)
  • ✨ 日本电话号码格式(070/080/090)
  • 🔧 XServer VPS 等日本网站字段适配
  • 🔧 优化表单填写逻辑,避免邮箱被地址覆盖
  • 🔧 延迟填写地址字段,避免被网站自动填充覆盖

v1.2.0 (2025-12-20)

  • 新增一键复制全部信息按钮
  • ✨ 新增右键菜单「GeoFill - 打开面板」
  • ✨ 新增快捷键 Ctrl+Shift+F 填写表单
  • ✨ 新增设置面板(⚙️ 按钮)
  • ✨ 支持自定义密码长度(8-32位)和复杂度
  • 支持自定义生日年龄范围
  • 新增多配置存档功能(保存/加载/删除)
  • 新增关闭浏览器时自动清除数据选项
  • 支持自定义邮箱后缀(任意格式)
  • 优化表单填写兼容性
  • 新增设置模态框 UI

v1.1.0

  • ✨ 新增性别和生日字段
  • ✨ 新增一键复制按钮
  • ✨ 新增深色/浅色主题切换
  • ✨ 新增 IP 刷新按钮
  • 🎯 直接使用 IP 返回的城市和州信息
  • 🔧 手动选择国家时根据新国家重新生成
  • 📋 增强表单检测,支持更多选择器
  • 🔧 支持 React/Vue 等框架表单
  • 🔧 生日年份限制在 1970 年以后
  • 🎨 移除界面滚动,所有字段一次性显示

⚠️ 注意事项

  • 生成的信息仅供测试使用
  • 插件需要网络访问以获取地理位置
  • 某些复杂表单可能无法完全匹配所有字段

🚨 免责声明

本项目仅供学习、测试和开发调试使用。

请勿将本工具用于任何非法用途,包括但不限于:欺诈、身份冒用、违反服务条款等行为。使用者需自行承担因不当使用而产生的一切法律责任。

开发者不对因使用本工具而导致的任何直接或间接损失负责。

📄 许可证

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •