RPA产品小白学习手册-自动化流程构建
2023-02-24 16:41:24 1 举报
AI智能生成
针对近期很火的RPA工具做的文字版教程,通过解构流程构建过程中所需要做的事情,将学习分为一个基本概况+七大应用模块+正则表达式+python语言对照的学习合集,适合新手小白或者有python基础的人员学习RPA操作
作者其他创作
大纲/内容
建立一个应用的骨架流程
场景
网页、软件、Excel
三大逻辑
判断、等待、循环
数据的表达
数字、字符串、列表
元素的通用性
元素的实质、元素的通用性
流程的规范性
变量命名、子流程
错误处理
Try & Catch
流程的调试
单元测试、全局变量
三大基本逻辑
判断
单分支
IF→执行
二分支
IF&ELSE
多分支
IF & ELSE IF & ELSE
等待
使用场景
增加流程稳定性,可以等待出现也可以等待消失
加载有延迟或者监控事件
等待时间固定
固定等待时间
等待时间不固定
监控某元素出现/消失
循环
使用场景
批量操作
与等待搭配使用监控事件
循环类型
次数循环
依次循环
条件循环
控制循环
继续下一次循环
退出整个循环
数据表达
数据类型
单个数据
数字
字符串
布尔类型
多个数据
列表(数据容器)
数字格式
在python表达式直接输入和运算
整数和小数两种
字符串格式
表达形式
文本模式下直接输入
python表达式下用双引号输入
拼接是用双引号和加号操作
主要操作
字符编号(正向序从0开始,逆向序从-1开始)
截取一个字符text[0]
截取一段字符text[0:3]
列表
中括号内,用引号圈起来,逗号隔开,英文格式
["杭州","宁波","衢州"]
正向序和逆向序同理,这里截取的是字符串
常用的是列表的依次循环
数据类型切换
字符串转数字
整数int("10")
小数float("3.14")
数字转字符串
str(100)+"元"
Excel的交互
主要操作
启动&循环Excel
读取&写入Excel
新增&删除行列和sheet表
读取Execl内容
读取总行数
单元格
输入行号和列号(ABC)
读取内容为数字或字符串(文本格式)
行
输入行号(数字)
读取内容为一维列表[1,2,3]
列
输入列号(大写字母)
读取内容为一维列表[1,2,3]
区域
输入区域左上角和区域右下角的行列号
读取内容为二维列表[[1,2,3],[4,5,6],[7.8.9]]
读取&写入的内容格式相同,流程相反
循环Execl内容
循环所有行
输入:起始行号和结束行号
每次循环的内容是一行数据列表[1,2,3]
行号同时也被循环
循环所有列
输入:起始列号和结束列号
每次循环的内容是一列数据列表[1,2,3]
列号同时也被循环
循环区域
输入:区域左上角和区域右下角单元格的行列号
每次循环的内容是循环区域的一行数据列表[1,2,3]
行号同时也被循环
删除Execl内容及sheet页操作
sheet页
添加sheet页
第一个&最后一个
激活sheet页
名称&位置
删除
删除某一行
删除所有行
区域处理
选中区域
拷贝区域
粘贴区域
获取第一个可用行
获取第一个可用列
获取列上的第一个可用行
Python对应函数
1、字符串
变量名只能包含字母、数字和下划线。且数字不能开头
name.title(),把每个单词的首字母大写
name.upper(),把每个字母都大写
name.louwr(),把每个字母都小写
拼接时字符串要用引号,变量不需要用引号
name.lstrip,删除字符串前面的空白
name.rstrip,删除字符串后面的空白
name.strip,删除字符串前后的空白
#后面写的注释不会体现在终端
2、组织列表
name[0]='KOBE',用赋值的方式修改列表某位置的值
name.append('KOBE'),在列表最后添加一项
name.insert(0,'KOBE'),在指定位置添加一项
del name[0],删除某个位置的值,并且不再启用
name.pop(),删除最后一项,并且把值保留下来
name.pop(0),删除某一位置的项,并且把值保留下来
name.remove('KOBE'),删除指定值,并且把值保留下来
name.sort(),同等大小写按字母顺序排列,永久性更改,不能直接打印函数
name.sort(reverse=Ture),同等大小写按字母颠倒顺序排列,reverse是颠倒的意思,永久性更改,不能直接打印函数
print(sorted(names)),同等大小写按字母顺序排列,显示时更改,能直接打印函数
names.reverse(),只是颠倒原有顺序,不对它排序。永久性更改,但是可以改回来,再次用reverse即可
len(names),列表的长度,可以直接打印
3、操作列表
循环:for name in names
循环函数中,缩进同样格数表明他们处于同一个循环,会被反复执行
缩进常见错误:忘记缩进-忘记多个缩进-多余的缩进-循环后多余的缩进-遗漏了冒号
range(1,5)即把1-5选出来,不包含5,用于数值列表
list(range(1,5)),直接把数字放入列表
range(1,5,2),指定两个数相差2
min(list),max(list),sum(list),对列表进行简单统计
列表解析:nums=[k**2 for num in range(1,11)],列表解析抵得上三四行代码
列表的切片处理names[0:4],代表0-3的元素,如果前面不填则默认从第一个开始,names[2:]即第3个到末尾
切片本身就是一个列表,例如for x in names[:3]
用names[:]作为names的一个副本,内容一样但是是两个列表
普通列表可以灵活修改,元组是创建以后不能被修改的列表,()表示元组
修改元组变量不能直接修改,可以通过重新赋值的方式改变输出的内容
4、条件判断
==用于判断是否相等,!=用于判断是否不等,同个逻辑关系下需要用:连接,配合缩进
判断是否相等时是需要考虑大小写的,如果大小写不重要就需要额外处理,可用于检查是否已经存在相当数据
需要多个条件同时满足可以用and,例如A>0 and B>0
只需要多个条件中有某个满足可以用or
检查特定值是否存在于列表,name in names,接下去判断
检查特定值是否不存在于列表,name out in names,接下去判断
if后面不一定接else,也可以由一连串elif组成,对情况的描述更清晰,else比较宽泛模糊
if-elif-else最终只输出一个判断结果,有时候需要判断多个独立if(不管前面的结果是怎样,都需要进行到这一步)
判断列表是否为空,只需要if names即可以返回一个判断值
使用多个列表,判断两个列表的差异,可以循环其中一个,看是否每一项都在另外的列表里
5、字典
通过选取字典和获取键名,即可获取键值
name['KOBE']=24,通过赋值的方式添加和修改键-值对
del names['KOBE'],写完以后就已经完成永久删除,用del删除只要写完就可以了
for key,value in user.items()。遍历键值对,字典都需要后面的类函数
for name in names.keys(),遍历字典中的所有键
按顺序遍历字典的所有键可以用sorted(),临时显示
for name in names.value(),遍历字典中的所有值
set(names.value()),可以获得集合,集合可以看成特殊的、不带重复项的列表
字典嵌套列表、列表嵌套字典、字典嵌套字典
6、用户输入和while循环
+=是在字符串后面再附加一个字符串
name=input(KOBE)
input输入的数字,在输出时是字符串格式,需要int()转化为数字使用,age=int(age)
%是求两数相除以后的余数,不会体现倍数,搭配==0判断奇偶
while循环要搭配变量去比较,可以设置一个标志,用于判断
终止循环可以用break语句,控制循环
继续下一次循环用continue语句,控制循环
判断列表是否为空,直接while list就可以了,不用加其他东西
7、函数
使用def来定义我所需要的函数,def say()
参数传递,例如def say(name),name就变成了一个变量,可以赋值
形参就是假定的,实参就是真实数据
调用多个函数,位置实参的方式,例如say ('name','num')
指定关键字实参,例如say(name='kebe',num=24)
默认值参数,在定义函数时就输入参数,在调用时就不用输入了;如果新输入则覆盖默认值
参数输入过多或过少都会提示错误
8、对文件操作和异常处理
打开文件需要用到open(),函数
异常的处理
子流程
独立功能模块化
有利于简化主流程
方便单元化测试
可复用,只需要调用现成的
流程之间用【全局变量】传递数据,让数据有通用性
影响流程稳定性的因素
固定因素
检测出一个就地解决
随机因素
使用Try Catch
正常流程执行Try,异常情况执行Catch
用于监控【循环内】的流程
元素的通用性
元素捕获的实质
路径+限制条件
常用的限制条件
class——种类
index——位置
innerText——内容
找不到元素的情况
原因:元素属性发生变化
处理办法:先校验-后修复,只留下通用的属性
特殊情况:修复无法处理时,对比查找属性,更换或者取消或通配(*)
找到很多元素的情况
原因:限制条件过于宽松
处理办法:多加一些限制条件,如:class,index
注意:最后一定要校验元素通用性
软件操作自动化
元素是通用的嘛(元素的编辑)
如何自定义好友昵称(自定义对话框)
一定能搜出来嘛(条件判断)
有没有需要加载等待的地方(等待)
如何给钉钉好友批量发送消息(循环)
如何从Excel读取昵称再回填备注(与Excel交互)
能否把独立的内容模块化(子流程和全局变量
如何应对随机错误(Try & Catch)
鼠标键盘+图像自动化
使用场景:软件操作自动化的元素无法捕捉时的特殊情况;其他都与软件操作自动化相同
新增的部分:图像通用性(别人要使用这套流程)
处理办法:重新捕捉&本地导入
鼠标自动化
核心点:鼠标位置
功能:把鼠标移动到固定位置,执行点击和滚动等操作
键盘自动化
核心点:快捷键
功能:执行快捷键和输入文本
图像自动化
核心点:搜索图像
功能:在指定窗口搜索图像,完成点击、等待等操作
正则表达式
用处
从文本中提取有规律的内容
从文本中提取内容&数据批量抓取中格式化
字符
单字符
a—字符本身
.点—匹配除了换行符以外所有字符
\d—匹配单个数字
\w—匹配字母文字下划线数字
字符集
[aeiou]—匹配括号里任意一个字符
[0-9]—匹配0-9任意一个数字
[a-z]—匹配a-z任意一个字母
[\u4e00-\u9fa5]—匹配任意一个汉字
[a-z0-9A-Z]—匹配字母a-z、数字0-9、大写字母A-Z
多字符
原理是把单字符组合起来
匹配逻辑是从左至右找到第一段整体匹配的内容
重复匹配
+:匹配1次以上,尽可能多的匹配
\d+
*:匹配不限次,尽可能多的匹配
.*
{n}:匹配n次,固定次数
{n,}:匹配至少n次,尽可能多的匹配
\d{3,}
{n,m}:最少匹配n次,最多匹配m次,尽可能多匹配
\d{3,5}
向前向后匹配
包含限制引导
表达式:id=\d+
数据:#¥%id=321&
输出:id=321
数据:#¥%id=321&
输出:id=321
不包含限制引导
表达式:id=(\d+)
数据:#¥%id=321&
输出:321
数据:#¥%id=321&
输出:321
贪婪和不贪婪匹配的区别(?)
数据:<123>312>
贪婪:<.*>—123>312
不贪婪:<.*?>—123
贪婪:<.*>—123>312
不贪婪:<.*?>—123
适配多个匹配项
处理方法:取消操作界面【只找第一个匹配项】
如:匹配12k-18k里的所有数字
扩展情况
转义字符
\. \* \[ \] \\
特殊意义转变为本身意义
字符的边界
^:匹配字符串的开头
^\d必须为开头的数字
$:匹配字符串的结尾
\d$必须为结尾的数字
\b:截取出来的独立字符串
排除字符
[^aeiou]
匹配除了括号里的任意字符
子表达式
((ab){2})
或
((http|https):.*)
\s
匹配任意空白符
\t
制表符,即首行缩进
\n
换行符
反义元字符
\W:匹配任意不是汉字、数字、下划线、字母的字符
\S:匹配任意不是空白符的字符
\D:匹配任意非数字的字符
\B:匹配不是单词开头或结束的位置
0 条评论
下一页
为你推荐
查看更多