# Chrome 扩展加载诊断 ## 问题:扩展目录正确但未加载 ### 已确认正确的信息: - ✅ 扩展目录: D:\Project\go-account-register\expand\general-auto - ✅ manifest.json 存在 - ✅ Chrome 路径正确 ### 可能的原因和解决方案 #### 1. 用户数据目录冲突 **问题**: 每次使用随机临时目录可能导致扩展状态丢失 **解决方案**: 使用固定的用户数据目录测试 ```go userDataDir := "user-data/test-with-extension" // 固定目录 ``` #### 2. Chrome 启动参数问题 某些参数组合可能导致扩展加载失败。 **测试步骤**: 1. 手动在命令行启动 Chrome 测试扩展加载: ```powershell cd "C:\Program Files\Google\Chrome\Application" .\chrome.exe --user-data-dir="D:\Project\go-account-register\user-data\test" --load-extension="D:\Project\go-account-register\expand\general-auto" --no-sandbox ``` 2. 如果手动启动成功,说明是参数组合问题 #### 3. manifest.json 兼容性 **当前 manifest.json 可能的问题**: - Service Worker 可能需要额外配置 - 权限设置可能有冲突 **测试方案**: 临时使用更简单的 manifest ```bash # 重命名当前 manifest cd D:\Project\go-account-register\expand\general-auto rename manifest.json manifest-full.json rename manifest-simple.json manifest.json ``` #### 4. 扩展 ID 和路径大小写 Windows 系统路径大小写敏感性问题 **验证**: 确保路径没有大小写混用 #### 5. Chrome 策略限制 企业版 Chrome 可能有扩展策略限制 **检查**: 1. 访问 `chrome://policy/` 2. 查看是否有 ExtensionInstallBlacklist 或类似策略 ### 推荐的调试步骤 **步骤 1: 手动加载测试** 1. 打开 Chrome (不通过程序) 2. 访问 `chrome://extensions/` 3. 启用"开发者模式" 4. 点击"加载已解压的扩展程序" 5. 选择 `D:\Project\go-account-register\expand\general-auto` 6. 看是否有错误提示 **步骤 2: 使用简化版 manifest** ```powershell cd D:\Project\go-account-register\expand\general-auto Copy-Item manifest.json manifest-backup.json Copy-Item manifest-simple.json manifest.json ``` 然后重新运行程序 **步骤 3: 查看 Chrome 日志** 启动时添加日志参数: ```go Set("enable-logging", "stderr"). Set("v", "1") ``` **步骤 4: 检查扩展文件权限** 确保所有文件可读: ```powershell icacls "D:\Project\go-account-register\expand\general-auto" /t ``` ### 临时解决方案 如果自动加载持续失败,可以: 1. **手动预加载扩展到用户数据目录** ```go // 在程序启动前,将扩展复制到用户数据目录 extensionDir := filepath.Join(absPath, "Default", "Extensions", "general-auto") os.MkdirAll(extensionDir, 0755) // 复制扩展文件... ``` 2. **使用打包的 .crx 文件** ```powershell # 打包扩展 chrome --pack-extension="D:\Project\go-account-register\expand\general-auto" ``` 3. **不使用扩展,直接注入脚本** ```go page.MustEvalOnNewDocument(` // 直接注入你的自动化代码 window.GeneralAuto = { ... }; `) ``` ### 下一步行动 请尝试: 1. 运行程序后,手动访问 `chrome://extensions/` 截图 2. 尝试手动加载扩展,看是否有错误信息 3. 使用简化版 manifest 测试 如果还是不行,请提供: - `chrome://extensions/` 的截图 - 控制台是否有任何错误信息 - 手动加载时的错误提示(如果有)