手机的自动化测试,对结果的判断是难点,最初级的办法无非是基于图像比对了,monkeyrunner自身提供了一套图像比对的机制,这里不再展开说。

使用方法简单陈述如下

加载一个正确结果的图片 MonkeyRunner.LoadImageFromfile("filepath"),这个函数在文档中没有提到,可能是文档还没有来得及更新吧。

然后用sameAs来比对,当然也可以用局部图像比对。得到局部图像的方法getSubImage

我这里想说的方法是用PIL来逐个比较图片的像素。实验证明,速度还是不错的

程序代码如下

from PIL import Image
img3 = Image.open(r'd:\3.png')
img4 = Image.open(r'd:\4.png')
width =  img3.size[0]
height = img3.size[1]

pima3 = img3.load()
pima4 = img4.load()

diff = 0
total = width * height

for w in range(width):
    for h in range(height):
        if not pima3[w,h] == pima4[w,h]:
            diff +=1
print (1-diff/float(total))

最后计算出的是图片的相似度

文章来源:http://blog.csdn.net/robinzhou/article/details/7565154

作者:robinzhou

MonkeyRunner之手机屏幕截图的比对相关推荐

  1. uiautomatorViewer无法获取Android8.0手机屏幕截图的解决方案

    大家好,我是杨叔.每天进步一点点,关注我的微信公众号[程序员杨叔],获取更多测试开发技术知识! 问题描述: 做APP UI自动化的时候,会碰到用uiautomatorViewer在Android 8. ...

  2. 使用adb命令对手机屏幕截图

    使用adb命令对手机屏幕截图 使用 screencap 命令,截图保存在 sdcard/01.png adb shell screencap -p /sdcard/01.png 导出 sdcard/0 ...

  3. monkeyrunner操作手机

    背景:帮我们家小仙女爬取微信公众号数据 monkeyrunner 通过微信公众号平台抓取,问题: 1.每天都要登陆,获取cookie,麻烦:2. 同时微信后台有频率限制,访问限速,有点恶心 通过app ...

  4. html手机截屏保存,手机屏幕截图无法保存该怎么解决?

    安卓4.0及以上系统有快捷截图功能,大多数安卓机是同时按住[电源键]和[音量下键]完成整个功能.笔者以前用这个功能非常便利,可最近快速截屏时一直提示:"无法保存屏幕截图存储设备可能正在使用& ...

  5. 手机服务器无响应的截图,手机和电脑无数据线即时共享手机屏幕截图文件的方法...

    有时候,我们在制作手机app操作使用手册的时候,需要通过手机截图然后再将截图发到电脑上来插入到word中来使用.一般人想到的就是通过QQ里面的"我的设备"来传图片(如图1). 图 ...

  6. android7 截屏保存,手机屏幕截图无法保存该怎么解决?

    安卓4.0及以上系统有快捷截图功能,大多数安卓机是同时按住[电源键]和[音量下键]完成整个功能.笔者以前用这个功能非常便利,可最近快速截屏时一直提示:无法保存屏幕截图存储设备可能正在使用.笔者尝试了很 ...

  7. App Store上传手机屏幕截图 尺寸

    屏幕截图尺寸 iPhone 4s:    宽640 x 960高   等于分辨率 iPhone 5/5s:  宽640 x 1136高  等于分辨率 iPhone 6/6s:  宽750 x 1334 ...

  8. android型号手机怎么截图,如何在Android手机上屏幕截图(仅限Rooted Phone) | MOS86...

    像iPhone一样,没有简单的方法可以拍摄Android手机的截图.唯一的办法是安装Android SDK并从中运行ddms.但是,如果你已经植根了你的手机,这将是一个不同的故事.市场上有几个有用的应 ...

  9. monkeyrunner的录制与回放

    在monkeyrunner中我们可以录制对手机的操作事件,新建一文件monkey_recorder.py,复制一下代码: #!/usr/bin/env monkeyrunner # Copyright ...

最新文章

  1. 实现一个模拟CMD.exe命令编辑模式执行与显示的Delphi控件
  2. eclipse没有日志_IPFS技术最新进展:抵抗eclipse攻击的能力
  3. 如何设计复用性较好的类?
  4. Selenium_等待页面加载完毕
  5. oracle 快照用途,Oracle快照原理及实现总结
  6. 数据库设计(关系型)
  7. ajax传值给java_java+jquery+ajax+json实现传值
  8. centos7开启tcp6_centos中docker映射出来的端口被tcp6监听,而没有被tcp监听导致ip+端口无法进行访问...
  9. 如何开启jvm日志_Java 从小白到大牛,JVM 不得不知的一些参数和配置
  10. 数字int转换成文字string形式的方法
  11. smobiler自适应不同手机分辨率
  12. 业务如何驱动技术发展
  13. 单位球坐标变换为椭球 matlab
  14. quoted-printable解码程序
  15. 新手必看:蓝牙耳机什么牌子的好用?2023年蓝牙耳机排名
  16. thinking php 教程,Thinkphp基础教程
  17. LINUX命令(1)-创建文件
  18. Win10频繁提示“USB端口上的电涌”
  19. idea在创建工程时No SDK的解决方法
  20. Hive是如何将hql语法转换成MR执行的

热门文章

  1. 继承、接口、抽象类综合题
  2. [附源码]java+ssm计算机毕业设计农产品追溯系统设计与实现e59uz(源码+程序+数据库+部署)
  3. python镜像源设置
  4. 半数年轻人存款不足10万:反映现代社会年轻人面临的财务压力和挑战
  5. 人工智能与大模型主题师资培训落地,飞桨持续赋能AI人才培养
  6. iTextSharp 设置PDF所有页面背景图功能
  7. 整合SSM (用户的增删改查)
  8. C语言 define 定义函数(多行书写) - C语言零基础入门教程
  9. ARC060 C - Tak and Cards(dp,背包)
  10. “相信讲好一门课比写好一篇论文重要的人,今夜死去了”