在做UI测试时,对于自定义的UI控件,程序识别不到,可以考虑通过识别图片找坐标,进而通过点击坐标解决问题。具体实现方式为,先截取整个页面大图,然后在页面上截取目标UI控件的局部小图,最后通过查找局部UI控件小图匹配原始页面图片,并返回局部UI控件小图在原始页面图片的坐标。通过返回的坐标来点击目标UI控件。
匹配代码如下:
import aircvas ac
def matchImg(imgsrc, imgobj,confidence=0.2): # imgsrc=原始图像,imgobj=待查找的图片,confidence=设置匹配系数
imsrc = ac.imread(imgsrc)
imobj = ac.imread(imgobj)
match_result = ac.find_template(imsrc, imobj,confidence)
if match_resultis not None:
match_result['shape'] = (imsrc.shape[1], imsrc.shape[0])# 0为高,1为宽
return match_result
if __name__=='__main__':
p = matchImg("D:\\AppsUITest\\Pages\\login.jpg","D:\\AppsUITest\\Pages\\aaa.jpg")
print(p)
输出结果:
# {'result': (617.5, 887.0), 'rectangle': ((596, 869), (596, 905), (639, 869), (639, 905)), 'confidence': 0.9457036852836609, 'shape': (720, 1280)}