125 lines
3.3 KiB
Markdown
125 lines
3.3 KiB
Markdown
# 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/` 的截图
|
|
- 控制台是否有任何错误信息
|
|
- 手动加载时的错误提示(如果有)
|