当前位置:   article > 正文

Airtest图像识别原理_airtest find_template

airtest find_template

AirtestIDE 是一个跨平台的UI自动化测试编辑器,适用于游戏和App。

  • 自动化脚本录制、一键回放、报告查看,轻而易举实现自动化测试流程

  • 支持基于图像识别的Airtest框架,适用于所有Android和Windows游戏

  • 支持基于UI控件搜索的Poco框架,适用于Unity3d,Cocos2d与Android App

一句话总结:我们推出了两款基于Python的UI自动化测试框架Airtest(用截图写脚本)和Poco(用界面UI元素来写脚本),可以用我们提供的AirtestIDE来快速编写你的自动化测试脚本~

本文重点是针对Airtest中的图像识别进行代码走读,加深对图像识别原理的理解

1、准备工作,下载好源码 https://github.com/AirtestProject/Airtest

2、我们从最简单的touch方法入手,即为点击某个传入的图片,源码在api.py里面

  1. @logwrap
  2. def touch(v, times=1, **kwargs):
  3. """
  4. Perform the touch action on the device screen
  5. :param v: target to touch, either a Template instance or absolute coordinates (x, y)
  6. :param times: how many touches to be performed
  7. :param kwargs: platform specific `kwargs`, please refer to corresponding docs
  8. :return: finial position to be clicked
  9. :platforms: Android, Windows, iOS
  10. """
  11. if isinstance(v, Template):
  12. pos = loop_find(v, timeout=ST.FIND_TIMEOUT)
  13. else:
  14. try_log_screen()
  15. pos = v
  16. for _ in range(times):
  17. G.DEVICE.touch(pos, **kwargs)
  18. time.sleep(0.05)
  19. delay_after_operation()
  20. return pos
  21. click = touch # click is alias of touch

 这个函数执行点击操作的是 G.DEVICE.touch(pos, **kwargs)

而pos就是图片匹配返回的坐标位置,我们重点看loop_find这个函数

  1. @logwrap
  2. def loop_find(query, timeout=ST.FIND_TIMEOUT, threshold=None, interval=0.5, intervalfunc=None):
  3. """
  4. Search for image template in the screen until timeout
  5. Args:
  6. query: image template to be found in screenshot
  7. timeout: time interval how long to look for the image template
  8. threshold: default is None
  9. interval: sleep interval before next attempt to find the image template
  10. intervalfunc: function that is executed after unsuccessful attempt to find the image template
  11. Raises:
  12. TargetN
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/488733
推荐阅读
相关标签
  

闽ICP备14008679号