MonkeyRunner常用类方法

2024-01-17 05:48
文章标签 方法 常用 monkeyrunner

本文主要是介绍MonkeyRunner常用类方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MonkeyRunner的一些常用方法:

(详细参考:http://developer.android.com/tools/help/MonkeyRunner.html

void alert (string message, string title, string okTitle)

弹出一个对话框,默认标题“警告”,按钮显示“确定”,可暂停当前的程序

例:MonkeyRunner.alert("hello world")

 

弹出一个hello world对话框

integer choice (string message, iterable choices, string title)

显示带有一列可选项的对话框,可暂停当前的程序,选择后返回integer对象,代表选择项的序列index

例:MonkeyRunner.choice("choice a sex",["man","women"])

 

弹出一个选择性别的对话框,选择man会返回0,选择women会返回2

string input (string message, string initialValue, string title, string okTitle, string cancelTitle)

显示一个输入框,接受输入后返回字符串

例:MonkeyRunner.input("enter text")

 

弹出一个输入框,输入后确认返回字符串

void sleep(float seconds)

暂停当前程序指定秒

例:MonkeyRunner.sleep(2)

暂停当前程序2

MonkeyDevice waitForConnection (float timeout, string deviceId)

timeout

等待连接时间,默认为一直等待.

deviceId

设备名,可通过adb devices查看当前连接设备名,一般可以不指定.

 

返回一个MonkeyDevice 实例

常用写法为:

device = MonkeRunner.waitForConnection()

通过获取到的device对象,可以调用MonkeyDevice的方法对设备进行操作。

MonkeyDevice的一些常用方法:

(详细参考:http://wiki.eoeandroid.com/MonkeyDevice)

void drag (tuple start, tuple end, float duration, integer steps)

例:device.drag((120,240),(200,240),1,10)

屏幕解锁操作,从(120,240)向(200,240)滑动,用时1秒,10为默认值

object getProperty (string key)

查询设备相关信息,参数参考:http://developer.android.com/tools/help/MonkeyDevice.html#table1

void installPackage (string path)

安装指定路径的APK文件。如果改文件已安装,则会覆盖安装

例:device.installPackage("d:/2100.apk")

安装D2100.apk,路径中使用 /

void press (string name, dictionary type)

模拟按钮操作。

name 为按键码,参考:http://docs.eoeandroid.com/reference/android/view/KeyEvent.html

type 键盘事件类型可用的值有DOWN, UP, DOWN_AND_UP

void removePackage (string package)

删除指定的包,包括清除其数据和缓存

例:device.removePackage("evertone.Piano")

卸载piano程序,程序名通过aapt查看2100.apk文件,或者在shell模式下进入data/data目录下查找

void shell (string cmd)

执行shell命令并返回结果

例:device.shell("date")

执行shell命令,查询日期

void startActivity (string uri, string action, string data, string mimetype, iterable categories dictionary extras, component component, flags)

启动一个应用,对于需要测试的应用需要知道应用名和入口activity名称。可以调用sdk\builds-tools目录下的aapt获取

aapt dump baging d:\2100.apk

 

startActivity常用形式为:

例:device.startActivity(component = "evertone.Piano/evertone.Piano.loading")

执行后启动手机弹钢琴

MonkeyImage takeSnapshot()

屏幕截图,返回包含当前显示截图的MonkeyImage对象

例:Pic = device.takeSnapshot()

手机屏幕截图,结果保存在Pic里。picMonkeyImage实例

void touch (integer x, integer y, integer type)

屏幕点击(x,y)type 键盘事件类型可用的值有DOWN, UP, DOWN_AND_UP

例:device.touch(93,143,"DOWN_AND_UP")

点击屏幕(93,143)位置。屏幕坐标获取可使用sdk\tools路径下的Hierarchyviewer工具

void type (string message)

向设备发送包含字符的信息,等同于多次调用press()方法。现在发现message中只能写数字、英文,不能有空格,否则会输入失败

例:device.type("123adc")

输入 123abc

void wake ()

唤醒屏幕。暂时没发现有什么用 ==

MonkeyImage的一些常用方法:

(详细参考:http://wiki.eoeandroid.com/MonkeyImage

MonkeyImage对象一般不用直接创建,在获取了MonkeyDevice对象后,调用takeSnapshot()方法即可

例:pic = MonkeyDevice.takeSnapshot()

string convertToBytes (string format)

将当前图像转换成特定格式,并且作为字符串返回

tuple getRawPixel (integer x, integer y)

返回图像位置坐标(x,y)上的单个像素点,作为一个整数元组,以(a,r,g,b)格式。可对特定点进行取色

MonkeyImage getSubImage (tuple rect)

从当前图片中取出部分区域,创建一个新的MonkeyImage对象。参数为元祖,指定截图区域

例:pic_new=pic.getSubImage((0,0,100,100))

boolean sameAs (MonkeyImage other, float percent)

对比两个MonkeyImage对象是否相等(比较截图是否一致)。参数percent指定两个图像之间差异在多少百分比之内可以看做“相等”。可进行自动化结果校验

例:pic2.sameAs(pic1,0.9)

pic2pic190%范围内相似,则返回True,否则返回False

void writeToFile (string path, string format)

指定路径和格式,保存图片文件

例:pic1.writeToFile("d:/pic2.png","png")

指定图片格式为png,保存在本地d:/pic2.png路径。保存成功则返回True

这篇关于MonkeyRunner常用类方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/615032

相关文章

Nginx设置连接超时并进行测试的方法步骤

《Nginx设置连接超时并进行测试的方法步骤》在高并发场景下,如果客户端与服务器的连接长时间未响应,会占用大量的系统资源,影响其他正常请求的处理效率,为了解决这个问题,可以通过设置Nginx的连接... 目录设置连接超时目的操作步骤测试连接超时测试方法:总结:设置连接超时目的设置客户端与服务器之间的连接

Java判断多个时间段是否重合的方法小结

《Java判断多个时间段是否重合的方法小结》这篇文章主要为大家详细介绍了Java中判断多个时间段是否重合的方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录判断多个时间段是否有间隔判断时间段集合是否与某时间段重合判断多个时间段是否有间隔实体类内容public class D

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Linux使用nload监控网络流量的方法

《Linux使用nload监控网络流量的方法》Linux中的nload命令是一个用于实时监控网络流量的工具,它提供了传入和传出流量的可视化表示,帮助用户一目了然地了解网络活动,本文给大家介绍了Linu... 目录简介安装示例用法基础用法指定网络接口限制显示特定流量类型指定刷新率设置流量速率的显示单位监控多个

Java覆盖第三方jar包中的某一个类的实现方法

《Java覆盖第三方jar包中的某一个类的实现方法》在我们日常的开发中,经常需要使用第三方的jar包,有时候我们会发现第三方的jar包中的某一个类有问题,或者我们需要定制化修改其中的逻辑,那么应该如何... 目录一、需求描述二、示例描述三、操作步骤四、验证结果五、实现原理一、需求描述需求描述如下:需要在

JavaScript中的reduce方法执行过程、使用场景及进阶用法

《JavaScript中的reduce方法执行过程、使用场景及进阶用法》:本文主要介绍JavaScript中的reduce方法执行过程、使用场景及进阶用法的相关资料,reduce是JavaScri... 目录1. 什么是reduce2. reduce语法2.1 语法2.2 参数说明3. reduce执行过程

C#中读取XML文件的四种常用方法

《C#中读取XML文件的四种常用方法》Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具,下面我们就来看看C#中读取XML文件的方法都有哪些吧... 目录XML简介格式C#读取XML文件方法使用XmlDocument使用XmlTextReader/XmlTextWr

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

oracle DBMS_SQL.PARSE的使用方法和示例

《oracleDBMS_SQL.PARSE的使用方法和示例》DBMS_SQL是Oracle数据库中的一个强大包,用于动态构建和执行SQL语句,DBMS_SQL.PARSE过程解析SQL语句或PL/S... 目录语法示例注意事项DBMS_SQL 是 oracle 数据库中的一个强大包,它允许动态地构建和执行