Client 重新采集商品 https://mobile.yangkeduo.com/goods.html?goods_id=897186799891 时返回:
https://mobile.yangkeduo.com/goods.html?goods_id=897186799891
PDD_DATA_SPEC_INCOMPLETE:规格面板没有可识别的颜色分类
本次失败 XML 已证明规格面板处于打开状态,parse_spec_panel() 能解析出 5 个颜色、1 个尺码和当前价格;但新版面板不暴露任何 scrollable=true 节点。_find_option_node() 仍强制要求颜色节点位于可滚动祖先内,导致 5 个具有有效坐标且 clickable=true 的颜色节点全部被过滤,_visible_color_rows() 返回空列表。
parse_spec_panel()
scrollable=true
_find_option_node()
clickable=true
_visible_color_rows()
client/src/pdd_collect_service.py
_find_non_scrollable_spec_panel()
预计修改:
client/test/test_pdd_collect_service.py
docs/task/<工单号>-兼容非滚动面板颜色节点.md
从 client/ 执行:
client/
C:/Python310/python.exe -m unittest test.test_pdd_collect_service C:/Python310/python.exe -m unittest discover -s test -p "test_*.py" C:/Python310/python.exe -m py_compile src/pdd_collect_service.py
本任务使用脱敏 XML 固件验证,不执行真实下单。
首次回归已验证颜色节点定位兼容生效,但同一函数还有第二层旧版假设:_visible_color_rows() 用“不得小于当前最宽按钮 60%”判断节点是否完整显示。该面板的按钮宽度由文字长度自适应,首个“测试黑色”宽 240,最长按钮宽 432,因 240 < 432 × 60% 被误判为横向截断。
240 < 432 × 60%
这不是新的业务范围,仍属于“非滚动面板识别 3 行 5 色”的原验收项。实施调整为:
首次测试命令按模块导入失败,原因是 client/test 没有 __init__.py,后续统一使用 unittest discover。
client/test
__init__.py
unittest discover
478b125
fix: 兼容非滚动面板颜色节点 (#155)
d7e548a
docs: 归档任务 #155
docs/task/155-兼容非滚动面板颜色节点.md
897186799891
未验证:未执行真机重新采集;未执行采购、下单或付款。
用户于 2026-08-13 明确验收通过。本地归档状态已更新,批量验收记录提交:ad44f83。现关闭工单。
ad44f83
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
Client 重新采集商品
https://mobile.yangkeduo.com/goods.html?goods_id=897186799891时返回:PDD_DATA_SPEC_INCOMPLETE:规格面板没有可识别的颜色分类本次失败 XML 已证明规格面板处于打开状态,
parse_spec_panel()能解析出 5 个颜色、1 个尺码和当前价格;但新版面板不暴露任何scrollable=true节点。_find_option_node()仍强制要求颜色节点位于可滚动祖先内,导致 5 个具有有效坐标且clickable=true的颜色节点全部被过滤,_visible_color_rows()返回空列表。做什么 / 不做什么
已确认的实现方案
client/src/pdd_collect_service.py的_find_option_node():scrollable=true容器内的旧版规格节点;_find_non_scrollable_spec_panel()已通过强证据识别的面板内的规格节点。clickable=true、坐标有效、宽度完整且中心点位于安全屏幕范围。_visible_color_rows()返回 3 行、共 5 个颜色,并保持自然的从左到右顺序。预计修改:
client/src/pdd_collect_service.pyclient/test/test_pdd_collect_service.pydocs/task/<工单号>-兼容非滚动面板颜色节点.md验收标准
验证方式
从
client/执行:本任务使用脱敏 XML 固件验证,不执行真实下单。
风险和回退
实施中补充诊断
首次回归已验证颜色节点定位兼容生效,但同一函数还有第二层旧版假设:
_visible_color_rows()用“不得小于当前最宽按钮 60%”判断节点是否完整显示。该面板的按钮宽度由文字长度自适应,首个“测试黑色”宽 240,最长按钮宽 432,因240 < 432 × 60%被误判为横向截断。这不是新的业务范围,仍属于“非滚动面板识别 3 行 5 色”的原验收项。实施调整为:
首次测试命令按模块导入失败,原因是
client/test没有__init__.py,后续统一使用unittest discover。完成与归档
478b125fix: 兼容非滚动面板颜色节点 (#155)d7e548adocs: 归档任务 #155docs/task/155-兼容非滚动面板颜色节点.md897186799891验收。未验证:未执行真机重新采集;未执行采购、下单或付款。
用户于 2026-08-13 明确验收通过。本地归档状态已更新,批量验收记录提交:
ad44f83。现关闭工单。