镜像自地址
https://github.com/lhly/search-syntax-pro.git
已同步 2026-10-20 14:27:47 +08:00
- 新增全局快捷键支持(Ctrl+Shift+F/Command+Shift+F) - 添加快捷键命令类型定义(chrome-commands.d.ts) - 实现版本管理工具(version.ts) - 新增模板和快捷键相关类型定义 - 优化搜索表单组件支持外部控制高级选项 - 新增引擎选择器组件(EngineSelector) - 改进全局样式和按钮样式 - 在设置页面新增快捷键配置选项 - 添加测试页面和调试工具 - 更新文档包括发布说明和测试指南 本次提交包含多项功能新增和优化,主要围绕快捷键功能的实现和用户体验提升。
4.7 KiB
4.7 KiB
快捷键修复测试指南
快速测试步骤
1. 重新加载扩展
# 如果还没构建,先构建
npm run build
# 然后访问 chrome://extensions,点击扩展的"刷新"按钮
2. 验证监听器注册(核心验证)
操作:
- 打开 Chrome DevTools(F12)
- 切换到 Console 标签
- 清空控制台(Ctrl+L 或点击清空按钮)
- 打开扩展 Popup
预期结果:
✅ 只看到一条日志:[ShortcutManager] Keyboard listener registered
❌ 不应该看到多条相同的注册日志
3. 测试快捷键引擎切换
操作:
- 打开 Options 设置页面
- 找到"快捷键设置"部分
- 编辑一个引擎切换快捷键(如 Ctrl+1)
- 选择目标引擎为 GitHub
- 保存配置
- 关闭 Options,打开 Popup
- 清空控制台
- 按下 Ctrl+1
预期结果:
✅ 控制台只显示一次执行日志
✅ 日志显示参数为 'github'
✅ 搜索引擎切换到 GitHub
✅ 不应该看到参数为 'baidu' 或其他旧值的日志
4. 验证 UI 显示
操作:
- 打开 Options → 快捷键设置
- 查看引擎切换快捷键的描述文本
预期结果:
✅ 显示:"切换到GitHub搜索"(而非静态的"切换搜索引擎")
✅ 快捷键显示正确(如 Ctrl+1)
✅ 目标引擎显示正确(→ GitHub)
操作2:
- 打开 Popup
- 点击右上角的 "?" 图标(快捷键帮助)
- 查看引擎切换快捷键的描述
预期结果:
✅ 显示:"切换到github搜索"(根据配置动态生成)
详细测试场景
场景1: 修改引擎后立即生效
步骤:
- Options → 快捷键设置
- 将 Ctrl+1 的目标引擎设置为 Google
- 保存
- 打开 Popup(不需要重启)
- 按 Ctrl+1
预期: 切换到 Google
场景2: 多次修改配置
步骤:
- 修改 Ctrl+1 → GitHub,保存
- 测试 ✅
- 修改 Ctrl+1 → Baidu,保存
- 测试 ✅
- 修改 Ctrl+1 → Bing,保存
- 测试 ✅
预期: 每次都切换到正确的引擎
场景3: 多个引擎快捷键
步骤:
- 配置 Ctrl+1 → GitHub
- 配置 Ctrl+2 → Google
- 配置 Ctrl+3 → Bing
- 打开 Popup,依次测试
预期: 每个快捷键都切换到正确的引擎
性能测试
测试初始化次数
操作:
- 打开 Popup
- 查看控制台
- 关闭 Popup
- 再次打开 Popup
- 查看控制台
预期:
第1次打开: 1条 [ShortcutManager] Keyboard listener registered
第2次打开: 1条 [ShortcutManager] Keyboard listener registered
总计: 2条(每次打开一条)
回归测试
确保其他快捷键功能不受影响:
- Ctrl+Enter - 执行搜索 ✅
- Ctrl+C - 复制查询 ✅
- Ctrl+L - 清空表单 ✅
- Ctrl+T - 打开模板选择器 ✅
- Ctrl+H - 打开历史记录 ✅
- ? - 显示快捷键帮助 ✅
- Escape - 关闭弹窗 ✅
- Tab / Shift+Tab - 字段导航 ✅
问题排查
如果还是执行两次
- 检查控制台: 是否有多条注册日志?
- 清除缓存:
- 卸载扩展
- 清除浏览器缓存
- 重新加载扩展
- 检查构建: 确认使用了最新的构建文件
- 检查代码: 确认修改已生效
如果引擎切换不正确
- 检查存储:
chrome.storage.local.get('custom_shortcuts', console.log) - 检查日志:
- 应该看到
[ShortcutManager] 更新快捷键 xxx 的目标引擎: github - 应该看到
[App] 使用引擎名称: github
- 应该看到
- 检查参数:
- 控制台应显示正确的 actionParam
成功标准
全部通过以下检查:
- ✅ 监听器只注册一次
- ✅ 快捷键只执行一次
- ✅ 引擎切换到正确的目标
- ✅ UI 显示正确的引擎名称
- ✅ 修改配置后立即生效
- ✅ 所有快捷键功能正常
- ✅ 无控制台错误
- ✅ 性能无异常
快速验证命令
在浏览器控制台执行:
// 检查存储的快捷键配置
chrome.storage.local.get('custom_shortcuts', (data) => {
console.log('快捷键配置:', data.custom_shortcuts);
});
// 检查某个快捷键的详细信息
chrome.storage.local.get('custom_shortcuts', (data) => {
const shortcuts = data.custom_shortcuts || {};
const switchEngineShortcuts = Object.entries(shortcuts)
.filter(([, sc]) => sc.action === 'SWITCH_ENGINE')
.map(([id, sc]) => ({ id, ...sc }));
console.table(switchEngineShortcuts);
});
测试完成后,请在此记录结果:
- 测试通过 ✅
- 测试失败 ❌ (请附上错误信息)
- 需要进一步调试
测试人: ___________ 测试时间: ___________ 测试结果: ___________