为什么在识别滑块拼图类型验证码时,移动距离总是产生偏差?
# 场景描述
使用识别验证码组件自动完成滑块验证码的验证过程时,移动滑块按钮的位置总是产生微小偏差而导致验证失败。
验证如下图所示的滑块验证码。
流程关键步骤如下图所示:
运行流程后,滑块移动结果如下图所示:
# 原因分析
按钮移动速率与滑块移动速率不同,导致按照滑块需要移动的距离来滑动按钮,无法到达目标位置。具体分析如下:
在本案例中,滑块与按钮的起始位置(以左边缘为参考)基本处于相同横坐标。
将按钮划至轨道尾部,可以看到按钮滑动的距离与滑块滑动的距离产生了差异,能够得出滑块滑动速率与按钮滑动速率不一致的结论。例如在下图中,按钮移动了300px,而图中滑块移动了265px。
# 解决方案
验证滑块验证码时,可以按照上述方式计算一下滑块与按钮的移动速率是否一致,由于滑动速率不一致导致的误差可以通过简单计算规避。 通过上述分析可知,滑块每前行1px,按钮需前行[(1+35/300)×1]px。在本案例中,按钮需移动的距离为[(1+35/300)×265]px,在拖动目标操作对象组件中,更正移动距离,即可自动完成滑块验证码的验证。
最近更新时间: {
"value": "2023-11-22",
"effect": true
}