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 小项目实战全解析
