Robot Framework使用Sikuli Lib的Click In关键字报错求助
问题根因
报错触发的逻辑非常明确:Sikuli做图像匹配时,要求待查找的目标图像尺寸必须小于限定的搜索区域尺寸,你现在的写法直接踩了两个坑:
- 参数顺序完全写反。SikuliLibrary的
Click In关键字入参顺序是[待点击目标图, 搜索范围区域图, 匹配相似度(可选)],你把区域全图放在第一位、目标图标放在第二位,Sikuli会直接把你传的图标当搜索范围、把你传的全图当要找的目标,逻辑完全颠倒。 - 截图尺寸不符合匹配要求。从报错打印的像素值看,当前被Sikuli识别为“待搜索目标”的图像尺寸为22px宽、23px高,被识别为“搜索区域”的图像尺寸为310px宽、18px高——搜索区域的高度比目标高度还小5px,根本不可能容纳下目标,直接触发异常。就算你把参数顺序调对,也要检查你截的所谓“区域全图”是不是截错了,正常作为搜索范围的全图,宽高必须都大于目标图标截图的尺寸,不然匹配根本不可能执行。
修复步骤
- 第一步:调换两个图片参数的顺序,修正后的代码:
Click In icon_from_image.png image_full.png
- 第二步:重新校验两张截图:
- 目标图标截图
icon_from_image.png只保留要点击的图标本身即可,不要截多余的周边内容,避免尺寸过大 - 作为搜索范围的
image_full.png必须完整覆盖目标图标所在的区域,宽高值都要大于目标图标截图,不要出现截漏、误截成窄横条/竖条的情况 - 两张图都直接用SikuliIDE自带的截图工具截取,不要手动裁剪、压缩、修图,避免像素特征丢失
- 目标图标截图
- 第三步:如果调整后存在偶发匹配失败的情况,可以追加相似度参数(推荐0.7-0.9之间,根据实际匹配效果调),降低像素细微差异带来的影响:
Click In icon_from_image.png image_full.png 0.8
排错补充
如果改完参数和截图还是报同类错误,检查系统显示缩放设置:Windows/macOS如果开了125%/150%等非100%的屏幕缩放,Sikuli默认取的屏幕坐标和截图尺寸会有缩放偏差,需要在SikuliLibrary启动时加缩放适配参数,保证截图尺寸和实际屏幕渲染尺寸一致。
内容的提问来源于stack exchange,提问作者evojd
相关产品推荐
相关产品推荐

