作者:亚述、启航
关键词:滑块验证、canvas元素
某些网站(本案例中的网址为:https://passport.geely.com/frontend/login#/geelyLogin)在登录时的滑块验证码会出现无法捕获精确的目标图块元素的问题(如图1所示),原因是这个验证码的背景图和目标图块都同为canvas元素,且两个元素的宽(width)和高(height)都相等(如图2所示),因为目标图块有一层透明图层(如图3所示),就导致影刀自定义指令中的"滑动拼图验证"指令无法使用。



二、解决思路
在本案例中的关键流程全部包含在一个无限循环内,如果滑动成功(即验证码的拖拽滑块图像消失)则退出循环,否则就点击刷新图像然后进行下一次识别与滑动操作。

注:目标位置X坐标为 原本位置的x+要移动的距离(±任意值),目标位置Y坐标就是原本位置的y。其中由于不同电脑的分辨率也不同,目标位置X坐标的末尾可根据具体情况加减任意值,这里需要编写应用时多加测试才能减少偏移量使得效果更好,如本案例中的目标位置需要在末尾-5才可使结果更精确(如图4所示)。

针对本案例所编写的应用及具体说明如图5、图6所示:


