调整之后基本上可以做到对齐率90%以上,额想放个视频来着,放不下,完整gif也太大了,尴尬了

说白了就是获取正确元素,进行截图,然后调用dddd计算移动距离,最后调整偏差
滑块验证的目标图块我遇到的有两种情况,一种是小图块,另一种是大图块,此处判断依据是捕获元素时,校验框的大小
当目标图块为小图块时,此时直接使用【网页截图】指令,对该元素进行截图保存就可以,注意后缀需保存为jpg
当目标图块为大图块时,此时要看网页代码,获取到该图片的网络地址,用【http】下载来保存图片,注意后缀需为png
正确保存的元素截图应如下
验证码背景图片也有两种情况,一种是可以直接获取到图片地址,另外一种是canvas绘制
当你能直接获取到地址时,可以直接下载保存图片(【获取元素对象】或【获取元素属性】指令),不可直接使用【网页截图】进行图片获取
当背景图片是通过canvas绘制时,此时只能使用【截屏】指令提取指定部分区域,来保存背景图片
(如果你发现目标图块和背景图片都是canvas绘画的,有个邪教路子,直接右键图片另存为,大图块会直接保存为透明背景的png,背景图片直接保存为没有目标图块的背景,很邪教,但是不知道通用不)
截图实现方式很绿皮,为了排除目标图块的干扰,需先鼠标移动到目标图块最右边,获取鼠标位置,然后在移动到背景图片的右边,上下边,获取位置,然后使用截图。大家如果有更好的办法,还请分享。

注:背景图片的格式jpg和png都可以,别的格式我还没有尝试过
有了目标图块,和背景图片之后,可以直接使用插入代码段调用dddd进行计算
当你的目标图块为小图块时,可直接使用【插入代码段】指令来运行下面代码,别忘了改图片路径
import ddddocr
slide = ddddocr.DdddOcr(det=False, ocr=False)
with open('目标图块路径.jpg', 'rb') as f:
target_bytes = f.read()
with open('背景图片路径', 'rb') as f:
background_bytes = f.read()
res = slide.slide_match(target_bytes, background_bytes, simple_target=True)当目标图块为大图块时,插入的代码如下
import ddddocr
slide = ddddocr.DdddOcr(det=False, ocr=False)
with open('目标图块路径.png', 'rb') as f:
target_bytes = f.read()
with open('背景图片路径', 'rb') as f:
background_bytes = f.read()
res = slide.slide_match(target_bytes, background_bytes)通过上方代码运行后,res中会返回匹配位置的两个坐标,格式为[左上x,左上y,右下x,右下y]

此坐标的坐标原点是背景图片左上角,x轴向右和y轴向下为正
得到坐标之后,即可计算出 平移距离=(左上x+右下x)/2
因为滑块与背景图片的相对位置每个网站都不一样,所以 真实滑动距离=平移距离+偏移量
这个偏移量就要大家自己尝试了
此方法尽管可以做到准确度较高,但在移动鼠标阶段的偏差值可能只适配一台电脑,不能动态调整。
说实话,没啥技术含量,就是要自己调调参数,有急需的可以救急一下,后续等❤剑心哥哥❤优化官方指令吧
此处分享了
爱库存 商户云平台 登录界面
的双阴影实现应用,大家可以进行优化尝试,指令很少,很好理解
https://api.winrobot360.com/redirect/robot/share?inviteKey=547ce58ba1779189
我忘了企业外获取不到应用,我把应用贴图贴上来吧
