MonkeyRunner 实现自动点击截屏后与本地图库进行对比输出
先说下本人是菜鸟,通过网上资料学习,终于调通了MonkeyRunner 实现自动点击截屏后与本地图库进行对比输出,以后做静态UI测试就不需要眼睛盯着看图了,这一切交给MonkeyRunner了。
首先通过monkeyrunner录制脚本 test.mr
test.mr
TOUCH|{'x':265,'y':1232,'type':'downAndUp',} WAIT|{'seconds':5.0,} TOUCH|{'x':355,'y':189,'type':'downAndUp',} WAIT|{'seconds':5.0,} TOUCH|{'x':85,'y':322,'type':'downAndUp',} WAIT|{'seconds':5.0,} TOUCH|{'x':371,'y':893,'type':'downAndUp',} WAIT|{'seconds':5.0,} TOUCH|{'x':371,'y':893,'type':'downAndUp',} WAIT|{'seconds':5.0,} TOUCH|{'x':47,'y':778,'type':'downAndUp',} WAIT|{'seconds':5.0,} TOUCH|{'x':657,'y':88,'type':'downAndUp',} WAIT|{'seconds':5.0,}
然后通过python写自动截屏对比功能 monkey_snapshot.py
#!/usr/bin/env monkeyrunner
# Copyright 2010, The Android Open Source Project
#coding=utf8
import sys from com.android.monkeyrunner import MonkeyDevice from com.android.monkeyrunner import MonkeyImage from com.android.monkeyrunner import MonkeyRunner CMD_MAP = { 'TOUCH': lambda dev, arg: dev.touch(**arg), 'DRAG': lambda dev, arg: dev.drag(**arg), 'PRESS': lambda dev, arg: dev.press(**arg), 'TYPE': lambda dev, arg: dev.type(**arg), 'WAIT': lambda dev, arg: MonkeyRunner.sleep(**arg) } def process_file(fp, device,photo_id): for line in fp: (cmd, rest) = line.split('|') try: rest = eval(rest) except: print 'unable to parse options' continue if cmd not in CMD_MAP: print 'unknown command: ' + cmd continue CMD_MAP[cmd](device, rest) print cmd pic_name='./shot'+str(photo_id)+'.png' result = device.takeSnapshot() #compare picture result2 = MonkeyRunner.loadImageFromFile("E:\MD\shot"+str(photo_id)+".png") print "E:\MD\shot"+str(photo_id)+".png" flag = result.sameAs(result2,0.95) if (flag == False): print 'prapre to save new png '+pic_name result.writeToFile(pic_name,'png') photo_id+=1 print "All PlayBack Action Captured,Total:"+str(photo_id)+' PNG Saved' print "===============================================================" def main(): print "Ok,Now StarRuning MyZXX MonkeyRuner SnopShoot Shell" print "==============================================================="
转载于:https://www.cnblogs.com/luolizhi/p/5641847.html
MonkeyRunner 实现自动点击截屏后与本地图库进行对比输出相关推荐
- uni-app app上实现截屏保存图片到本地
uni-app app上实现截屏保存图片到本地 uni-app app上实现截屏保存图片到本地 <template> <view class="content"& ...
- uni-app 微信公众号H5开发 里面的video 组件点击全屏后不会自动横屏播放 2
文章目录 前言 一.废话不多说直接上代码 总结 前言 根据上次发布的文章进一步改善了全屏横屏播放,去除了导航栏,实现伪全屏,但是ios系统不行,只能用自带的全屏按钮,让用户点击. 来点我遇到的问题吧 ...
- iOS 截屏的总结,AVplayer的截屏,当前屏幕的截屏,截屏后导航栏不见的情况
转载自: http://www.jianshu.com/p/8e9234a70955 1.截取当前屏幕,导航栏不见. 方法: - (UIImage*)screenView:(UIView *)view ...
- iOS截屏后仿今日头条实现一键分享
实现如上图效果 1,监听截图产生事件 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(userDid ...
- ios截屏后发现图片是空白问题
ios截图代码: UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, 0.0); UIImage *img = UIGraphic ...
- [Egret]长按截屏分享、分享截屏图片、本地存储
egret 分享有API可以把一个显示对象树渲染成一个位图纹理,我把它赋值给 HTML 的 Image 元素,就实现了图片的显示,在微信中,通过长按图片可以分享出去.当然在其他浏览器可以保存在本地. ...
- java实现屏幕自动截屏_使用Java实现静默屏幕截图
代码实现了使用Java静默截屏(截屏的时候不需要申请权限,不会有任何弹窗),并自动打开截取的屏幕图片, 我们把这个部分编译一下,使用java 类名,可以实现快速截取当前屏幕信息,或者是在编辑器里点击运 ...
- 新版微信对付款码截屏做处理 防止被骗
我们都知道微信的转账付款二维码和收款二维码两个很容易搞混!转账付款二维码是发给别人,由对方输入扣你钱的金额.上限500,一扫就自动扣你钱:收款二维码是别人扫了要付你钱.骗子很容易钻这个空子-- 回顾请 ...
- iphone屏幕镜像如何全屏_苹果系统截屏录屏+标记剪辑功能详解( iPhone/iPad/Mac)
苹果系统中的截屏和录屏.标记和剪辑功能一如它的其他产品设计,做得非常细致.在我们日常的工作中,不免会遇到这些功能,今天小编就给大家详细讲解下苹果系统截屏录屏.标记剪辑功能,希望对大家有所帮助! 001 ...
最新文章
- elasticsearch 客户端工具_1分钟系列-Elasticsearch 简介与单机版安装
- 【强化学习】DDPG
- 58同城沈剑:好的架构是进化来的,不是设计来的
- python画熊猫论文_Python数据可视化之美:专业图表绘制指南(全彩)
- 当代家长现状。。 | 今日最佳
- Jozky 刷题目录
- 【OSG】OSG软件模块结构
- python vba 秒出结果_为什么公司每天用20个人手工处理数据出报告,也不用5个会vba,python的人来制作??...
- JVM优化系列-String对象在虚拟机中的实现
- [Perl系列—] 1. 清空目录及目录中的所有文件
- Hoverfly - 微服务虚拟化示例
- 微型计算机 输出设备,微型计算机中的输入输出设备各有哪些?请分别列出来。...
- EOS区块链技术开发(一)环境搭建
- How to Avoid Branching on the GPU 如何在GPU避免分支
- 基于 Spring SSM框架 开发的一套 进存销管理系统
- 新手学平面设计都会遇到哪些问题
- MDCache类分析
- mac 好用的ps修图软件 Pixelmator Pro
- 【C51】基于C51单片机的LCD定时闹钟设计(含代码,电路,直接用)
- std::vector中 begin()、end()、front()、back()的区别
热门文章
- 匿名类、包、权限修饰符_DAY10
- 改变UITableView选中行高亮的颜色
- SQL Server 的通用分页显示存储过程
- SDUT 3379 数据结构实验之查找七:线性之哈希表
- Java并发编程 Volatile关键字解析
- python进阶-面向对象编程四:包装授权和自定制列表某些方法
- android contentDescription的使用
- 【Android】adb架构(客户端(shell/ddms/adt)+本地服务器+daemon)
- Android 如何将Canvas上绘制的内容保存成本地图片
- Android TextView中文字通过SpannableString来设置超链接、颜色、字体等属性