影刀RPA新手教程If条件判断与循环配合的5个实用模式循环会转了但流程还是傻——不管页面有没有弹窗都去点不管数据是不是空的都往Excel里写遇到两种状态的处理方式还不一样就彻底没辙。这些问题的答案全是If条件判断。我做影刀RPA的头两个月流程全靠顺序执行硬撑直到被一个登录弹窗折腾了三天才认真把If和循环的配合套路一个个磨出来。这篇给你5个我天天在用的实用模式每个模式都说清楚用什么指令、参数怎么填、坑在哪。先认识If家族条件、网页包含、End If的分工影刀RPA的If家族指令不少新手先掌握这三个【IF 条件】做变量和文本的逻辑判断参数是对象1、关系、对象2三段式关系下拉里有等于、大于、包含、为空等可选【IF 网页包含】检测指定的文本或元素是否出现在网页中参数里检测网页是否可以选包含元素从元素库选已捕获的元素或包含文本直接输入文字【End If】是每个If的收口漏了会直接报IndentationError。两个易混指令要分清【IF 网页包含】判断的是元素或文本在不在【IF 元素可见(web)】判断的是在不在视口里显示。一个藏在下拉里的元素前者判真后者判假选错指令排查半天。多状态场景用【Else IF】和【Else IF多条件】串分支最后必须有【End If】封口。所有If指令的判断依据尽量选稳定的东西class属性、固定文案、变量值别用会变的坐标。模式一循环内跳过——不符合条件的数据直接略过场景抓一个商品列表只要价格低于100的其他的跳过。这是最基础的模式For次数循环或循环相似元素的循环体里放【IF 条件】。结构流程图式拆解循环相似元素(web)抓取价格列元素操作选获取元素文本内容存到变量价格文本循环体里放【IF 条件】对象1选价格文本关系选小于对象2填100条件成立If分支内执行清洗和写入Excel的指令条件不成立什么都不做直接走到循环结束进入下一项坑点价格文本是¥1,299.00这种字符串直接比较会报类型错误先做替换去掉符号再转数字。这个模式每天要用几十遍练熟它。模式二弹窗拦截——操作前先判断元素存在场景点击搜索按钮前页面可能弹出广告或登录框不处理就点不到目标。模式是在关键操作前放【IF 网页包含】判断弹窗元素是否存在。结构拆解【IF 网页包含】网页对象选当前页面检测网页是否选包含元素从元素库选之前捕获的弹窗关闭按钮包含If分支内【点击元素(web)】点掉关闭按钮再放一条等待指令不包含Else分支内什么都不做或记一条日志If结束后再执行原本的搜索操作配套的XPath参考# 捕获元素登录弹窗的关闭按钮IF网页包含判断目标 //div[classlogin-dialog]//img[classclose-btn] # 模糊匹配查找包含关闭文字的任意可点元素 //*[contains(text(),关闭)]  # 捕获元素搜索输入框弹窗处理完后的主操作目标 //*[idsearch-input]这个模式的变体是用【IF 网页包含】判断包含文本比如判断页面有没有出现登录已过期有就走重新登录分支。文字判断比元素判断更抗页面改版能用文字就用文字。模式三双列表下标关联——长度相同时按下标配对场景页面上商品标题和价格是两列分开渲染的需要配对写入。如果两个相似元素列表长度永远相同可以只循环其中一个用下标去另一个列表里取对应项。结构拆解循环相似元素抓标题列勾选输出循环项的位置得到位置变量循环体里用【获取相似元素列表】一次性拿到价格列表变量【IF 条件】对象1是位置变量关系小于对象2是价格列表的长度——防止标题比价格多一条时下标越界条件成立才按下标取价格和标题一起写入这个If判断就是保险丝。我踩过直接取下标的坑页面最后一条商品价格渲染慢价格列表比标题短一个流程当场报下标越界。加了长度判断之后短了就跳过并记日志问题消失。模式四无限循环加退出条件——不知道要循环几次场景翻页抓取但不知道总页数或者要一直点加载更多直到按钮消失。用无限循环配合【退出循环】指令。结构拆解无限循环指令开头循环体第一步【IF 网页包含】判断下一页按钮是否还存在或加载更多是否还在不存在If分支内【退出循环】直接跳出整个循环存在抓当前页数据点击翻页等待加载退出循环这条指令可以对For次数循环、ForEach列表循环、循环相似元素做动态控制所以同样的结构也能用在循环里遇到某个特殊值提前收工的场景。务必再串一个防死循环计数器循环体里让计数变量加1【IF 条件】判断计数超过500就退出循环并Raise抛出异常——我有过一次判断元素捕获错了无限循环空转了一小时从那以后没有计数器的无限循环我一律不跑。模式五Else IF多状态分支——一种数据多种处理场景订单状态有待发货、已发货、已完成、已取消四种每种要写入不同的表格或执行不同的后续操作。用【Else IF多条件】串起来。结构拆解【IF 条件】状态变量等于待发货分支内写入待发货表【Else IF】状态变量等于已发货分支内写入发货表并发飞书通知【Else IF】状态变量等于已取消分支内只记日志最后的【Else】兜底未知状态写进异常表截图留证【End If】收口兜底的Else分支是我吃了亏加上的某天平台新增了Partial状态四个已知分支全不命中数据无声无息丢了。有了兜底分支新状态一出现就能在异常表里看到马上补逻辑。If之外还要补的课全模块坐标If和循环是流程控制的两大件但一个能跑的流程还需要这些配套。安装装好浏览器插件才有网页自动化。元素定位四合一IF网页包含里用的元素捕获时多校验几条保证是整组XPath的contains()写法和CSS的属性选择器都能做模糊匹配按文本判断优先XPath。变量类型IF条件比较前先统一类型字符串数字互转是最常见的坑。流程控制五种循环加If加Try-Catch本篇的5个模式就是它们组合拳的招式表。网页自动化三种等待指令放在If判断之前页面没加载完判断必然失真。数据处理Excel读写配合模式一做条件写入文本清洗配合模式五做状态归一。鼠标键盘图像【IF 图像存在】和【IF 屏幕上存在文本(OCR)】是元素定位失灵时的判断备胎桌面软件自动化离不开它们。进阶技能HTTP请求的状态码用IF条件判断200走正常流程401走重新鉴权。平台实战小红书搜索结果分图文和视频两种卡片用模式五分流处理拼多多弹窗密集模式二要嵌套两层。系统联动飞书群机器人的通知开关用IF条件控制只有异常时才发避免刷屏。工程化规范If嵌套超过三层就拆子流程调试时右键添加断点单步执行盯着变量面板看每个分支的走向。易错速查If条件5个高频坑报IndentationError: expected an indented block用了IF但没放【End If】或者Else IF写在了If块外面数字比较报类型错误IF条件拿字符串和数字比较先转成同类型再比IF网页包含永远判假网页对象选错了或元素捕获时机太早页面还没渲染出来前面加等待指令弹窗判断和点击之间页面又弹了新的判断和操作间隔太长把弹窗处理封装成子流程在每次操作前调用多状态分支漏了未知状态最后一个Else兜底分支永远要写配合截图和日志留证学习资源与延伸阅读If配循环的5个模式覆盖了我日常流程里九成的判断场景。每个模式我都做成了带注释的示例流程源码放在代码仓库 home.linyan.cloud可以直接参考改造对着自己业务改判断条件就能上手用。#影刀RPA #RPA自动化 #条件判断 #流程控制 #网页自动化作者林焱