feat: 新增按钮状态检测与等待完成逻辑

This commit is contained in:
knowen
2026-03-13 22:59:11 +08:00
parent f609656d5f
commit 27565c0314
3 changed files with 85 additions and 18 deletions

View File

@@ -21,22 +21,38 @@ description: 通过 Gemini 官网gemini.google.com执行问答与生图操
## 标准执行流程
### 按钮状态机
Gemini 页面的操作按钮(`.send-button-container` 内)通过 `aria-label` 反映当前状态:
| aria-label | 状态 | 含义 |
|---|---|---|
| 麦克风 | `idle` | 输入框为空,空闲中 |
| 发送 / Send | `ready` | 输入框有内容,可发送 |
| 停止 / Stop | `loading` | 已发送,正在生成回答 |
可通过 `GeminiOps.getStatus()` 获取当前状态,通过 `GeminiOps.waitForComplete()` 轮询等待生成完毕。
### A. 文本问答
1. 打开 `https://gemini.google.com`
2. 校验登录态(头像/输入框可见)。
3. 选择最强可用模型(优先 Gemini 3.1 Pro
4. 将用户问题原样输入并发送
5. 等待完整输出,提炼后回传(必要时附原文要点)
3. 新建会话:`click('newChatBtn')`,确保干净上下文
4. 选择最强可用模型(优先 Gemini 3.1 Pro
5. 将用户问题原样输入并发送
6. 调用 `waitForComplete()` 等待状态从 `loading` 变回 `idle`
7. 等待完整输出,提炼后回传(必要时附原文要点)。
### B. 生图流程
1. 打开 Gemini 页面并确认登录。
2. 选择最强可用模型(优先 Gemini 3.1 Pro
3. 将用户提示词原样输入
4. 发送后立即通知用户:正在绘图中
6. 结果出现后:
2. 新建会话:`click('newChatBtn')`,确保干净上下文
3. 选择最强可用模型(优先 Gemini 3.1 Pro
4. 将用户提示词原样输入
5. 发送后立即通知用户:正在绘图中。
6. 调用 `waitForComplete()` 等待生成完毕(生图默认超时 120s
7. 结果出现后:
- 优先用"下载原图"按钮获取原图。
- 若无下载按钮或失败,可对图片右键另存(通常是标清图)。
7. 把图片返回用户;若有多张,按顺序全部回传。
8. 把图片返回用户;若有多张,按顺序全部回传。
## 失败回退