老李推荐: 第3章2节《MonkeyRunner源码剖析》脚本编写示例: MonkeyDevice API使用示例

上一节我们学习了如何通过MonkeyRunner这个类的静态方法waitForConnection来把后台和设备建立好连接,且看到了在建立连接成功后,该方法会返回来一个MonkeyDevice的实例对象。那么这一节我们就通过编写一些脚本代码示例来了解学习下MonkeyDevice这个类的使用方法。

MonkeyDevice这个类,从类名我们就可以知道它所做的事情基本上都是跟目标安卓设备这个device相关的,事实上也是如此,比如上一节的示例中就是通过Device对象的getSystemProperty方法来获得系统环境变量中保存的目标设备的序列号的。

当然,除了getSystemProperty这个方法之外,MonkeyDevice还提供了很多设备相关的操作方法,且这些方法很大一部分我们在编写测试脚本的时候都会经常使用。下面我们就把我们常用的且本节会用到的关键方法的使用描述给列出来供大家参考:

表3-2-1 示例代码所用关键方法列表

从上表我们可以看到在调用MonkeyDevice的press按键方法和touch触控方法时需要指定一个动作类型的参数。根据不同的动作类型可以控制向目标设备发送不同类型的事件,且这些动作在MonkeyDevice都有对应的定义:

  • DOWN: 通过press或者touch方法往设备发送一个按下事件,模拟的是用户按下一个按键或者在触摸屏触控按下手指的动作

  • UP: 通过press或者touch方法往设备发送一个释放事件,模拟的是用户在按下一个按键后放手释放该按键或者用户在屏幕上按下手指然后释放手指的动作

  • DOWN_AND_UP: 通过press或者touch方法往设备发送一个按下DOWN事件,然后紧跟着立刻发送一个释放UP事件,模拟的是用户按下一个按键后立刻释放手指和用户触控屏幕后立刻释放手指的动作

  • MOVE:往目标安卓设备发送一个移动的触控事件,该事件通常会和DOWN以及UP组合使用来模拟一个拖动Drag的手势动作。注意这个动作只对MonkeyDevice的触控方法touch起效,因为按键只有模拟触摸屏幕的触控动作能做拖动的动作,按键是没有办法做拖动动作的

那么下面我们就通过两个示例来看一下在monkeyrunner脚本中我们应该如何调用这些方法来做事情。同时这里需要重申一点的是,这些示例代码都是为了没有接触过monkeyrunner脚本编写的读者准备的,为了方便描述,这些代码都没有封装成任何方法。

我们首先来看第一个示例,该示例的作用是在NotePad应用中创建一个日记,然后把它删除,整个过程会涉及我们上面提及的大部分方法的调用。

转载于:https://blog.51cto.com/10988776/1730031

老李推荐: 第3章2节《MonkeyRunner源码剖析》脚本编写示例: MonkeyDevice API使用示例 1...相关推荐

  1. 老李推荐:第14章4节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-装备ViewServer-端口转发 1...

    老李推荐:第14章4节<MonkeyRunner源码剖析> HierarchyViewer实现原理-装备ViewServer-端口转发 在初始化HierarchyViewer的实例过程中, ...

  2. 老李推荐:第5章5节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 获取系统服务引用 1...

    老李推荐:第5章5节<MonkeyRunner源码剖析>Monkey原理分析-启动运行: 获取系统服务引用 上一节我们描述了monkey的命令处理入口函数run是如何调用optionPro ...

  3. 老李推荐:第3章3节《MonkeyRunner源码剖析》脚本编写示例: MonkeyImage API使用示例 1...

    老李推荐:第3章3节<MonkeyRunner源码剖析>脚本编写示例: MonkeyImage API使用示例 在上一节的第一个"增加日记"的示例中,我们并没有看到日记 ...

  4. 老李推荐: 第8章4节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-启动AndroidDebugBridge 1...

    老李推荐: 第8章4节<MonkeyRunner源码剖析>MonkeyRunner启动运行过程-启动AndroidDebugBridge 上一节我们看到在启动AndroidDebugBri ...

  5. 老李推荐:第6章1节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览 1...

    老李推荐:第6章1节<MonkeyRunner源码剖析>Monkey原理分析-事件源-事件源概览 在上一章中我们有简要的介绍了事件源是怎么一回事,但是并没有进行详细的描述.那么往下的这几个 ...

  6. 老李推荐:第6章6节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-命令队列...

    老李推荐:第6章6节<MonkeyRunner源码剖析>Monkey原理分析-事件源-事件源概览-命令队列 事件源在获得字串命令并把它翻译成对应的MonkeyEvent事件后,会把这些事件 ...

  7. 老李推荐:第14章8节《MonkeyRunner源码剖析》 HierarchyViewer实现原理-获取控件列表并建立控件树 1...

    老李推荐:第14章8节<MonkeyRunner源码剖析> HierarchyViewer实现原理-获取控件列表并建立控件树 poptest是国内唯一一家培养测试开发工程师的培训机构,以学 ...

  8. 老李推荐:第8章2节《MonkeyRunner源码剖析》MonkeyRunner启动运行过程-解析处理命令行参数...

    老李推荐:第8章2节<MonkeyRunner源码剖析>MonkeyRunner启动运行过程-解析处理命令行参数 MonkeyRunnerStarter是MonkeyRunner启动时的入 ...

  9. 第3章2节《MonkeyRunner源码剖析》脚本编写示例: MonkeyDevice API使用示例(原创)

    天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文"寻求合作伙伴编写<深入理解 MonkeyRunner>书籍".但因为诸多原因,没有如愿.所以这里把草稿 ...

最新文章

  1. javascript编写_如何通过编写自己的Web开发框架来提高JavaScript技能
  2. emqx配置mysql认证_emqx使用mysql完成用户密码验证和ACL鉴权-Go语言中文社区
  3. 增强画面纵深感的几个小技巧
  4. 激活函数 activation function
  5. python 基础 list和 tuple dict和set
  6. IDC Q1中国云服务报告:公有云IaaS市场增速持续高于全球
  7. 《天天数学》连载14:一月十四日
  8. STL常见算法transform以及二分查找,以及lambda表达式
  9. TIPS:java 类的全局变量与静态变量
  10. 一键卸载MSSQL_1.2 Beta版
  11. 在使用RadASM一开始的过程中遇到的问题汇总(后续更新)
  12. 运维基础实用知识点--软件篇
  13. 计算机学生的高职英语课程,高职计算机英语课程教学方法探索
  14. Aseprite Dark Mort HD 主题
  15. web程序设计(9)——编写阅读器(JQuery基础)
  16. H5跳转微信公众号关注页面
  17. 【Greenplum走遍全国】济南技术研讨会
  18. HKEY_LOCAL_MACHINE:hardware\DeviceMap\SerialComm里找不到串口的解决办法
  19. 学会这些,不做委屈的项目经理
  20. 如何用python画爱心?

热门文章

  1. 洛谷P1482 Cantor表(升级版) 题解
  2. 网络基础Cisco路由交换四
  3. Recovery 流程简介
  4. 如何找到需要的rpm包
  5. .NET Oracle连接方法
  6. IE 7.0抛弃Win2000用户?(zz)
  7. 寻找先序遍历中第k个节点
  8. 诗与远方:无题(十二)
  9. Storm对DRPC权限控制Version1.0.1
  10. django shortcut函数