纵向套餐数量较多时,Client 首屏能识别“套餐”第二规格;向下滑动后,“套餐”标题离开无障碍控件树,但套餐选项仍可见。当前每一屏都会重新依赖可见标题调用 parse_spec_panel(),因此无法再生成 size 维度,并报:
parse_spec_panel()
size
PDD_DATA_SPEC_INCOMPLETE:滚动过程中丢失第二规格:套餐
这是续页归属信息丢失,不代表套餐节点真实消失。
pdd_data
SpecSnapshot
PDD_DATA_SPEC_INCOMPLETE
预计修改:
从 client/ 运行采集服务精确测试、完整 test_*.py 和修改文件 py_compile。使用 Fake Device 模拟纵向长套餐:首屏包含标题,后续屏只有套餐选项,并包含下单或数量干扰节点。真机商品由用户验收。
client/
test_*.py
py_compile
94793ab
1730c57
docs/task/168-兼容纵向套餐标题滑出.md
实现结果:
验证:
未验证:尚未使用发生问题的真机商品重新采集;未执行真实采购、下单或付款。工单保持打开,等待用户验收。
用户使用最新代码重新采集后仍报: PDD_DATA_SPEC_INCOMPLETE:滚动过程中持续丢失第二规格:套餐
PDD_DATA_SPEC_INCOMPLETE:滚动过程中持续丢失第二规格:套餐
已检查 2026-08-11 17:30:57 保存的失败控件树(仅记录脱敏结论,不上传现场文件):
android.support.v7.widget.RecyclerView
[0,1130][1080,1968]
100%防晒护颈【黑色2个+浅灰2个】 ¥5.69
新根因:#168 的 _is_second_dimension_action() 为排除价格控件,当前把所有包含 ¥/¥ 的文字都判为操作项。真实套餐的按钮文字也包含价格,因此续页候选全部被过滤,提取结果为空;重读一次仍为空,最终误报“持续丢失第二规格”。
_is_second_dimension_action()
¥/¥
建议修订:
状态保持打开并退回“进行中/待修复”,现有提交不回退,等待用户确认修订方案后继续实施。
6ed2305
c61a028
最终修复:
回归测试已改为模拟 16 个带价格纵向套餐、标题滑出、5 屏遍历、接近全宽长按钮、纯价格节点、数量和提交按钮:
状态重新进入“待验收”。请使用同一真机商品重新采集;本次未执行真实采购、下单或付款。
用户于 2026-08-13 明确验收通过。本地归档状态已更新,批量验收记录提交:ad44f83。现关闭工单。
ad44f83
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
纵向套餐数量较多时,Client 首屏能识别“套餐”第二规格;向下滑动后,“套餐”标题离开无障碍控件树,但套餐选项仍可见。当前每一屏都会重新依赖可见标题调用
parse_spec_panel(),因此无法再生成size维度,并报:PDD_DATA_SPEC_INCOMPLETE:滚动过程中丢失第二规格:套餐这是续页归属信息丢失,不代表套餐节点真实消失。
做什么 / 不做什么
pdd_dataschema。已确认的实现方案
SpecSnapshot识别到第二规格时,记录名称、滚动方向、滚动容器特征,以及当前选项的节点结构特征。parse_spec_panel()必须看到标题。PDD_DATA_SPEC_INCOMPLETE。预计修改:
验收标准
验证方式
从
client/运行采集服务精确测试、完整test_*.py和修改文件py_compile。使用 Fake Device 模拟纵向长套餐:首屏包含标题,后续屏只有套餐选项,并包含下单或数量干扰节点。真机商品由用户验收。风险和回退
实施完成,等待真机验收
94793ab1730c57docs/task/168-兼容纵向套餐标题滑出.md实现结果:
验证:
py_compile通过。未验证:尚未使用发生问题的真机商品重新采集;未执行真实采购、下单或付款。工单保持打开,等待用户验收。
真机验收未通过:续页套餐被价格过滤规则误删
用户使用最新代码重新采集后仍报:
PDD_DATA_SPEC_INCOMPLETE:滚动过程中持续丢失第二规格:套餐已检查 2026-08-11 17:30:57 保存的失败控件树(仅记录脱敏结论,不上传现场文件):
android.support.v7.widget.RecyclerView,范围[0,1130][1080,1968];100%防晒护颈【黑色2个+浅灰2个】 ¥5.69。新根因:#168 的
_is_second_dimension_action()为排除价格控件,当前把所有包含¥/¥的文字都判为操作项。真实套餐的按钮文字也包含价格,因此续页候选全部被过滤,提取结果为空;重读一次仍为空,最终误报“持续丢失第二规格”。建议修订:
状态保持打开并退回“进行中/待修复”,现有提交不回退,等待用户确认修订方案后继续实施。
根据真机失败控件树完成第二次修订
6ed2305c61a028最终修复:
¥/¥的节点当作价格控件;回归测试已改为模拟 16 个带价格纵向套餐、标题滑出、5 屏遍历、接近全宽长按钮、纯价格节点、数量和提交按钮:
状态重新进入“待验收”。请使用同一真机商品重新采集;本次未执行真实采购、下单或付款。
用户于 2026-08-13 明确验收通过。本地归档状态已更新,批量验收记录提交:
ad44f83。现关闭工单。