本文主要介绍MonkeyDevice的方法。
上文中,使用MonkeyRunner方法连接设备并返回一个MonkeyDevice对象,使用该对象调用MonkeyDevice方法可实现对设备的操作。主要包括:点击、拖拽、截图、按键、输入内容
一、常量
MonkeyDevice的touch()、press()、type()方法,需要用到这些常量
- DOWN:按下事件,touch()、press()方法用到
- UP:抬起事件,touch()、press()方法用到
- DOWN_AND_UP:按下马上抬起,touch()、press()、type()三个方法用到
二、MonkeyDevice方法
1、startActivity()
打开应用
device.startActivity("com.android.browser/.BrowserActivity")
2、touch(integer x, integer y, integer tpye)
点击某个坐标点,发送事件。以下两种方式都可以
device.touch(200,300,MonkeyDevice.DOWN_AND_UP)
device.touch(200,300,'DOWN_AND_UP')
3、press(string name, dictionary type)
发送指定类型指定键码的事件
#按下HOME键
device.press('KEYCODE_HOME',MonkeyDevice.DOWN_AND_UP)
#按下BACK键
device.press('KEYCODE_BACK',MonkeyDevice.DOWN_AND_UP)
KeyCode:
home键: KEYCODE_HOME
back键: KEYCODE_BACK
拨号键: KEYCODE_CALL
挂断键: 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
4、type(string message)
将消息中包含的字符发送到此设备,就好像它们在设备的键盘上键入了一样。这相当于使用键事件类型DOWN_AND_UP为消息中的每个键代码调用press()。
device.type("zhuting")
5、installPackage(string path)
device.installPackage('D:\\apk\\taobao.apk') # 安装包
6、removePackage(string package)
device.removePackage('com.tencent.mm') # 卸载包
7、takeSnapshot()
image1 = device.takeSnapshot()
8、reboot()
device.reboot() # 重启系统
9、wake()
device.wake() #唤醒屏幕
10、drag(tuple start, tuple end, float duration, integer steps)
在这个设备的屏幕上模拟拖动手势(触摸、保持和移动)
start:开始坐标
end: 结束坐标
duration :拖动持续时间(以秒为单位),默认1.0秒
steps: 插值点时要采取的步骤。默认值是10
device.drag((200,600),(200,300),0.1,10) # 可实现滑动操作,上滑操作
附demo1.py
#encoding:utf-8
from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage
#连接设备
device = MonkeyRunner.waitForConnection(3,'emulator-5554')
MonkeyRunner.sleep(2)
print('connect device success')
#安装应用
device.installPackage('D:\\apk\\taobao.apk')
print('install taobao')
MonkeyRunner.sleep(5)
#卸载应用
device.removePackage('com.tencent.mm')
print('uninstall taobao')
MonkeyRunner.sleep(5)
#打开应用,打开浏览器
device.startActivity("com.android.browser/.BrowserActivity")
print('open browser')
MonkeyRunner.sleep(5)
#点击网址框
device.touch(200,80,"DOWN_AND_UP")
MonkeyRunner.sleep(2)
#输入网址
device.type("www.baidu.com")
device.touch(124,151,"DOWN_AND_UP")
MonkeyRunner.sleep(5)
#点击搜索框
device.touch(100,370,"DOWN_AND_UP")
MonkeyRunner.sleep(2)
device.type("zhuting")
MonkeyRunner.sleep(2)
device.touch(390,162,"DOWN_AND_UP") #点击搜索
MonkeyRunner.sleep(5)
#截图
image = device.takeSnapshot()
image.writeToFile('E:\\autoTest\\test_02.png','png') #保存截图
MonkeyRunner.sleep(5)
#HOME键
device.press("KEYCODE_HOME","DOWN_AND_UP")
MonkeyRunner.sleep(2)
device.drag((450,500),(50,500),0.5,10) # 可实现滑动操作,左滑
MonkeyRunner.sleep(5)
device.press('KEYCODE_POWER',MonkeyDevice.DOWN_AND_UP) # 电源键休眠
MonkeyRunner.sleep(2)
device.wake() # 唤醒设备
#重启系统
device.reboot()