影刀RPA新手教程_条件判断完全攻略If与Switch让你不再写死逻辑
2026/6/15 1:01:06 网站建设 项目流程

影刀RPA新手教程:条件判断完全攻略——If与Switch让你不再写死逻辑

影刀RPA条件判断是流程智能化的关键。没有条件判断的流程就像没脑子的机器人——不管页面什么状态都硬着头皮走,走到一半出错也不知道该往哪拐。这篇把影刀里If和Switch的所有写法讲透。

作者:林焱 | 影刀RPA新手教程系列


条件判断的三大场景

每个RPA流程至少会遇到这三种需要判断的情况:

  • 状态判断:元素存在吗?登录了吗?数据加载完了吗?
  • 分支选择:结果成功了走A流程,失败了走B流程
  • 循环控制:翻页翻到什么时候停?数据够100条了吗?

这三种场景对应的指令分别是:If条件、Switch分支、While循环中的条件。


If条件:最基础也最容易写错

基础写法

影刀的If指令判断一个表达式是否为真:

if 变量A > 100: 执行操作1 else: [video(video-6FuWjbmZ-1781421471656)(type-csdn)(url-https://live.csdn.net/v/embed/525010)(image-https://v-blog.csdnimg.cn/asset/f4faa587144cb7070f19e8b36813806b/cover/Cover0.jpg)(title-店群矩阵自动化突破运营极限!)] 执行操作2

支持的比较运算符:><>=<===!=

支持的逻辑组合:andornot

常见误区

误区一:字符串和数字混用

price = "99" # 这是字符串 # 错误:字符串"99"和数字100比较,Python会报错 if price > 100: ...

解决:比较前统一类型

price_num=int(price)ifprice_num>100:...

误区二:空值判断

# 错误写法ifdata==None:# 用 is None 更好ifdata=="":# 只判断了空字符串,没判断Noneifnotdata:# 0也会被当成False,有歧义# 正确写法ifdataisNoneordata=="":print("数据为空")

误区三:多重条件缺少括号

# 错误(容易混淆优先级) if status == "上架" and price > 100 or stock > 0: # 正确(加括号明确意图) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/8e27d02a7df944269624b1344ef6dae3.png#pic_center) if status == "上架" and (price > 100 or stock > 0):

Switch分支:多选一的优雅写法

影刀的Switch适用于"变量等于哪个值就执行哪个分支"。

switch 平台选择: case "淘宝": 执行淘宝采集流程 case "京东": 执行京东采集流程 case "拼多多": 执行拼多多采集流程 default: 记录日志:未知平台

什么时候用Switch而不是多个If

# If链(推荐当判断条件不同时)ifplatform=="淘宝":...elifprice>100:# 条件完全不同,用if链...# Switch(推荐当条件基于同一个变量时)![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1f600d4ee8184ab2b3a80252ab5f4d98.png#pic_center)switch platform:case"淘宝":...case"京东":...case"拼多多":...

简单规则:如果每个分支判断的是同一个变量的不同值,用Switch;如果判断的是不同条件,用If链。


实战场景:流程中的条件判断

场景一:采集结果分支处理

# 运行采集流程,得到结果 采集结果 = 执行子流程("采集商品数据") switch 采集结果.状态: case "成功": if 采集结果.数据数量 > 0: 保存到Excel(采集结果.数据) 发送通知("采集完成,共" + 采集结果.数据数量 + "条") else: 发送通知("采集完成,但无数据") case "登录过期": 执行子流程("重新登录") 重新执行采集 # 回到上一步 case "IP受限": 切换代理IP() 等待(60000) # 等待1分钟 重新执行采集 default: 发送告警("采集异常:" + 采集结果.错误信息)

场景二:数据分拣

# 从采集的数据中分类处理foritemin采集数据:price=float(item['价格'])stock=int(item['库存'])ifprice<=0:item['分类']='异常数据'continue# 跳过ifstock==0:item['分类']='已售罄'elifprice<50:item['分类']='低价'elifprice<200:item['分类']='中价'else:item['分类']='高价'

场景三:自适应失败重试

尝试次数 = 0 最大尝试 = 3 while 尝试次数 < 最大尝试: 尝试: 点击元素("#submit-btn") break # 成功就跳出循环 捕获 元素不存在: 尝试次数 += 1 if 尝试次数 == 1: [video(video-HpTmsdEU-1781421478194)(type-csdn)(url-https://live.csdn.net/v/embed/524992)(image-https://v-blog.csdnimg.cn/asset/b59aed2f01d4fe8583467562aaf4dcfd/cover/Cover0.jpg)(title-temu店群自动化报活动案例)] 等待(2000) # 可能页面还没加载完 elif 尝试次数 == 2: 刷新页面() 等待(5000) else: # 第三次还是失败,不重试了,发告警 发送告警("提交按钮连续3次点击失败") 截图保存("submit_error.png") break

嵌套条件的"三层上限"原则

条件嵌套超过三层基本无法维护:

# 反例(四层嵌套,谁看得懂?) if A: if B: if C: if D: ← 疯了 ... # 改成提前返回 if not A: return if not B: return if not C: return if D: ...

小结

条件判断的三条心法:

  • 判断前先统一数据类型(字符串别和数字比)
  • 同一变量的多分支用Switch,不同条件用If链
  • 嵌套不超过三层,否则用提前返回拆分

把这些原则内化成习惯,流程的可读性和稳定性会提升一个档次。


内容标签:影刀RPA / 条件判断 / If语句 / Switch / 流程控制

作者:林焱

本文是「影刀RPA从零到实战」系列文章之一,持续更新实操技巧与避坑经验。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询