入门阶段, 花时间学习和记忆细枝末节,可能会反而分散新手去理解核心逻辑的精力,并且不常用的知识也很容易被遗忘。
简介:
以下是开发指南的思维导图:
RPA简介 | 开发者指南如果您没有听说过RPA,俗话说:磨刀不误砍柴功,那就先通过本章,了解一下RPA吧!https://documents.laiye.com/rpa-guide/docs/
Uibot 指南 - 幕布界面素自动化https://documents.laiye.com/rpa-guide/docs/ 界面素(页面中的图形部件)有 / 无目标指令(先查找这个界面素是否存在)目标选取选取的界面素后,同一个流程的任何一个流程块可选取多个界面素目标编辑选不中错选、漏选区域1:界面素的名字;区域2:界面特征备选项操作;区域3:界面特征(tag, parentid, aaname)错选https://www.mubu.com/doc/gDpGpf6CQ5
命令代码手册如下:
命令手册 | 命令手册 (RPA Command Manual)准确,丰富,稳定,在技术之路上为您护航!https://documents.laiye.com/rpa-command-manual/docs/
中级认证需要熟练以下操作:
- 读取Excel 表格进行打开,并进行数据 “写入区域”;
- 数组、字符串、数据表、字典相互转换(“将数组合并为字符串” 将数组转换为字符串,“分割字符串” 将字符串转换为数组);
- 对时间控件进行输入操作;
- 通过 UI分析器 进行页面素的分析;
- “获取文本” 或者是“数据抓取”来获得数据;
- 并通过“设置素选择”来设置下拉选项;
- 判断验证码是否错误。通过判断弹窗是否“判断素是否存在”而进行验证码输入的重试;
- 对数组进行截取操作,删除数组首尾项;
- 进行字符串的“替换字符串”从而替换掉"\r\n";
- 通过“查找字符串”来判断是否包含指定的字符串。
进行理论答题可以参考大佬的以下的文章:
UiBot RPA学习+认证内容总结(初学者必看)
RPA中级认证实操题
考题一、网站 客户导出 指定筛选
难点:
- 遇到 ID 动态随机的输入框,需要用 UI分析器 进行绑定确定;
- 需要对 “数据抓取” 抓取 主页 中的路径进行修改,例如从em标签修改为外层的 a标签——具体可以参考 中级认证教学视频 中的 “数据抓取” 章节视频(注意可能需要修改获取页数,并且翻页跳转过快会导致数据抓取条数不对);
- 抓取完的数据会出现不抓取表头便会有空数组的情况;
- 对结果进行筛选(“构建数据表” 然后再通过数据表的 “数据筛选” 进行某一列的列名的筛选便可筛选出农业行业)。
考题二、客户端 客户导出 时间去重排序
难点分析:
- 需要对时间控件进行鼠标后,键盘输入数字操作,并且在输入一小格之后通过 <—— 的使用来修改年月;
- 将 “数据抓取” 抓取到的数据转换为数据表,并且进行 “数据筛选” 与 “数据表排序” 进行降序操作。
考题三、客户端 客户选项 查询录入
难点分析:
- 鼠标下拉选项,并通过“设置素选项”以此来选中下拉选项;
- 通过 “获取文本” 从而获取整个客户端列表的数据;
- 将获取到的数据需要按照输入的格式做处理(首先是通过字符串替换来解决 "\r\n" 的问题,之后可以创建一个二维数据,通过 “删除并返回第一个素” 和 “删除并返回最后素” 去掉数组首尾的空字符串。再通过 “截取数组” splice,数组每五个截取一次创建一个输入的数组);
- 进行是否 “提交成功” 的文本判断,通过 If 实现假设提交失败还需要进行重新提交。
考题四、🌟客户端 客户时间 查询录入(最难)
之前登录步骤相同。
步骤四: 左侧【系统菜单】-【订单管理】-【订单录入】按钮
步骤五: 依次录入步骤三中获取的订单数据。直到全部数据录入完成。提示:【提交】按钮后会有弹框提示,需要判断弹框内容是否为“提交成功”,如果不是则需要重新录入该条记录,直到成功为止。
难点分析:
- 需要对 时间控件 进行鼠标后,键盘输入数字操作,并且在输入日这一小格之后通过 <—— 的使用来修改年月(录入同理);
- “数据抓取” 获得数据数组。可能会包含表头可以通过判断是否为表头名称,进而来判断是否要进行录入(注意可能需要修改获取页数);
- 下单日期录入需要从数组中拿出时间,对时间用 “-” 进行分割,再通过鼠标配合键盘操作完成录入;
- 各输入框会随机改变,需要“获取文本”(将ctrlname取消勾选),然后设置鼠标偏移量 相对应的输入框,进行再 “输入文本” 录入数组的数据项;
- 通过 “判断素是否存在” ,“获取文本” ,“查找字符串”进行弹框的 “提交成功” 文本判断,假设提交失败还需要进行重新进行输入。
考题五、网站 订单商品导出 时间查询勾选导出
步骤四:【查询】按钮;
步骤五:获取查询结果中的商品编号并去重;(注:如果有多页,需要翻页抓取)
步骤六:左侧菜单栏【库存】,勾选所有与步骤五中获取的商品编号相同的项,【导出选中项】按钮导出表格,保存为:"c:\exam data\rpa\level2\商品库存表.xlsx
难点分析:
- 通过UI分析器正确选取各输入框;
- 通过消息提示对验证码是否错误进行重新输入;
- 通过鼠标对时间控件进行正确的再进行筛选;
- 通过 “数据抓取”,采集数据,并通过转换为数据表的 “数据表去重” 进行商品编号的数据的去重;
- 需要抓取库存的数据,通过循环与订单的数据作对比,通过 UI分析器的 table-row 的i进行勾选(注意是否需要 +" " 转换为字符串,否则可能选不到,具体可以参考 中级认证教学视频 中的 “数据抓取” 章节视频);
- 需要通过鼠标,设置好保存文件的名称与路径。
以下是视频学习的学习内容总结
主页https://academy.laiye.com/teachvideo?t=68更多案例学习也可以看一下网址:
【汇总】UiBot教程汇总—必看(已更新120视频教程)-通知公告-UiBot RPA技术开发交流社区 - RPA机器人流程自动化 - UiBot RPA开发者社区UiBot开发者指南(必看):https://docs.uibot.com.cn/guide/命令手册:https://docs.uibot.com.cn/【视频教程】零基础学UiBot实战案例系列课程:https://forum.uibot.com.cn/thread-332.htm入门教程UiBhttps://forum.laiye.com/thread-50.htm?tdsourcetag=s_pc_aiomsg
RPA开发注意事项
运行过程前:
注意进行运行环境事项,运行详细流程进行提醒;
运行过程中:
注意无关信息对用户目标的干扰,友好地引导用户进行操作;
遇到问题应当如何进行解决,是否终止业务流程;
出现弹窗应该提醒弹窗具体功能,选项会触发什么操作,以及各注意事项
右下角弹窗或者是文字写屏进行机器人操作提醒
目录需要提醒用户进行指定
账号密码需要用户从对话以及文本框中获取
中级认证学习内容:
实际过程中可能会出现以下情况:
- 流程没有做容错处理,如验证码识别不可能做到100%正确
- 没有适配素特征变化,如某些素的ID或者位置会变化
1.数据抓取
可能会遇到如下问题:
1.a链接外层包着div或者是识别为em标签,因此在进行数据抓取时,并不能输出为链接
解决方法:
最终实现如下:
2.UI分析器与通配符
可能出现问题:“获取素属性” 想选中a链接标签并输出href,但是选中了em标签,并且目标编辑并不能像数据定义一样修改 <——— 通过UI分析器解决问题
⭕注意:可能会出现ID号是随机生成的情况,即动态ID!!<—— 尝试使用通配符*,将会变化的内容进行代替!!!
!!也有可能ID相似度特别高,通配符选取不合适<——选中相对于固定的素,通过 CSS Selector 绕过ID
3.客户端操作(获取文本以及下拉选项)
C/S架构下的素操作模式:
C/S架构系统通常需要在用户电脑上安装客户端,此类软件相对于B/S端(网页)来说更为复杂因为这些软件的构建可能使用了不同的编程语言和技术,例如我们熟悉的、微信等都属于C/S架构。
在上图中我们可以看到素特征编辑器里面的“Wnd”(窗口)节点下有一个“title”(标题)属性该属性说明我们当前选择的素所在的窗口标题是:"UiBot 交流①群”,如果更换为其他标题的窗口则无法输入。假如我们将该“title”属性改为:“UiBot 交流”,使用通配符替换掉“①群,②群……”,那么只要是标题以“UiBot 交流”开头的窗口都可进行输入。
案例一:数据表格抓取不到
C/S架构下某些控件使用常规的操作方法可能无法达到目的,例如我们使用“数据抓取"工具在下图客户端中抓取数据,但UiBot提示:“该目标不支持数据抓取”,如图:
类似问题是由于目前市面上的客户端底层实现原理不尽相同,其中个别客户端UiBot暂未适配数据抓取功能,但可以通过UiBot的其他功能来完成数据的抓取,例如可以通过“获取文本”命令一次性获取整个表格的内容,如图:
输入结果如下:
可以看到该方法同样可以抓取目标中的内容,所以大家在实施过程中,遇到问题时,一定要多转换思路,尝试不同的方法。还有少数客户端可能既不能用“数据抓取”命令,也不能使用“获取文本”命令来获得数据,此时可以继续尝试使用UiBot中的其他类似命令,另外,也可以尝试研究目标系统自带的功能,例如某些系统自带将数据导出成Excel表格功能,此时只需用鼠标"导出“按钮即可,也有系统可以直接按“Ctrl+A”和“Ctrl+C”将数据直接复制。
案例二:并非下拉列表标准控件
某些下拉列表框,无法使用“设置素选择"命令来选择下拉列表的内容,此时如果下拉列表中的数据需要通过滚动来显示的话,问题就显得比较复杂,因为我们并不知道需要选择的内容在列表中的位置,也就无法设置滚动条需要移动的具体位置,如图:
假如需要从上图中选择“奔驰汽车”,但它没有直接显示在下拉列表中,所以我们需要转换思路,可以考虑通过键盘的上下键移动选项来定位,例如“奔驰汽车”是第15项,可以按键盘方向下键15次即可,如果不知道“奔驰汽车”的具体位置,则每移动一次便判断一次下拉框(非下拉列表)的值,直到结果为“奔驰汽车”
案例三:时间日期输入控件
假如想在上方的输入框中输入“2022-07-09”,那么需要将日期拆分为年、月、日三部然后在上图的输入框中分别输入。但实际进行输入的时候才发现,上图日期控件中的年、月、日是一个整体,没有办法单独进行输入,如图:
也就是说如果手动输入的话,需要单独输入年、月、日,但却无法通过UiBot去选中这三个区域进行输入。所以可以先通过鼠标该控件,让其获得输入焦点,再通过模拟键盘的“<-”和“->”键控制输入焦点在控件内的位置,从而实现年、月、日的逐个输入。
4.🌟数据表的基本操作
数据表中还有很多实用的功能,例如:”数据表去重“、”数据筛选“等等。
5.素遍历与表格操作
案例一:选择相对应的输入框进行输入
获取遍历页面上的子素 ——> 如果为姓名,则偏移或者是后面的输入框
案例二:随机列表的某一项的列单格
- 遍历表格获取子素确定该单格在哪一列
- 查看操作的单格是否有和列数相关的属性
6.字符串与时间控件
案例一:字符串检索
字符串的处理在流程开发过程中经常会遇到,例如用户输入了一个邮箱号,我们想要简单验证格式是否正确,最常用的方法就是检测用户输入的内容中是否有“@”符号,假如用户输入的邮箱号是:"",这时可以使用“查找字符串”命令,并根据该命令的输出值来进行验证“@"是否存在。需查找内容如果存在,则返回该内容在字符串中的位置,否则返回0,如图:
案例二:时间日期控件选择
设置素文本
通过JS来设置日期控件上方文本框的值
遍历素进行选择
问题解决:
1.模拟键盘输入速度慢解决方案:
一、更换命令参数中的操作类型模拟操作
(1)模拟操作
- 调用系统API等实现键鼠操作,会实际移动光标
- 兼容性+++
- 速度+
(2)系统消息
- 发送健鼠消息到目标素,不移动光标
- 兼容性++
- 速度++
(3)后台操作
- 可以理解为调用了一次素的键鼠响应回调函数
- 兼容性+
- 速度+++
二、设置剪贴板文本后粘贴
- 涉及命令
- 系统操作-剪贴板-设置剪贴板文本
- 鼠标键盘-键盘-模拟按键
- 兼容性++
- 速度+++
2.将数组写入表格中
一、UiBot内置Excel命令
- 可纯后台操作,运行速度快,可靠性高
- 遇到复杂的格式文本可能需要先进行字符串处理,生成数组后再写入
二、键盘鼠标操作Excel
- 需要选中Excel窗口,执行速度受电脑性能影响,可靠性不是非常高
- 对于包含换行符、制表符的格式文本,可定位到起始单格后直接粘贴(格式符号由Excel自动转换)
3.重新打开页面后「图像」命令失败
注意UiBot图像相关命令中的「目标」参数:
- 为了提高匹配图像的效率,UiBot会先定位目标窗口,然后在目标窗口中查找匹配图像,如果目标特征值不正确,则会报错。
因此!使用通配符来提高目标素特征值的兼容性、精确度
- *: 表示0或多个任意字符实
- ?(英文句号): 表示1个任意字符
4.不同类型变量进行比较
- 基本类型
- 变量存储其本身的数值
- 可以直接使用「=」比较复合类型
- 复合类型
- 变量存储数值所在的内存地址
- 创建多个空数组时,UiBot自动分配的内存地址不一样「=」比较的的是内存地址,而非数值
判断是否为空数组的常用方法
使用「数据处理-数组-获取数组长度」命令,如果为0,说明是空数组。
案例分析:
1.微信自动回复新年祝福
面对案例应该考虑:
- 客户需求——明确需求场景;
- 分析需求——拆分理解挖掘客户需求内容;
- 项目开发——核对好需求内容以及具体实现;
- 技术分析——进行项目回顾,技术点进行拆分理解。
1.客户需求如下 :
2.拆分与理解:
了解业务流程,比和客户谈技术更合适
3.进行需求的核对
确认实现方案
4.技术点拆分
2.多个流程同时进行
仍是从以下4点进行展开:
- 客户需求
- 分析需求
- 项目开发
- 技术分析
1.用户需求分析:
2.拆分理解需求:
深入了解分析业务流程:
3.项目开发再详细核对需求:
确定最终方案:
4.项目回顾并进行技术分析:
3.航班自动升舱
1.客户具体需求:
2.拆分了解业务细节:
3.实际项目业务流程:
进行及时的测试:
最终确认方案:
4.实际所用技术:
4.时间输入框技巧
技巧包括如下方面:
- 键盘写入时间形式解决方案
- 下拉框选择时间形式解决方案
⭕注意:有些选择下拉框并非是select,而是由input封装而成的
解析:
有些日期框可以在里面输入,有些不能输入的,可以修改属性再做输入
或者使用设置素文本,设置素属性如果上述都不可行,就分析素采用鼠标模拟日期
如果素也分析不出来,那就把日期框按照坐标拆分,去移动
案例操作:
京东采集数据
1.搜索商品 流程块
相对应源代码
2.抓取数据 流程块
相对应源代码
使用学习:
系统命令行之遍历文件与文件夹
(1)实现原理:CMD 命令行
help 查看所有命令帮助
(2)dir 命令介绍
参数:必选参数:DIR - 可选参数:[ ]
(3)遍历文件与文件夹函数设计
参数以及返回值构思
注意可能文件名就包含空格,因此需要加入双引号声明为路径
(4)实例:
- 遍历获取指定后缀名的文件
- 递归遍历所有文件包含子文件
流程图详解
(1)流程开始
- 概念:代表流程开始位置
- 必须有一个开始,并且只能有一个开始
(2)流程结束
- 概念:代表流程结束
- 可有很多个结束而且可以没有结束
(3)🌟 流程块
- 概念:描述操作的具体步骤代码块
- 流程块数据(可以为变量与字典)传递:
- 输入 self.input
- 输出 return
- import 导入函数
(4)流程间的判断
- 概念:决定流程走向
- 进行多重连续判断
6.0.1版本在右侧变量位置
。
今天的文章 UiBot RPA学习+认证内容总结(初学者必看)分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/82735.html