当前位置: 首页 > news >正文

影刀RPA新手教程:子流程参数传递完全指南——怎么把数据传进去,把结果传出来

影刀RPA新手教程:子流程参数传递完全指南——怎么把数据传进去,把结果传出来

小刘做了个商品价格监控流程。淘宝、京东、拼多多,每个平台都是一个子流程,主流程里依次调用。

但他遇到一个问题:想让每个子流程自动去查不同的商品,而不是写死在流程里。比如今天查"蓝牙耳机",明天查"充电宝",每次要手动改子流程里的搜索关键词。

"参数传进去就行了。"我说。

“参数?怎么传?”

安装与配置:参数在哪里配置

每个子流程都有两个参数配置区:输入参数和输出参数。

输入参数是"别人给你的"——调用方传给子流程。
输出参数是"你给别人的"——子流程返回给调用方。

在子流程的属性面板最上方,有输入参数和输出参数两个标签页。点"添加参数",填写参数名、参数类型、默认值。

输入参数的类型有:字符串、数字、布尔值、列表、字典。类型要匹配,传字符串的地方不能传数字。

我吃过类型不匹配的亏:传了一个数字123当搜索关键词,影刀自动转成了字符串"123",结果搜索"123"搜不到东西,调试了半小时才发现。

变量与数据类型:传数字还是传字符串

先来说清楚数据类型。影刀支持的参数类型有5种:

字符串:文本类型,比如"蓝牙耳机"、“https://www.taobao.com”
数字:整数或小数,比如100、3.14
布尔值:True或False,一个表示"是/否"的值
列表:一组数据的集合,比如[“耳机”,“充电宝”,“数据线”]
字典:带标签的键值对,比如{“name”:“耳机”,“price”:99}

参数类型必须精确对应。在子流程的输入参数配置里,类型选了"字符串",调用方传进来的值就应该是引号括起来的文本。

案例主线:商品价格查询子流程

我们的目标是做一个通用子流程,接收商品URL,返回商品价格。

主流程用的时候:

  • 传入:https://item.taobao.com/item.htm?id=123456
  • 返回:149.00

换成另一个商品也能用,不需要改动子流程任何代码。

设置输入参数

打开子流程属性面板,在输入参数标签页点"添加参数"。

拼多多店群自动化报活动上架!

参数名:product_url
参数类型:字符串
默认值:空(留空或者填一个测试用的URL)
参数描述:要查询价格的商品页面URL

参数名称很重要!这是你以后在子流程里使用和外部调用时要引用的名字。命名规范:全小写英文+下划线,见名知义。product_url、user_email、start_date这样。

在子流程里使用输入参数

参数设好后,在子流程的指令节点里就能用了。

比如"打开网页"指令,URL参数填:product_url。影刀会自动取输入的参数值。注意,这里填的是参数名,不是具体的网址。

打开网页 -> product_url

子流程运行时,传入的是淘宝商品A的链接,它就打开商品A。传入的是京东商品B的链接,它就打开商品B。

这就是参数化的核心好处:同一段代码,不同输入产生不同结果。

网页自动化:根据URL打开商品并提取价格

商品页面打开后,等价格元素出现,然后用XPath提取价格文字。

等页面加载:等待元素出现 -> XPath: //span[@class=“price”]

提取价格:获取元素文本 -> 用同样的XPath,结果保存到price_text变量。

price_text可能是"¥149.00",需要清洗:去掉¥符号,转换成数字。

用Python指令处理更简单:

price_text=GetVar("price_text")price=float(price_text.replace("¥","").replace(",",""))SetVar("price_clean",price)

float()是把文字转成数字的函数。replace替换¥和逗号,得到纯数字字符串,再转成数字类型。

设置输出参数

价格取到了,现在返回给主流程。

在子流程属性面板的输出参数标签页,添加参数:

参数名:product_price
参数类型:数字
参数描述:商品的价格,单位元

在子流程最后一步,用"设置变量"指令,把计算好的price_clean赋值给product_price。

注意:product_price是输出参数变量,它是一个特殊的变量,子流程执行完后会把这个值传回主流程。

XPath与CSS选择器:提取不同网站的通用做法

淘宝、京东、拼多多的价格元素XPath肯定不一样。怎么让子流程通用?

方案一:输入参数不只传URL,还传XPath。

输入参数多加一个:price_xpath。主流程在调用时一起传入。

打开网页 -> product_url 等待元素出现 -> price_xpath 获取元素文本 -> price_xpath -> 保存到price_text

每个平台的调用方传递不同的XPath:

  • 淘宝://span[@class=“price”]
  • 京东://span[@class=“p-price”]/span
  • 拼多多://div[@class=“price-box”]/span

方案二:子流程内部用If判断自动匹配。

获取当前网页域名 -> domain 如果 domain 包含 "taobao":用淘宝的XPath 如果 domain 包含 "jd":用京东的XPath 如果 domain 包含 "pinduoduo":用拼多多的XPath

方案一更灵活,方案二更方便(调用方不用管XPath细节)。实际选哪个看场景。

流程控制:在主流程里调用并使用返回值

主流程调用子流程的配置:

  • 选中指令:“调用子流程”
  • 选择子流程:“子流程_获取商品价格”
  • 输入参数product_url:填入变量taobao_url(值为具体商品链接)
  • 输出参数product_price:保存到变量taobao_price

调用完成后,taobao_price变量里就是商品的价格了。接下来可以用If判断:

