![eda34ec53f625f061ebcede00143b93c.png](https://i-blog.csdnimg.cn/blog_migrate/25454cb3d871993f15bef18efd46f3e0.jpeg)
艺赛旗RPA 免费使用中,点击即可下载
http://www.i-search.com.cn/index.html?from=line8www.i-search.com.cn有同学在项目上碰到这样一种验证码:
![fac858f6e6d5b169acde378d9f2a1405.png](https://i-blog.csdnimg.cn/blog_migrate/0f149511db04f55d18ab020142157887.jpeg)
![24a5d2b2cca1dd1ffae4fd562711be39.png](https://i-blog.csdnimg.cn/blog_migrate/69a911591c6772376a5e4ec44402ba94.jpeg)
这种验证码需要鼠标滑动加上文字识别,接下来我们就用 8.0 版本实现一下此功能。
首先看一下解锁步骤全流程:
![4481375138ee603b352cf410992b3ce7.png](https://i-blog.csdnimg.cn/blog_migrate/8c9e04c660225c37b29bbf3180e995ab.jpeg)
接下来我们分别讲解一下里面的关键步骤
第一步 解决鼠标滑动
这一步我是用代码实现,点击固定的坐标滑动解锁。
from ctypes import *
from ctypes.wintypes import *
def imouse_drag(x1, y1, x2, y2,button='left',speed=10):
try:
dll = windll.LoadLibrary("../Com.Isearch.Func.AutoIt/AutoItX3.dll")
return dll.AU3_MouseClickDrag(button,x1,y1,x2,y2,speed)
except Exception as e:
raise e
第二步 截取需要识别的验证码图片
![a36db7c8cde4978dc4d7b5b986ee5c9b.png](https://i-blog.csdnimg.cn/blog_migrate/568d15edc7f4488b6978de7cad90ce6a.jpeg)
注意:最后返回的位置,是根据你截图的范围决定的。
第三步 判断验证码位置
把截图的路径给到滑动验证码控件,并且控件设置codetype:8001
![52d94f6f801109e22f5859494319dbb0.png](https://i-blog.csdnimg.cn/blog_migrate/a787b7e28d3af68dd645ec73d2254f4b.jpeg)
不同端口可以开启不同的功能:
![ee2970bd03a7dcfdd7aeb937626b508d.png](https://i-blog.csdnimg.cn/blog_migrate/a1caadaabe0a0968afee98e89cd995c3.jpeg)
第四步 提取位置参数并点击鼠标
![2162b111e781c0095e7a27e6067d7aee.png](https://i-blog.csdnimg.cn/blog_migrate/abd94cbcd38e437488808dda6efdc681.jpeg)
注意:位置参数需要根据实际情况调整。
![af2a0d412d9136ae86a365304e23080f.png](https://i-blog.csdnimg.cn/blog_migrate/22328fb0b0ff4438ea0b9767f008a0a5.jpeg)
第五步 判断是否成功
![ece53b3167514b97901007cfc806b97a.png](https://i-blog.csdnimg.cn/blog_migrate/45b2c3f05659076c82c384664d988b34.jpeg)
通过获取最后验证成功的文本来判断验证码是否识别成功,如不成功则继续重新验证。
![b9f94c78482c6830c47fd0fa01f4ca44.png](https://i-blog.csdnimg.cn/blog_migrate/2fb7f53b0239a86e1bc2480db2ce1fef.jpeg)