MonkeyRunner实例及使用说明

文章转自:

http://www.ishow.me/2013/02/06/1035/.html

 

了解了MonkeyRunner,现在上一个简单的实例(理论支持所有Android设备^_^),向左滑动屏幕2次,并在滑动前和滑动后进行截图:

Python

 

 

# Imports the monkeyrunner modules used by this program
 
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage
 
# Connects to the current device, returning a MonkeyDevice object
 
device = MonkeyRunner.waitForConnection()
 
# Takes a screenshot
 
result = device.takeSnapshot()
 
# Writes the screenshot to a file
 
result.writeToFile('./shotbegin.png','png')
 
#Drag screen
for i in range(1,3):
    device.drag((200,300),(100,300),0.1,1)
    MonkeyRunner.sleep(1)
 
# Takes a screenshot
 
result = device.takeSnapshot()
 
# Writes the screenshot to a file
 
result.writeToFile('./shotend.png','png')

 

使用方法:将代码拷贝到记事本并保存为.py格式的文件(最好和MonkeyRunner放在同一目录),如Demo.py,然后运行CMD并进入MonkeyRunner目录,使用MonkeyRunner Demo.py运行,看下什么效果?

实例详解:
1.导入模块
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage

2.连接当前设备,并返回一个MonkeyDevice对象
device = MonkeyRunner.waitForConnection()

3.截图并保存
result = device.takeSnapshot()
result.writeToFile(‘./shotbegin.png’,'png’)

4.滑动屏幕2次:
for i in range(1,3):
device.drag((200,300),(100,300),0.1,1)
MonkeyRunner.sleep(1)
说明:这是Python中的一个for循环,意思是遍历1~3(不含3)所有整数,遍历做什么呢?第二行就是我们要做的事情,“drag”就是拖动事件指令,后面的括号里就是参考,表示从第一个坐标开始到一个坐标结束,0.1表示所用时间,最后的1可以理解为采样点,默认为10,这里设置的是1,在本实例中1和10区别不大。第三行就是等待的意思,滑动一次后等待1秒再继续。
截图并保存
result = device.takeSnapshot()
result.writeToFile(‘./shotend.png’,'png’)
和第三步是一样的,只是保存的名字不一样,这样就实现了测试前和测试后的结果对比。

是不是很简单?

除了实例中的导入,截图,保存截图,滑动屏幕,还有很多方法,只要搞清楚怎么用了,剩下的就是自己排列组合来做成一个个的Case了。

其它方法介绍:

1.安装Android包,注意,此方法返回的返回值为boolean,由此可以判断安装过程是否正常 ;
device.installPackage(‘myproject/bin/MyApplication.apk’)

device.removePackage (‘com.example.android.notepad’)
print (‘卸载成功’)
device.installPackage(‘ApiDemos.apk’)
print (‘安装成功’)

 

2.启动一个Activity;
device.startActivity (component=’com.android.htccontacts/com.android.htccontacts.ContactsTabActivity’)

3.时延(秒);
MonkeyRunner.sleep(3)
4.触击屏幕;
device.touch(507,72,”DOWN_AND_UP”)

5.执行adb shell命令;
device.shell(“input text goup01″)

6.发送按键指令
按下HOME键 device.press(‘KEYCODE_HOME’,'DOWN_AND_UP’)
按下BACK键 device.press(‘KEYCODE_BACK’,'DOWN_AND_UP’)
按下下导航键 device.press(‘KEYCODE_DPAD_DOWN’,'DOWN_AND_UP’)
按下上导航键 device.press(‘KEYCODE_DPAD_UP’,'DOWN_AND_UP’)
按下OK键 device.press(‘KEYCODE_DPAD_CENTER’,'DOWN_AND_UP’)

相应的按键对应的名称如下:

home键:KEYCODE_HOME
back键:KEYCODE_BACK
send键:KEYCODE_CALL
end键:KEYCODE_ENDCALL
上导航键:KEYCODE_DPAD_UP
下导航键:KEYCODE_DPAD_DOWN
左导航:KEYCODE_DPAD_LEFT
右导航键:KEYCODE_DPAD_RIGHT
ok键:KEYCODE_DPAD_CENTER
上音量键:KEYCODE_VOLUME_UP
下音量键:KEYCODE_VOLUME_DOWN
power键:KEYCODE_POWER
camera键:KEYCODE_CAMERA
menu键:KEYCODE_MENU

以上信息基本够用了,若还有什么更“高级”方法,我会再加进来的,希望这些对大家有帮助。

 

 

 

 

 

无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家。教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家。点这里可以跳转到教程 https://www.captainbed.net/chichoxian

 

 

 

 

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值