IS-PRA 小项目实战全解析 -- 读写子流程
说在前面
本篇贴子是把这篇贴子里 IS-PRA 小项目实战全解析 提到的子流程汇总一下。
有兴趣的朋友可以先看下之前的贴子。
子流程 get_login
这个子流程是在登录前,读取数据表里的用户名和密码用的。
流程图
思路说明
先把数据表的地址存给全局变量: File_path
,如:r'C:/Users/Administrator/Desktop/peixun.xlsx'
读取数据表整行数据,返回 list
, 如图:
通过代码块,找出用户名和密码来:
P_login_card = P_login_list[2]
P_login_pwd = P_login_list[6]
再分别的把用户名和密码返回;
变量说明
全局变量: P_num
,这个变量是指数据从第几行开始读取; File_path
, 这个变量是指数据表的位置 ;
流程参数:PN
,是为了从调用此流程的流程(login
子流程)中获得读取数据表中的哪行数据。
流程变量:即用户名、密码和整行数据的 list
, 用来返回用户名和密码;
子流程 set_login
这个子流程是在登录成功 / 失败后,把状态写入数据表用的;
流程图
思路说明
先通过一个流程参数 flag
来判断是写入 成功
还是 失败
;
给单元格写入状态和设置单元格背景颜色;
所有的参数是在调用子流程的流程中设置的。
子流程 get_act
这个子流程是在激活课程前 ,读取激活码和激活密码用的;
流程解释,参考上面的 get_login
子流程;
子流程 set_act
这个子流程是在激活成功 / 失败后,把状态写入数据表用的;
设计思路与 set_login
相同;
子流程 ver_order
这个子流程是在激活课程前 ,判断页面是否打开的容错流程;
主要通过“元素是否包含文本”组件来判断页面是否打开,因为网络可能不稳定,所以设置了两次等待时间;
识别验证码
根据设计思路:
1,先套个 try 异常;再来个 while 循环,超过 5 次尝试后,return 0,并强关窗口,跳出循环;
while(
true
) 进入循环,设置自增变量 (i=i+1
),当 if(i<5
) 开始识别验证码,否则强制关闭窗口;
2,识别验证码,容错(判断验证码不是 4 位)
截图,验证码识别,设置变量 (变小写) , if(
len(V_code)==4
),如果验证码是 4 位,则尝试登录,不是就continue
循环
验证码的识别不是免费的,需要在后台充值能力点数;填写
apiKey
和secretKey
才能使用。
3,验证码正确后,验证登录,成功后再 return 1
把验证码填到文本框,尝试登录,若能进入后台,就抓取验证文本,返回
1
,否则continue
重试;
其他子流程
还有 set_IP
和 ver_act
等子流程,与 set_login 和 ver_order 子流程类似,不在赘述。
本贴是这次小项目实战解析的补充贴;
对原贴感兴趣的小伙伴,请看 IS-PRA 小项目实战全解析