Airtest 指定点击页面中相同的按键
2022/2/19 23:18:31
本文主要是介绍Airtest 指定点击页面中相同的按键,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
需求:当一个页面存在多个相同的按键,通过图像识别的方式点击指定的按键
思路:
1.每次匹配到按键的区域后将区域从源图像中去掉
2.根据按键与左上角 (0,0) 的长度对按键进行排序
(忽略长度相同的情况,可换其他角的坐标计算解决)
source.jpg
match.jpg
from PIL import Image import numpy from airtest.core.cv import Template from airtest import aircv from airtest.core.helper import G from airtest.utils.transform import TargetPos import time from math import sqrt class Template2(Template): def __int__(self,*args, **kwargs): super.__init__(*args, **kwargs) #重写match_in,return加上识别到的区域(match_result) def match_in(self, screen): match_result = self._cv_match(screen) G.LOGGING.debug("match result: %s", match_result) if not match_result: return None focus_pos = TargetPos().getXY(match_result, self.target_pos) return focus_pos,match_result def p(search,source,total,index): """ :param search: 匹配图像 :param source: 源图像 :param total: 相同图像总数 :param index: 匹配索引 :return: 匹配坐标 """ result = [] source_array=numpy.array(Image.open(source)) t = time.time() for i in range(total): im_search = Template2(search) im_source = aircv.imread(source) pos,match = im_search.match_in(im_source) #匹配坐标和匹配区域 array = numpy.array(Image.open(source))#创建矩阵 #将区域填充为白色 for col in range(match['rectangle'][0][0],match['rectangle'][-1][0]): for row in range(match['rectangle'][0][1],match['rectangle'][1][1]): array[row,col] = [255,255,255] Image.fromarray(array).save(source)#更新源图像 result.append(pos) result.sort(key= lambda x: sqrt(x[0]*x[0]+x[1]*x[1]))#根据距离(0,0)排序 print(time.time() - t) print(result) Image.fromarray(source_array).save(source) return result[index] print(p('./search.jpg','./source.jpg',10,0))
#输出 0.0870201587677002 [(112, 63), (112, 119), (160, 63), (160, 119), (208, 63), (208, 119), (256, 63), (256, 119), (304, 63), (304, 119)] (112, 63)
这篇关于Airtest 指定点击页面中相同的按键的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-20实战:30 行代码做一个网页端的 AI 聊天助手
- 2024-11-185分钟搞懂大模型的重复惩罚后处理
- 2024-11-18基于Ollama和pgai的个人知识助手项目:用Postgres和向量扩展打造智能数据库
- 2024-11-15我用同一个提示测试了4款AI工具,看看谁设计的界面更棒
- 2024-11-15深度学习面试的时候,如何回答1x1卷积的作用
- 2024-11-15检索增强生成即服务:开发者的得力新帮手
- 2024-11-15技术与传统:人工智能时代的最后一袭纱丽
- 2024-11-15未结构化数据不仅仅是给嵌入用的:利用隐藏结构提升检索性能
- 2024-11-15Emotion项目实战:新手入门教程
- 2024-11-157 个开源库助你构建增强检索生成(RAG)、代理和 AI 搜索