【小技巧】遇到循环过程中某项元素会消失的相似元素组该如何处理?(报错信息:未找到指定id的元素/下标值超过最大下标)
评论
收藏

【小技巧】遇到循环过程中某项元素会消失的相似元素组该如何处理?(报错信息:未找到指定id的元素/下标值超过最大下标)

经验分享
缤纷
2024-07-08 10:54·浏览量:1091
缤纷
发布于 2024-07-08 10:541091浏览

场景问题:

循环相似元素组对每项元素进行处理,处理操作后有两种结果:

①若处理结果为成功,则该项元素消失,后面的所有元素项上移一个位置;

②若处理结果为失败,则该项元素不会消失,后面的所有元素项位置不变。

    因为第一种成功结果导致元素消失的原因,普通地循环相似元素组会导致本次循环【消失的元素】被 【位置(index属性)+1的元素】顶替,而循环会继续执行位置未发生变化前的【位置(index属性)+2的元素】......

    最终会导致有些元素没有被循环遍历处理、且最终的相似元素组元素长度<原相似元素组长度!!

   所以会产生报错:下标值超过最大下标

解决方式:

一、使用【位置属性】定位本页未处理的元素项

1. 编辑一个位置传参元素,使相似元素组中的元素能根据传入的【位置变量】来唯一定位

例如位置变量为0,该元素校验到第一个元素;位置变量为1时校验到第2个元素...

    ~   ps.还不会元素编辑的同学可以看下这个教程P3~干货满满: 元素捕获与编辑技巧  ~

2. 获取相似元素组的长度,得到需要进行循环的次数

3. 在次数循环前,定义【位置变量】初始化=0,每次循环结束时

  if条件判断本次操作结果是否为失败:若失败,则【位置变量】自+1;若成功,则【位置变量】不变

实现代码:


二、还有一种解决方式,也是类型的进行次数循环,每次抓取新的相似元素列表,再定位元素项:

链接:https://www.yingdao.com/community/detaildiscuss?id=b7e5cbbd-6dad-4140-ac13-503e93a10f1b


~~~更多【位置属性】的妙用:

【小技巧】如何通过位置属性去寻找每一个循环项元素的子元素

~~~

收藏6
全部评论1
最新
发布评论
评论