文档备案控制台
免费开始使用

# 影刀RPA新手教程:四种循环指令的区

影刀RPA新手教程:四种循环指令的区别与选择(固定次数/列表/条件/元素列表)

循环用不对,流程要么漏数据,要么死循环卡死。

影刀里循环指令有四兄弟,长得像但用法完全不同。
我把每个指令的适用场景、参数设置、踩坑点一次说清。


一、固定次数循环——知道要跑多少遍时用

picture.image

场景:翻前10页、处理前100行Excel、重试3次。
核心:提前知道循环次数,用数字控制。

picture.image

操作步骤

  1. 右侧指令面板搜索 “固定次数循环”,拖进流程图。

  2. 在详情面板把“循环次数”改成数字或整数变量。

  3. 循环体里放要重复的操作。

  4. 可选“当前循环索引”变量(从0开始),比如第一次循环索引=0。

影刀实操示例

# 假设要处理Excel里的前20行数据

![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/2a3f086b21da43a6a4416dc60a7cd69b~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1782090761&x-signature=7pSe9J2YHRhKPuiRYZXPDDtu%2BxE%3D)
循环次数 = 20
# 循环体内用索引定位行号(索引+2,因为表头占第1行)

picture.image

picture.image 容易踩的坑

  • 索引从0开始,但Excel行号从1开始,读第1行数据要写索引+1
  • 次数不要设成动态变化的值(比如循环内修改循环次数变量,不会生效)。

picture.image

二、列表循环——遍历数组里的每个值

场景:批量处理多个商品ID、多个URL、多个搜索关键词。
核心:把一个列表变量里的元素逐个取出来操作。

操作步骤

  1. 先准备一个列表变量,比如["商品A","商品B","商品C"]
  2. 拖入 “列表循环” 指令。
  3. 在详情面板选择要遍历的列表变量。
  4. 设置“当前项”变量名(默认item),循环体内用这个变量。
  5. 循环次数自动等于列表长度。

代码示例(影刀变量配置)

# 列表变量示例:关键词列表
关键词列表 = ["连衣裙", "T恤", "牛仔裤", "卫衣"]

# 列表循环体内
# 把“当前项”的值拼接到搜索URL
搜索URL = "https://s.taobao.com/search?q=" + 当前项
打开网页(搜索URL)
采集数据()

![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/c4234bd15a8644fc98ea1c5d7c0cb26a~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1782090761&x-signature=n8hhaA2LDKLMInsz1fGS0Uh0hGw%3D)

影刀专属提醒

  • 列表循环不支持在循环过程中修改列表本身(比如删掉当前项),会报错。
  • 如果想边遍历边修改,改用 “Python指令”for循环。

picture.image


三、条件循环——满足条件就一直跑

场景:翻页直到“下一页”按钮消失、等待某个数据出现、滚动到底部直到没有新内容。
核心:每次循环前判断条件是否为真,为真就继续,为假就退出。

操作步骤

  1. 拖入 “条件循环”(也叫while循环)。
  2. 在详情面板设置条件表达式,比如元素存在 == True
  3. 循环体内放改变条件的操作(比如点击下一页后,再次判断元素是否还存在)。
  4. 必须确保条件最终会变成False,否则死循环。

实战示例(翻页场景)

# 条件:判断“下一页”按钮是否存在
条件 = 判断元素是否存在("下一页按钮")  # 返回布尔值

# 循环体
点击元素("下一页按钮")
等待元素出现("商品列表", 超时=3秒)
# 采集当前页数据
# 循环结束前重新判断条件,系统自动做

容易踩的坑

  • 忘记在循环体里更新判断依据(比如不重新获取元素存在状态),条件永远为真,死循环。

picture.image

  • 影刀里条件表达式要写对:比较用==,赋值用=
  • 社区版用户死循环会一直跑,30分钟时长耗完才停,建议在循环内加一个“最大循环次数”保护。

picture.image

# 防死循环保护
最大次数 = 100
当前次数 = 0
while 条件 and 当前次数 < 最大次数:
    # 操作
    当前次数 = 当前次数 + 1

四、元素列表循环——对页面上多个相似元素逐个操作

场景:采集小红书笔记列表的每一条、批量点击所有勾选框、遍历表格的每一行。
核心:先用 “获取相似元素列表” 拿到一组元素,然后对每个元素执行操作。

操作步骤

  1. 捕获一个代表性元素(比如第一个商品标题)。
  2. “获取相似元素列表” 指令,把捕获的元素拖进去,输出一个“元素列表”变量。
  3. 拖入 “元素列表循环” 指令,选择刚才的元素列表变量。
  4. 循环体内用“当前元素”变量进行操作(点击、获取文本、截图等)。

代码示例(小红书笔记采集)

# 捕获元素:小红书笔记列表中的任一标题
//div[@class="note-item"]//a[@class="title"]
# 影刀流程
元素列表 = 获取相似元素列表("笔记标题")  # 返回所有标题的元素对象
for 当前元素 in 元素列表:
    获取文本(当前元素)  # 存到表格
    # 或者点击当前元素进入详情页

影刀专属注意

  • 元素列表循环中的“当前元素”是一个元素对象,不能直接用字符串拼接。
  • 如果要在循环内点击每个元素,注意页面可能会跳转,跳转后原元素列表失效。
  • 解决方法:先用列表循环把每个元素的文本或属性存下来,再批量处理。

四种循环对比速查表

指令名称适用场景循环次数来源是否可动态结束典型坑点
固定次数循环已知次数(翻10页、重试3次)数字变量索引从0开始易混淆
列表循环遍历数组(关键词/ID/URL)列表长度不能修改原列表
条件循环未知次数,靠条件判断(翻页直到结束)条件表达式容易死循环
元素列表循环页面有多个相似元素(列表页采集)元素数量页面跳转后元素失效

选循环的口诀

  • 知道次数 → 固定次数循环
  • 有个数组 → 列表循环
  • 靠按钮是否存在 → 条件循环
  • 页面有一堆相同的东西 → 元素列表循环

组合用法:条件循环里面套元素列表循环。
外层判断“下一页”是否存在,内层采集当前页的所有商品。


常见问题速查

问题原因解决方法
固定次数循环跑了100次还不停止次数变量被循环体改写了用常量数字,不要用变量
列表循环只跑了第一项列表变量格式不对(可能是字符串)检查变量类型,确保是[]数组
条件循环闪一下就结束初始条件就是False先执行一次判断,确保条件为真再进循环
元素列表循环报“无效元素”页面刷新了每次循环前重新获取元素列表

推荐资源

  • 影刀官方教程:《循环指令全解析》(应用市场→学习中心→搜索“循环”)。
  • 我的实操经验:写循环前先在纸上画出退出条件,比直接拖指令省2小时调试时间。
  • 拓展阅读:专题《判断元素是否存在与条件分支逻辑的实战应用》——配合条件循环做终止判断。

作者:林焱
本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。

0
0
0
0
评论
未登录
暂无评论