普通验证码容错思路
验证码是这个样子的
特点是,4 位数字字母。
验证码容错
以下是验证码部分的容错浏览预览图:
分解一:最多尝试 5 次
先用个 try
起头;
黄框部分
是异常处理,弹框 + 返回错误;
绿框部分
的 while 循环起,但设置变量
中的i
累加 5 次后,关闭登录窗口,中止循环。如红框的if
和蓝框
的关闭窗口,意思是:当验证码识别错误后,反复识别,但超过 5 次后退出关闭窗口;
右下角框部分
是点击一次刷新验证码,鼠标点到验证码框,获取验证码截图,再识别验证码,并得到验证码;
分解二:判断验证码
拿到验证码后,进入首次判断,if
条件是判断验证码是不是 4 位;
如果不是 4 位(有时会识别出 3 位),红框部分
直接continue
跳过此次循环再来一次;
如果正好是 4 位,挂个try
:
绿框部分
: 把验证码输入,并点登录,如果成功跳转,拾取跳转后页面中的一个“标识字符”,进一步验证这个标识字符是否拾取到。
分解三:容错判断
用if
来判断这个“标识字符”,如果在跳转页拾取到,代表登录成功,return 一个成功;如果没有拾取到,很可能是验证码错了,拾取登录页面的错误提示,find
提示中的前几个字 “登录失败”,用消息框把提示弹出(可进一步容错也可以不要,因为验证码识别率挺高了,出错大概率是识别错了,不太可能是其他原因,所以这里也不用拾取错误提示),再 continue
。
============
欢迎拍砖,批评指正。