如果 taobao_price < 100: 日志输出"价格低于100元,值得买" 写入Excel标注"可入手"

数据处理:一次传多个参数

有些子流程需要多个输入。比如不只是查价格,还要查库存、评分。

输入参数可以加多个:

  • product_url:商品URL
  • extract_fields:要提取的字段列表[“price”, “stock”, “rating”]

在子流程里用ForEach循环遍历extract_fields:

ForEach field in extract_fields: 如果 field == "price":提取价格 如果 field == "stock":提取库存 [video(video-yq6uxu8B-1782670859992)(type-csdn)(url-https://live.csdn.net/v/embed/526817)(image-https://v-blog.csdnimg.cn/asset/1d3c3709da119dd8c13ab01e9b282520/cover/Cover0.jpg)(title-TEMU店群矩阵自动化运营核价报活动)] 如果 field == "rating":提取评分

输出参数也可以是一个字典,把多个返回值打包在一起:

result={"price":149.00,"stock":328,"rating":4.8}SetVar("product_info",result)

进阶技能:参数校验

输入参数不一定合法。URL可能是空字符串,或者格式不对。

在子流程开头加校验:

如果 product_url 是空 或者 product_url 不包含"http": 日志输出"无效的URL" 设置输出参数为错误码 直接结束子流程

用"结束流程"指令提前退出子流程。这样主流程能收到一个明确的错误信号,而不是执行到一半报一个莫名其妙的错。

系统联动:价格低于阈值时发通知

价格查出来了,如果低于目标价格,发飞书通知。

主流程里调用子流程获取价格后:

如果 product_price <= target_price: 调用子流程_发飞书通知 输入参数: message = "商品" + product_name + "当前价格" + to_string(product_price) + "元,低于目标价" + to_string(target_price) + "元"

飞书通知子流程接收一个message字符串做输入参数,内部调用飞书Webhook。具体的Webhook配置可以在home.linyan.cloud上找到模板。

工程化规范

参数命名规范很重要。子流程多了之后,参数名一乱,调用的时候就分不清。

推荐命名规则:

  • 输入参数用英文小写+下划线,语义清晰
  • product_url、target_price、extract_fields、timeout_ms
  • 注意加上单位提示,比如timeout_ms(单位毫秒),避免第一个人写秒第二个人写毫秒

参数描述一定要填。影刀支持在参数配置里写描述文字,将来调用时会显示在下拉提示中。

常见报错与解决

“参数类型不匹配”:传字符串给数字参数,或者反过来。严格按参数定义的类型传值。

“输出参数未赋值”:子流程执行完了但输出参数还是默认值。检查子流程内部有没有"设置变量"指令给输出参数赋值。

“参数未传递”:主流程调用子流程时,某个输入参数忘了填值。检查调用配置,确保所有参数都设了。

#影刀RPA #RPA教程 #影刀新手教程 #子流程 #参数传递 #流程封装 #RPA开发

作者:林焱

http://www.jsqmd.com/news/1098380/

相关文章:

  • 未来展望:openEuler/easybox路线图与未实现命令的优先支持计划 [特殊字符]
  • 告别QQ音乐加密格式限制!Mac用户必备的音频格式转换神器
  • 怎样高效使用BallonTranslator:面向新手的深度学习漫画翻译方案
  • C盘文件怎么清理?【图文讲解】C盘文件夹哪些可以删除?完整查找清理教程
  • 量子粒计算:从经典到量子的信息处理范式迁移
  • 深度学习加速器架构:混合精度计算与张量核心优化
  • 医院信息系统(HIS)
  • 一文搞懂正向代理与反向代理
  • FPGA稀疏卷积优化:SparsePixels框架解析与应用
  • 终极指南:5分钟让PlayStation手柄在Windows游戏上完美运行
  • 含零代码SAAS、AI编程、源码定制交付
  • 影刀RPA新手教程:外卖运营自动化完全指南——菜品同步、好评管理与外卖数据分析
  • 终极MP4视频修复指南:10分钟免费拯救损坏文件完整教程
  • 如何配置Kiran会话管理器:从基础设置到高级调优的7个技巧
  • 如何免费解锁加密音乐:3分钟掌握跨平台播放的终极技巧
  • 计算机毕业设计之基于社交电商的网络购物平台的设计与实现
  • FPGA加速稀疏卷积:原理、实现与性能优化
  • 别再手动连线了!用这三个脚本(ins.py/automatic/sort.csh)搞定Verilog SOC TOP集成
  • 5大AI音频插件:让Audacity秒变专业音频工作站 [特殊字符]
  • G-Helper:三步解锁华硕笔记本极致性能的轻量级神器
  • Steam Deck模拟器配置的革命性工具:EmuDeck架构深度解析
  • 新手自动化测试入门:5个精选练手项目与实战框架搭建指南
  • archlinux远程桌面控制向日葵安装
  • 如何快速检测微信单向好友:5分钟找出谁删除了你
  • MySQL数据分析实战:从SQL语法到业务洞察的思维跃迁
  • 企业级GB28181视频监控平台实战:wvp-GB28181-pro深度架构与部署指南
  • 奔驰七类常见故障:漏水、漏油、抖动、异响一次讲透
  • 基础示例:单工作表 Excel 转 TXT以下是将一个 Excel 文件中的第一个工作表转换为 TXT 的完整步骤:
  • Unity GLTF导入革命:5分钟掌握GLTFUtility的终极指南
  • Div. 2 CF 1106A题