先说下本人是菜鸟,通过网上资料学习,终于调通了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 实现自动点击截屏后与本地图库进行对比输出相关推荐

  1. uni-app app上实现截屏保存图片到本地

    uni-app app上实现截屏保存图片到本地 uni-app app上实现截屏保存图片到本地 <template> <view class="content"& ...

  2. uni-app 微信公众号H5开发 里面的video 组件点击全屏后不会自动横屏播放 2

    文章目录 前言 一.废话不多说直接上代码 总结 前言 根据上次发布的文章进一步改善了全屏横屏播放,去除了导航栏,实现伪全屏,但是ios系统不行,只能用自带的全屏按钮,让用户点击. 来点我遇到的问题吧 ...

  3. iOS 截屏的总结,AVplayer的截屏,当前屏幕的截屏,截屏后导航栏不见的情况

    转载自: http://www.jianshu.com/p/8e9234a70955 1.截取当前屏幕,导航栏不见. 方法: - (UIImage*)screenView:(UIView *)view ...

  4. iOS截屏后仿今日头条实现一键分享

    实现如上图效果 1,监听截图产生事件 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(userDid ...

  5. ios截屏后发现图片是空白问题

    ios截图代码: UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, 0.0); UIImage *img = UIGraphic ...

  6. [Egret]长按截屏分享、分享截屏图片、本地存储

    egret 分享有API可以把一个显示对象树渲染成一个位图纹理,我把它赋值给 HTML 的 Image 元素,就实现了图片的显示,在微信中,通过长按图片可以分享出去.当然在其他浏览器可以保存在本地. ...

  7. java实现屏幕自动截屏_使用Java实现静默屏幕截图

    代码实现了使用Java静默截屏(截屏的时候不需要申请权限,不会有任何弹窗),并自动打开截取的屏幕图片, 我们把这个部分编译一下,使用java 类名,可以实现快速截取当前屏幕信息,或者是在编辑器里点击运 ...

  8. 新版微信对付款码截屏做处理 防止被骗

    我们都知道微信的转账付款二维码和收款二维码两个很容易搞混!转账付款二维码是发给别人,由对方输入扣你钱的金额.上限500,一扫就自动扣你钱:收款二维码是别人扫了要付你钱.骗子很容易钻这个空子-- 回顾请 ...

  9. iphone屏幕镜像如何全屏_苹果系统截屏录屏+标记剪辑功能详解( iPhone/iPad/Mac)

    苹果系统中的截屏和录屏.标记和剪辑功能一如它的其他产品设计,做得非常细致.在我们日常的工作中,不免会遇到这些功能,今天小编就给大家详细讲解下苹果系统截屏录屏.标记剪辑功能,希望对大家有所帮助! 001 ...

最新文章

  1. elasticsearch 客户端工具_1分钟系列-Elasticsearch 简介与单机版安装
  2. 【强化学习】DDPG
  3. 58同城沈剑:好的架构是进化来的,不是设计来的
  4. python画熊猫论文_Python数据可视化之美:专业图表绘制指南(全彩)
  5. 当代家长现状。。 | 今日最佳
  6. Jozky 刷题目录
  7. 【OSG】OSG软件模块结构
  8. python vba 秒出结果_为什么公司每天用20个人手工处理数据出报告,也不用5个会vba,python的人来制作??...
  9. JVM优化系列-String对象在虚拟机中的实现
  10. [Perl系列—] 1. 清空目录及目录中的所有文件
  11. Hoverfly - 微服务虚拟化示例
  12. 微型计算机 输出设备,微型计算机中的输入输出设备各有哪些?请分别列出来。...
  13. EOS区块链技术开发(一)环境搭建
  14. How to Avoid Branching on the GPU 如何在GPU避免分支
  15. 基于 Spring SSM框架 开发的一套 进存销管理系统
  16. 新手学平面设计都会遇到哪些问题
  17. MDCache类分析
  18. mac 好用的ps修图软件 Pixelmator Pro
  19. 【C51】基于C51单片机的LCD定时闹钟设计(含代码,电路,直接用)
  20. std::vector中 begin()、end()、front()、back()的区别

热门文章

  1. 匿名类、包、权限修饰符_DAY10
  2. 改变UITableView选中行高亮的颜色
  3. SQL Server 的通用分页显示存储过程
  4. SDUT 3379 数据结构实验之查找七:线性之哈希表
  5. Java并发编程 Volatile关键字解析
  6. python进阶-面向对象编程四:包装授权和自定制列表某些方法
  7. android contentDescription的使用
  8. 【Android】adb架构(客户端(shell/ddms/adt)+本地服务器+daemon)
  9. Android 如何将Canvas上绘制的内容保存成本地图片
  10. Android TextView中文字通过SpannableString来设置超链接、颜色、字体等属性