GeoFill 是一个浏览器扩展工具,可根据地理位置生成符合本地格式的测试数据,并一键自动填写网页表单。
本项目主要用于 Web 开发、前端调试、测试(QA)以及表单兼容性验证,帮助开发者在不同国家/地区场景下高效完成表单测试工作。
- 基于 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 |
- 打开扩展管理页面
- 开启「开发者模式」
- 选择「加载已解压的扩展程序」
- 选择项目目录
- 打开
about:debugging#/runtime/this-firefox - 点击「临时加载附加组件」
- 选择
manifest.json
- 打开包含表单的网页
- 点击浏览器工具栏中的 GeoFill 图标
- 查看或调整生成的数据
- 点击「填写表单」
美国、英国、加拿大、澳大利亚、中国、日本、韩国、德国、法国、俄罗斯、西班牙、意大利、巴西、印度、新加坡、台湾、香港、墨西哥、荷兰
├── 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/ # 插件图标
- 🔨 代码模块化重构:将 popup.js 拆分为独立功能模块
- ✨ 新增 DEBUG 调试开关(生产环境可关闭日志)
- ✨ 新增统一日志系统和错误处理
- ✨ 新增按钮加载动画
- 🐛 增强字段锁定功能:锁定字段在任何操作下都不会被修改
- 🔧 合并 theme.js 到 ui.js,清理重复代码
- ✨ 新增主界面地址 API 开关 🗺️(快速切换是否使用 API 获取真实地址)
- 🐛 修复地址 API 返回后州省和邮编未更新的问题
- 🐛 修复刷新 IP 后州省字段为空的问题
- ✨ 新增 OpenStreetMap 地址 API 支持(免费,无需 Key)
- 🔧 智能切换:优先 Geoapify → 备用 OSM → 本地生成
- 🎨 Toast 提示显示地址来源
- ✨ 新增 Geoapify 地址 API 支持(可生成真实有效的地址,免费 3000次/天)
- 🐛 修复
geoapifyApiKey变量重复声明导致扩展无法正常工作的问题 - 🔧 优化地址生成逻辑,确保地址与城市/州/邮编数据一致
- 🎛️ 新增主界面 AI 模式开关
- ✨ 配置 AI 后,底部显示 🤖 开关按钮
- ✨ 开关开启:重新生成和填表使用 AI
- ✨ 开关关闭:使用普通本地生成
- ✨ 开关状态自动保存,下次打开保持上次状态
- 🎨 开关激活时高亮显示
- 🔧 简化交互,无需进入设置即可快速切换 AI 模式
- 🧠 增强 AI 字段收集智能
- ✨ 多层父元素上下文分析(深度4层)
- ✨ 表单分组检测(fieldset/legend/heading)
- ✨ 相邻字段关系分析
- ✨ 页面类型自动识别(注册/登录/结账/调查等)
- ✨ 增强标签获取(aria-label/aria-labelledby/title等)
- ✨ 语义关键词提取(class/data-*属性)
- 🔍 检测 CAPTCHA 存在
- 🔍 识别表单 action 和提交按钮文本
- 📜 新增历史记录功能
- ✨ 最多保存 10 组最近使用的数据
- ✨ 填写表单时自动保存到历史记录
- ✨ 点击历史记录快速加载之前使用的数据
- ✨ 支持单条删除和清空历史
- 🎨 友好的时间显示(刚刚、X分钟前、X小时前)
- 🤖 新增 AI 智能填表功能
- ✨ 支持 OpenAI 兼容 API 配置(自定义 API Key、Base URL、模型)
- ✨ AI 自动分析页面表单结构并生成匹配数据
- ✨ AI 生成数据自动遵循本地规则(密码复杂度、电话格式)
- 🔧 优化密码生成逻辑,确保符合用户设置的复杂度要求
- 🔧 统一电话号码生成逻辑,避免生成虚拟号码
- 🔧 修复设置功能变量冲突问题
- 🎨 优化 UI 交互体验
- 🇯🇵 新增日本表单支持
- ✨ 日本汉字姓名生成
- ✨ 片假名姓名生成(カタカナ)
- ✨ 日本地址格式(都道府県、市区町村、町域・番地、建物名)
- ✨ 日本电话号码格式(070/080/090)
- 🔧 XServer VPS 等日本网站字段适配
- 🔧 优化表单填写逻辑,避免邮箱被地址覆盖
- 🔧 延迟填写地址字段,避免被网站自动填充覆盖
- 新增一键复制全部信息按钮
- ✨ 新增右键菜单「GeoFill - 打开面板」
- ✨ 新增快捷键 Ctrl+Shift+F 填写表单
- ✨ 新增设置面板(⚙️ 按钮)
- ✨ 支持自定义密码长度(8-32位)和复杂度
- 支持自定义生日年龄范围
- 新增多配置存档功能(保存/加载/删除)
- 新增关闭浏览器时自动清除数据选项
- 支持自定义邮箱后缀(任意格式)
- 优化表单填写兼容性
- 新增设置模态框 UI
- ✨ 新增性别和生日字段
- ✨ 新增一键复制按钮
- ✨ 新增深色/浅色主题切换
- ✨ 新增 IP 刷新按钮
- 🎯 直接使用 IP 返回的城市和州信息
- 🔧 手动选择国家时根据新国家重新生成
- 📋 增强表单检测,支持更多选择器
- 🔧 支持 React/Vue 等框架表单
- 🔧 生日年份限制在 1970 年以后
- 🎨 移除界面滚动,所有字段一次性显示
- 生成的信息仅供测试使用
- 插件需要网络访问以获取地理位置
- 某些复杂表单可能无法完全匹配所有字段
本项目仅供学习、测试和开发调试使用。
请勿将本工具用于任何非法用途,包括但不限于:欺诈、身份冒用、违反服务条款等行为。使用者需自行承担因不当使用而产生的一切法律责任。
开发者不对因使用本工具而导致的任何直接或间接损失负责。
MIT License
