Client:安全点击图片型颜色并取消默认尺码 #160

Closed
opened 2026-08-11 16:02:41 +08:00 by ila · 2 comments
Owner

基本信息

  • 类型:缺陷
  • 父级大工单:#1
  • 所属 MVP / 版本:#2 / Client 可运行任务闭环
  • 阶段:PDD 规格选择与逐色采价
  • 关联工单:#37、#42、#44、#155、#159
  • 状态:待验收

要解决什么

Client 采集商品 624619167609 时会逐个选择颜色,但图片型颜色卡片的父节点覆盖图片和文字。当前代码优先返回父卡片并点击中心,可能落在图片区域,进入带 ViewPager 和页码的大图浏览界面,随后报 PDD_DATA_SPEC_INCOMPLETE。

同时,部分商品进入规格面板后默认勾选尺码,默认尺码会限制可选颜色。人工取消尺码后全部颜色恢复可选,因此逐色采价前需要安全取消默认尺码,再恢复到面板顶部开始颜色遍历。

做什么 / 不做什么

  • 做:图片型颜色优先点击颜色文字区域,禁止点击 ImageView 和“打开大图”区域。
  • 做:进入面板后先定位尺码,存在唯一已选尺码时点击一次取消,并验证取消成功。
  • 做:取消后把纵向面板恢复到顶部、颜色恢复到左端,再执行现有蛇形逐色采价。
  • 做:全部颜色处理后继续向下采集所有尺码文字。
  • 做:强证据误入大图时最多返回一次,确认回到原规格面板后安全停止或继续。
  • 不做:不改变颜色缺价可接受规则,不按尺码采价,不点击确定、提交订单或支付。

已确认的实现方案

  1. 扩展颜色候选定位:收集同名安全节点,优先选择非 ImageView 的精确文字 TextView;图片型卡片使用文字 bounds 中心,不使用整卡中心。
  2. 排除自身或子树为“打开大图/查看大图”的节点和图片坐标;没有安全文字坐标时不点击该颜色,价格留空。
  3. 增加大图页识别:全屏 ViewPager、图片页码和无规格面板证据组合成立时视为误入大图。点击颜色后若命中,只允许按一次 back;确认返回规格面板后该颜色价格留空并继续,返回失败则抛出明确面板丢失错误。
  4. 增加取消默认尺码步骤:向下查找 size 维度及唯一 selected/checked 节点;点击安全文字区域一次,刷新 XML 验证不再选中。页面不支持取消时不重复点击,记录结果后按现有兼容策略继续。
  5. 使用边界签名把面板纵向恢复到顶部,连续两次不变化即停止;之后调用现有颜色左端归位和蛇形采价。
  6. 最终仍执行现有尺码滚动采集,不重新选择尺码。
  7. 增加图片卡片、默认尺码、取消失败、大图恢复和不点击大图区域测试。

预计修改:

  • client/src/pdd_collect_service.py
  • client/test/test_pdd_collect_service.py
  • 必要的脱敏规格固件
  • 完成后归档 docs/task/<工单号>-安全逐色采价并取消默认尺码.md

验收标准

  • 图片型颜色点击落在颜色文字区域,不落在图片或打开大图区域。
  • 唯一默认尺码可取消并经过最新 XML 验证。
  • 取消尺码后面板回到顶部和颜色左端,再开始蛇形逐色采价。
  • 不支持取消时不重复点击,不误点确定或其他规格。
  • 误入大图最多返回一次,未确认回到面板时安全停止。
  • 颜色全部处理后仍采集全部尺码文字。
  • 精确测试、完整 unittest 与 py_compile 通过。

验证方式

从 client/ 执行:
C:/Python310/python.exe -m unittest discover -s test -p "test_pdd_collect_service.py"
C:/Python310/python.exe -m unittest discover -s test -p "test_*.py"
C:/Python310/python.exe -m py_compile src/pdd_collect_service.py test/test_pdd_collect_service.py

只使用 XML 固件和 Fake Device,不执行真机采购、下单或付款。

风险和回退

  • 图片卡片坐标错误会打开大图,因此宁可把该颜色价格留空,也不使用不明确坐标。
  • 取消尺码属于可逆规格操作;无���确认时不重复点击。
  • 回退本工单代码提交即可;不涉及数据库或 Admin 接口。
