MonkeyRunner_MonkeyRunner知识点总结
2012-08-12 12:19
162 查看
知识点一:
Monkeyrunner为Andriod SDK 嫡亲的工具,功能还是很强大的,但Andriod的测试技术发展比较晚,所以目前国内的教程和例子比较少,很多功能没有发掘出来。大多数人可能遇到的几个问题。 1. 点击button,选择输入焦点,只能靠坐标来定位,一旦换,坐标完全失效了。
解决方案1: 通过device.getProperty("display.width"),device.getProperty("display.height")得到你调试手机的像素,在新的手机中,通过这2个参数的比例关系,可以得到在新手机的X,Y坐标点。解决方案2:通过view 查询ID来定位,这种方法是最好的,肯定不会错。但很多手机上view server不,即使被rooted了(可以通过hierarchyviewer.bat来确认view server是否工作),目前还没找到具体解决方案。
from com.android.chimpchat.hierarchyviewer import HierarchyViewerfrom com.android.monkeyrunner.easy import Byfrom com.android.hierarchyviewerlib.device import ViewNodeeasy_device.locate(By.id('id/main_button'))easy_device.touch(By.id('id/main_button'), 'downAndUp')
2. 通过图片来比较精确度不高。解决方案1:通过OCR技术,可以获取到图片里的文字。python里面有 https://code.google.com/p/pytesser/,当然这个是cpython的,monkeyrunner用的是jython, 无法直接调用cpython的模块,OCR里面的开源模块很多,jython直接调用java非常方便。
解决方案2:还是通过view server得到节目上内容hierarchy_viewer = device.getHierarchyViewer() view_node = hierarchy_viewer.findViewById('id/prompt_text_view') text = view_node.namedProperties.get('mText').toString()
Monkeyrunner为Andriod SDK 嫡亲的工具,功能还是很强大的,但Andriod的测试技术发展比较晚,所以目前国内的教程和例子比较少,很多功能没有发掘出来。大多数人可能遇到的几个问题。 1. 点击button,选择输入焦点,只能靠坐标来定位,一旦换,坐标完全失效了。
解决方案1: 通过device.getProperty("display.width"),device.getProperty("display.height")得到你调试手机的像素,在新的手机中,通过这2个参数的比例关系,可以得到在新手机的X,Y坐标点。解决方案2:通过view 查询ID来定位,这种方法是最好的,肯定不会错。但很多手机上view server不,即使被rooted了(可以通过hierarchyviewer.bat来确认view server是否工作),目前还没找到具体解决方案。
from com.android.chimpchat.hierarchyviewer import HierarchyViewerfrom com.android.monkeyrunner.easy import Byfrom com.android.hierarchyviewerlib.device import ViewNodeeasy_device.locate(By.id('id/main_button'))easy_device.touch(By.id('id/main_button'), 'downAndUp')
2. 通过图片来比较精确度不高。解决方案1:通过OCR技术,可以获取到图片里的文字。python里面有 https://code.google.com/p/pytesser/,当然这个是cpython的,monkeyrunner用的是jython, 无法直接调用cpython的模块,OCR里面的开源模块很多,jython直接调用java非常方便。
解决方案2:还是通过view server得到节目上内容hierarchy_viewer = device.getHierarchyViewer() view_node = hierarchy_viewer.findViewById('id/prompt_text_view') text = view_node.namedProperties.get('mText').toString()
相关文章推荐
- java多线程的知识点总结
- Struts2知识点回顾(总结)学习思维导图
- 黑马程序员 知识点总结-Java IO(五)字符编码
- iOS_nsarray_nsdictionary知识点总结
- 网页编程基础第三章知识点总结——超链接和图像
- Python字符串知识点总结(字符串的一些用法)
- 数据库与SQL语言 知识点总结
- iOS开发中关于UIImage的知识点总结
- 【知识点总结】NOIP前夕 2014.11.4
- c语言_知识点总结
- 准备总结的知识点。
- sharepoint知识点总结
- 计算机网络常考知识点总结
- Java 面向对象(基础) 知识点总结I
- Android Service 知识点总结
- java复用类(组合、继承,代理,final关键字,初始化顺序) 知识点的总结
- 项目管理专业 知识点总结(二)
- C/C++刷题知识点总结
- javaweb学习第八天:Tomcat相关知识点总结
- 索引知识点归纳总结