安卓自动化之uiautomator(python篇)常用adb及图片对比
学完前面的几节知识后,发觉uiautomator里面的方法并不能完全满足我们的要求,因此我们需要其他的东西来帮助我们解决问题
1.图片对比(当有些控件不能识别的时候,比如设置两次壁纸是否一样,我们就可以截图对比设置前后的图片是否一样来判断)
图片对比需要的库为aircv和cv2
使用pip install aircv
将cv2.pyd拷贝至site packages目录下
使用方法
import aircv
读取源文件 src=aircv.imread('test1.png')
读取搜索文件 sch=aircv.imread('test2.png')
对比相似度来判断 result=aircv.find_template(src,sch)
如果result返回值为None,说明图片相似度较低,反之会返回一个字典,我们可以通过confidence的值来判断图片的相似度,可以通过rectangle来获取相似点的坐标并进行后续操作
{'confidence': 0.9999995231628418, 'result': (97, 49), 'rectangle': ((59, 0), (59, 98), (136, 0), (136, 98))}
2.adb常用命令
利用adb实现长按电源键,音量键等操作
step1:先利用adb shell getevent来获取事件的值(需要注意的事,使用getevent时需要先关闭wifi、gps、蓝牙等)
step2:使用adb shell sendevent来模拟按键按下操作,如下为长按电源键
os.system('adb -s %s shell sendevent /dev/input/event5 1 116 1' %self.deviceId) 各个设备获取的值可能不一样,需要注意的事是对应的值为16进制的值
os.system('adb -s %s shell sendevent /dev/input/event5 0 0 0 ' %self.deviceId)
self.sleep(2)
os.system('adb -s %s shell sendevent /dev/input/event5 1 116 0' %self.deviceId)
os.system('adb -s %s shell sendevent /dev/input/event5 0 0 0 ' %self.deviceId)
利用adb结束进程
os.system('adb -s %s shell am force-stop com.android.incallui' %self.deviceId)
利用adb启动应用
os.system('adb -s %s shell am start %s' %(self.deviceId,activity))
利用adb截图
os.system('adb -s %s shell screencap /storage/sdcard0/errimg/%s' % (self.deviceId, errimgname))
利用adb拖文件
os.system('adb push srcfile srcfile')
利用adb 检测手机是否重启
runtimeget = os.popen('adb -s %s shell cat /proc/uptime'%self.deviceId)
利用adb查看是否有anr和tombstonees问题出现
anrFileListget = os.popen('adb -s %s shell ls /data/anr'%self.deviceId)
tombstoneFileListget = os.popen('adb -s %s shell ls /data/tombstones'%self.deviceId)
利用adb输入文字
os.system('adb -s %s shell input text %s'%(self.deviceId,content))
利用adb按键
os.system("adb -s %s shell input keyevent '%s'"%(self.deviceId,keycode))
利用adb滑动
os.system('adb -s %s shell input swipe %d %d %d %d %d'%(self.deviceId,x1,y1,x2,y2,time))
利用adb点击
os.system('adb -s %s shell input tap %d %d'%(self.deviceId,x,y))
如果有问题或者好的请加QQ群一起讨论
QQ群: 472527767
安卓自动化之uiautomator(python篇)常用adb及图片对比相关推荐
- python android自动化_2019最新某《安卓自动化测试入门》 Python篇
这里我们采取用伴生容器的形式采集java日志 tomcat日志 1.部署一个configmap用来保存filebeat配置: [root@master yml_files]# cat filebeat ...
- 安卓自动化APP——Tasker
文章目录 前言 一.软件介绍 软件特色 使用逻辑 注意事项 二.使用教程 配置文件(介绍几个难以理解的,下同) 任务 场景 备份功能 写在最后 前言 本文介绍另一款安卓手机自动化软件,名为Tasker ...
- uiautomator +python 安卓UI自动化尝试
使用方法基本说明:https://www.cnblogs.com/mliangchen/p/5114149.html,https://blog.csdn.net/Eugene_3972/article ...
- 基于python + Appium的安卓自动化
基于python + Appium的安卓自动化 最近要双11了,刷喵糖比较火,看到github上一个刷喵糖的项目testerzhang/taobaomiao.git,也成功跑起来了,顺便研究下了实现方 ...
- python安卓自动化实现方法_uiautomator +python 实现安卓UI自动化
简单实例 注:安卓6.0以上的手机不会自动安装app-uiautomator.apk和app-uiautomator-test.apk,需要手动安装,否则报错ioerror RPC server no ...
- Appium+Python安卓自动化测试之启动APP和配置获取
Appium+Python安卓自动化测试之启动APP和配置获取 本文章未讲述appium+python环境部署,环境部署会新开文章 一.手机连接电脑 1.USB连接电脑和手机,手机上点确认连接(最好用 ...
- python自动化办公:excel篇,从此做表不加班。
表格讲解 表格格式 表格分为:工作簿,工作表,单元格 如图:整个文件就是一个工作簿,下面的 zhengjiang_power 和sheet1为工作表. xlrd +xlwt读写表格 因为电脑右键新建的 ...
- python自动化办公:文件篇(自动整理文件,一键完成)
文件整理不得不先提一下正则表达式 送上链接: python :re模块基本用法 一.列出文件夹下的所有文件 用到的库os Python os.path() 模块 详解 附算例 os.walk()用法 ...
- python自动化办公:邮件篇 (定时邮件问候女票so easy)
前言和准备工作 如果你能找到一个要看邮件的女票哈,本文能帮你用程序实现在每天不同时间段给女友定时给女友发消息,不错过早上,中午.晚安! 而你自己却可以玩游戏,不管这回事. 你告诉我看邮件的女生少,别着 ...
最新文章
- 不同的source control下配置DiffMerge
- SharePoint服务器如果需要安装杀毒软件, 需要注意什么?
- win7+ubuntu 13.04双系统安装方法
- SQL Server 装载 msxmlsql.dll 失败的解决办法
- GDCM:gdcm::Parser的测试程序
- uniapp对象怎么获取值_第65p,关于:生成器、迭代器与迭代对象(上)
- LinkedHashSet VS HashSet
- wamp php5.6 mysql5.6,WampServer 3.0.6 多语言版 集成apache2.4.23 mysql5.7.14 php5.6.25-7.0.10 穿墙书店...
- 用Java语言编写的特殊算法
- Inception 模型
- 【Caffe代码解析】SyncedMemory
- 阿里巴巴正式开源全球化OpenMessaging和ApsaraCache项目
- marlab中主成分得分怎么求_成考数学不可触碰的雷区和得分技巧(纯干货)
- leetCode 3,js解法
- java复杂逻辑如何设计_javabean如何实现复杂的业务逻辑
- 使用expdp导出数据
- Eclipse+Maven配置TestNG框架
- 【计算机网络】第三话·浅谈OSI和TCP/IP模型
- [macOS]_[初级]_[关于程序签名时出现User interaction is not allowed的问题]
- C语言学习开篇 对C语言和编程的认识