Files
2026-07-08 14:07:42 +08:00

3.9 KiB

id, title, phase, deps, status, created
id title phase deps status created
T-557 ⑤设置 Chrome 路径增加文件选择按钮 7
T-539
T-543
DONE 2026-07-08

问题 / 背景

⑤「设置」里的 Chrome 路径目前只能手动输入。正式用户不一定知道 Chrome 安装路径,也容易把路径拼错、少写 .exe 或复制到目录路径,导致④「启动登录」或登录检测前置流程失败。Windows 上 Chrome 可能安装在 C:\Program Files\Google\Chrome\Application\chrome.exe、C:\Program Files (x86)\...,也可能是用户自定义路径;只靠文本输入不够友好。

从全栈开发工程师角度看,这属于低风险的 GUI 易用性补齐:配置 schema 已有 chrome_path,保存逻辑已稳定,只需要在现有输入框旁增加文件选择入口,不改 Chrome 启动参数、不改账号管理和 CDP。

方案

  1. ⑤设置页增加选择按钮

    • 在 SettingsTab 的 Chrome 路径输入框右侧增加按钮,文案 选择...。
    • 按钮对象名建议为 chromePathBrowseButton,便于 GUI 单测定位。
    • 使用横向容器包住 chrome_path_edit + chrome_path_browse_button,整体仍放在「Chrome路径」这一项里,保持三列表单布局中长字段跨 3 格。
  2. 文件选择行为

    • 点击按钮调用 QFileDialog.getOpenFileName()。
    • 弹窗标题使用中文:选择 Chrome 程序。
    • 文件过滤建议:Chrome 程序 (chrome.exe);;可执行文件 (*.exe);;所有文件 (*)。
    • 初始目录优先取当前 chrome_path_edit 的父目录;若当前值为空或父目录不存在,则不强行猜测,交给系统默认目录。
    • 用户选中后,把路径写入 chrome_path_edit;现有 textChanged dirty 机制会显示未保存状态。
    • 用户取消时不改变输入框、不标记 dirty、不弹错误。
  3. 保存与配置边界

    • 保存仍走现有 save_app_settings() / _app_settings_payload(),把 chrome_path_edit.text().strip() 写入 config.json 的 chrome_path。
    • 不校验文件是否真实存在,不自动搜索 Chrome,不自动启动 Chrome。路径有效性仍由后续启动/检测流程给出错误提示。

验收要点

  • ⑤设置页 Chrome 路径右侧出现 选择... 按钮。
  • 点击按钮并选择 chrome.exe 后,chromePathEdit 回填所选路径,并显示「● 未保存更改」。
  • 点击按钮后取消,原 Chrome 路径不变化,未保存状态不被误触发。
  • 保存设置后,所选路径写入 config.json 的 chrome_path。
  • GUI 单测覆盖按钮存在、选择回填、取消不改值、保存写入。
  • python -m ruff check app tests main.py、py -3.10 -m compileall app main.py、py -3.10 -m unittest discover -s tests 通过。

边界(不改什么)

只改⑤设置页 Chrome 路径的 GUI 选择入口和测试;不改 config.json schema、不改 appconfig.chrome_path()、不改 app/chrome.py 启动参数、不改④账号管理、不改 CDP/Shopee 逻辑、不引入自动搜索/自动安装/自动启动 Chrome。

执行记录

  • 2026-07-08:⑤设置页「Chrome路径」改为输入框 + 选择... 按钮的横向控件,按钮对象名为 chromePathBrowseButton。
  • 2026-07-08:点击 选择... 后调用 QFileDialog.getOpenFileName(),中文标题为「选择 Chrome 程序」,过滤 chrome.exe / *.exe;选中文件后回填 chromePathEdit 并沿用现有未保存状态机制,取消不改变路径。
  • 2026-07-08:保存逻辑仍复用现有 save_app_settings(),所选路径写入 config.json 的 chrome_path,未改配置 schema、Chrome 启动、账号管理或 CDP。
  • 2026-07-08:更新 GUI 单测,覆盖按钮存在、布局、选择回填、取消不改值、选择后保存写入配置。
  • 验证通过:python -m ruff check app tests main.py、py -3.10 -m compileall app main.py、py -3.10 -m unittest discover -s tests、git diff --check。