先给结论:小样本有效、批量无效,通常不是“方法本身失效”,而是批量步骤改变了某个隐含条件。要复现问题,先把单条操作拆成可对比的输入、处理、输出三段,再在批量里逐段核对;若三段一致而结果不同,问题多半在顺序、去重或覆盖范围,而不是链接写法。
单条有效时,你往往手动确认了目标位置、锚文本和落点;批量时,程序可能只改了其中一部分。可区分的原因有两类:一是批量任务中途停止,留下半成品;二是后续步骤把前面的改动覆盖回去,例如模板刷新、缓存重建、导入旧数据。前者表现为部分条目未变,后者表现为改完又恢复原样。
一个实际动作:从批量结果中随机抽 10 条,逐条记录“改动前值、改动后值、是否与单条样例一致”。如果 10 条里只有少数未变,优先查任务中断;如果多数先变后恢复,优先查覆盖来源。这个动作的结果决定下一步是补跑任务,还是先停掉覆盖步骤。
保留适用于差异只出现在少数条目,且这些条目本身有合理例外,例如已经是正确落点、被人工锁定或属于不可改区域。此时继续批量处理会误伤,保留并单独标注更稳。
改写适用于差异来自输入格式不统一,例如同一目标被写成带参数、带锚点、带多余斜杠的多种形式。先统一输入再重跑,比在输出端反复修补更可复现。改写前要保留一份原始映射,否则无法判断是格式问题还是逻辑问题。
退出适用于批量步骤本身会破坏已有正确结果,且无法通过调整顺序规避。退出不是放弃,而是把批量拆成“先检测、后人工确认、再执行”的三段,牺牲速度换取可控性。
假设单条样例把 A 页指向 B 页,批量后 A 页指向 C 页。可以这样对照:
这个假设例子的价值在于定位偏离起点,而不是证明批量一定有问题。偏离起点越靠前,越可能是配置差异;越靠后,越可能是资源、超时或并发写入导致。
单条操作通常发生在“当前可见状态”,批量操作却可能读取“历史快照”或“未刷新缓存”。如果两者读取的数据版本不同,同一个链接写法会得到不同结果。检查方法是:在批量执行前后各记录一次目标字段的原始值,并注明读取时间;若前后值不同而操作日志相同,说明差异来自数据版本,而不是链接规则。
另一个常见遗漏是作用域。单条时你只改了一个页面,批量时规则可能同时命中列表页、分页或聚合页。此时应先把作用域缩到与单条样例相同的范围,确认结果一致后再逐步放开。放开过程中每增加一类页面就核对一次,避免一次性扩大后无法归因。
如果能用 3 条记录稳定复现偏离,说明问题可定位,继续改写输入或调整顺序即可。如果 3 条正常、20 条才偏离,先查执行环境而非链接规则,例如超时、并发或分批边界。如果无论如何都无法复现,保留当前可用的小样本结果,退出批量路径,改用分批执行并记录每批的输入与输出,直到找到那个被批量放大的条件。