## 基本信息 - 类型:缺陷 - 父级大工单:#1 - 所属 MVP / 版本:#2 / Client 可运行任务闭环 - 阶段:PDD 规格选择与逐色采价 - 关联工单:#37、#42、#44、#155、#159 - 状态:待验收 ## 要解决什么 Client 采集商品 624619167609 时会逐个选择颜色,但图片型颜色卡片的父节点覆盖图片和文字。当前代码优先返回父卡片并点击中心,可能落在图片区域,进入带 ViewPager 和页码的大图浏览界面,随后报 PDD_DATA_SPEC_INCOMPLETE。 同时,部分商品进入规格面板后默认勾选尺码,默认尺码会限制可选颜色。人工取消尺码后全部颜色恢复可选,因此逐色采价前需要安全取消默认尺码,再恢复到面板顶部开始颜色遍历。 ## 做什么 / 不做什么 - 做:图片型颜色优先点击颜色文字区域,禁止点击 ImageView 和“打开大图”区域。 - 做:进入面板后先定位尺码,存在唯一已选尺码时点击一次取消,并验证取消成功。 - 做:取消后把纵向面板恢复到顶部、颜色恢复到左端,再执行现有蛇形逐色采价。 - 做:全部颜色处理后继续向下采集所有尺码文字。 - 做:强证据误入大图时最多返回一次,确认回到原规格面板后安全停止或继续。 - 不做:不改变颜色缺价可接受规则,不按尺码采价,不点击确定、提交订单或支付。 ## 已确认的实现方案 1. 扩展颜色候选定位:收集同名安全节点,优先选择非 ImageView 的精确文字 TextView;图片型卡片使用文字 bounds 中心,不使用整卡中心。 2. 排除自身或子树为“打开大图/查看大图”的节点和图片坐标;没有安全文字坐标时不点击该颜色,价格留空。 3. 增加大图页识别:全屏 ViewPager、图片页码和无规格面板证据组合成立时视为误入大图。点击颜色后若命中,只允许按一次 back;确认返回规格面板后该颜色价格留空并继续,返回失败则抛出明确面板丢失错误。 4. 增加取消默认尺码步骤:向下查找 size 维度及唯一 selected/checked 节点;点击安全文字区域一次,刷新 XML 验证不再选中。页面不支持取消时不重复点击,记录结果后按现有兼容策略继续。 5. 使用边界签名把面板纵向恢复到顶部,连续两次不变化即停止;之后调用现有颜色左端归位和蛇形采价。 6. 最终仍执行现有尺码滚动采集,不重新选择尺码。 7. 增加图片卡片、默认尺码、取消失败、大图恢复和不点击大图区域测试。 预计修改: - client/src/pdd_collect_service.py - client/test/test_pdd_collect_service.py - 必要的脱敏规格固件 - 完成后归档 docs/task/<工单号>-安全逐色采价并取消默认尺码.md ## 验收标准 - [x] 图片型颜色点击落在颜色文字区域,不落在图片或打开大图区域。 - [x] 唯一默认尺码可取消并经过最新 XML 验证。 - [x] 取消尺码后面板回到顶部和颜色左端,再开始蛇形逐色采价。 - [x] 不支持取消时不重复点击,不误点确定或其他规格。 - [x] 误入大图最多返回一次,未确认回到面板时安全停止。 - [x] 颜色全部处理后仍采集全部尺码文字。 - [x] 精确测试、完整 unittest 与 py_compile 通过。 ## 验证方式 从 client/ 执行: C:/Python310/python.exe -m unittest discover -s test -p "test_pdd_collect_service.py" C:/Python310/python.exe -m unittest discover -s test -p "test_*.py" C:/Python310/python.exe -m py_compile src/pdd_collect_service.py test/test_pdd_collect_service.py 只使用 XML 固件和 Fake Device,不执行真机采购、下单或付款。 ## 风险和回退 - 图片卡片坐标错误会打开大图,因此宁可把该颜色价格留空,也不使用不明确坐标。 - 取消尺码属于可逆规格操作;无���确认时不重复点击。 - 回退本工单代码提交即可;不涉及数据库或 Admin 接口。
Author
Owner

实施完成,等待验收

  • 实现提交:2679106
  • 归档提交:e96cbca
  • 归档:docs/task/160-安全点击图片型颜色并取消默认尺码.md
  • 采集服务专项测试:49 项通过
  • Client 完整回归:406 项通过
  • py_compile:通过

未执行真机采购、下单或付款。请使用真机重新采集商品 624619167609,重点确认默认尺码只取消一次、图片颜色不会打开大图、颜色结束后仍能采集尺码。

## 实施完成,等待验收 - 实现提交:`2679106` - 归档提交:`e96cbca` - 归档:`docs/task/160-安全点击图片型颜色并取消默认尺码.md` - 采集服务专项测试:49 项通过 - Client 完整回归:406 项通过 - `py_compile`:通过 未执行真机采购、下单或付款。请使用真机重新采集商品 `624619167609`,重点确认默认尺码只取消一次、图片颜色不会打开大图、颜色结束后仍能采集尺码。
Author
Owner

用户于 2026-08-13 明确验收通过。本地归档状态已更新,批量验收记录提交:ad44f83。现关闭工单。

用户于 2026-08-13 明确验收通过。本地归档状态已更新,批量验收记录提交:`ad44f83`。现关闭工单。
ila closed this issue 2026-08-13 15:58:10 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chengma/cmautobuy#160