python +opencv 根据图片定位进行UI自动化

前言:
做过移动端ui自动化的小伙伴,就会发现很多控件的元素是一样的或者是找不到的,为了解决这个痛点,于是通过图片灰度处理返回坐标x,y找到控件的位置。再结合pytest+接口+UI断言整体项目思路。
1.接下来我们主要说一下基于opencv图片识别寻找控件坐标,pytest和接口不会的同学请看我的接口和pytest文章
2. 我们使用两个图,一个是移动端截图,一个是控件的图,如下:

  1. 接下来我们直接上代码
import cv2
import os
import time#获取移动端图片
def screencap():cmd = "adb root"cmd1 = "adb shell /system/bin/screencap -p /sdcard/da.png"cmd2 = "adb pull /sdcard/da.png "os.system(cmd)time.sleep(1)os.system(cmd1)time.sleep(2)os.system(cmd2)def _tran_canny(image):"""消除噪声"""image = cv2.GaussianBlur(image, (3, 3), 0)return cv2.Canny(image, 50, 150)def detect_displacement(img_slider_path, image_background_path):"""detect displacement"""# # 参数0是灰度模式image = cv2.imread(img_slider_path, 0)template = cv2.imread(image_background_path, 0)# 寻找最佳匹配res = cv2.matchTemplate(_tran_canny(image), _tran_canny(template), cv2.TM_CCOEFF_NORMED)# 最小值,最大值,并得到最小值, 最大值的索引min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)top_left = max_loc[0]  # 横坐标# 展示圈出来的区域x, y = max_loc  # 获取x,y位置坐标、print(max_loc)return max_loc# w, h = image.shape[::-1]  # 宽高# cv2.rectangle(template, (x, y), (x + w, y + h), (7, 249, 151), 2)# return top_leftif __name__ == '__main__':screencap()image_location = detect_displacement('xiao.png', 'da.png')# 获取点击位置cmd = "adb shell input tap {x} {y}".format(x=image_location[0], y=image_location[1])# 模拟用户点击os.system(cmd)

4.本文使用的是ADB,也可结合uiautomator2,https://blog.csdn.net/huage926/article/details/118752071?spm=1001.2014.3001.5501。

python +opencv 根据图片定位进行UI自动化相关推荐

  1. Java 调用Python+Opencv实现图片定位

    做过移动端ui自动化的小伙伴,就会发现很多控件的元素是一样的或者是找不到的,为了解决这个痛点,于是通过图片灰度处理返回坐标x,y找到控件的位置.再结合pytest+接口+UI断言整体项目思路. 1.接 ...

  2. Python+opencv实图片定位

    # -*- coding: utf-8 -*- import cv2file=r'D:/Setting.png' #大图 temp=r'D:/Battery.png' #小图# 弹出图片后 CTRL+ ...

  3. python opencv调节图片亮度与对比度

    python opencv调节图片亮度与对比度 亮度调整是将图像像素的强度整体变大/变小,对比度调整指的是图像暗处变得更暗,亮出变得更亮,从而拓宽某个区域内的显示精度. 创建两个滑动条分别调整对比度和 ...

  4. python opencv 得到图片路径image_path的宽wide、高heigh和深度deep

    python opencv 得到图片路径image_path的宽wide.高heigh和深度deep 图片路径是:'1.jpg' 下面是具体代码: import cv2 #得到图片路径image_pa ...

  5. 2021-01-07 python opencv调节图片亮度与对比度

    python opencv调节图片亮度与对比度 度调整是将图像像素的强度整体变大/变小,对比度调整指的是图像暗处变得更暗,亮出变得更亮,从而拓宽某个区域内的显示精度. 创建两个滑动条分别调整对比度和亮 ...

  6. Python笔记-pyautogui 图片定位

    Python笔记-pyautogui 图片定位 import os import time import pyautogui pyautogui.PAUSE = 1def im_click():try ...

  7. Python OpenCV去除图片水印

    问题描述 去除百度水印 1.jpg,背景简单 2.jpg,背景复杂 解决方案 安装 pip install opencv-python pip install numpy 方法一.OpenCV提取颜色 ...

  8. python opencv获取图片分辨率_python-opencv遍历图片像素,并对像素进行操作

    看代码: def access_pixels(frame): print(frame.shape) #shape内包含三个元素:按顺序为高.宽.通道数 height = frame.shape[0] ...

  9. python opencv 裁剪图片_Python图片裁剪的两种方式——Pillow和OpenCV

    在这篇文章里我们聊一下Python实现图片裁剪的两种方式,一种利用了Pillow,还有一种利用了OpenCV.两种方式都需要简单的几行代码,这可能也就是现在Python那么流行的原因吧. OpenCV ...

最新文章

  1. 《HTTP权威指南》– 5.Web服务器
  2. The TensorFlow library wasn‘t compiled to use SSE instructions, but these are available on your mach
  3. Linux的网络类型
  4. 类如何调用自己的私有成员_如何正确地给自己和团队成员贴标签?|衡量团队管理 20 讲视觉笔记 14...
  5. 基于单链表的生产者消费者问题
  6. android修改用户名和密码错误,Android应用开发Android Studio 修改用户名、密码、URL等操作教程...
  7. [转载] Python学习之Numpy
  8. 4G模块使用记录移远EC20、BC20
  9. linux_grep操作
  10. 第一行代码笔记-第五章
  11. ExtJS2.0开发与实践笔记[4]——Ext中的动画处理
  12. 西门子 Process Simulate学习笔记(一)
  13. 怎样设置和检测浏览器语言
  14. 计算机科学中的数学第一章答案,翻译《计算机科学与数学》第一章第四节:我们的公理...
  15. 远程桌面启动matlab
  16. 幂等矩阵(Idempotent matrix)
  17. 2020年中国儿童家具行业产量、市场规模发展现状及儿童家具企业竞争格局分析[图]
  18. 灼口综合征的症状这么多呢呀?!
  19. dw实时视图与网页不一样_视图窗口和oc实时预览内容显示范围不一样,不完全同步。...
  20. 怎样拿下SUN公司的SCJP认证?

热门文章

  1. 引领人工智能发展须从何处着力
  2. 天啊,绕过我吧,不要卷了
  3. 苹果CEO乔布斯用人九法则:没有B计划
  4. 《Java并发编程实战》学习笔记
  5. 护眼灯哪个品牌最好?台灯这样选对眼睛好
  6. linux应用程序开发_开发应用程序
  7. VUE插件 --(来自官方文档)
  8. 使用Scrapy爬虫框架简单爬取图片并保存本地(妹子图)
  9. 压缩 : tar . giz
  10. 【SDE】随机微分方程(2)