本文主要介绍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
更多见:http://www.android-doc.com/reference/android/view/KeyEvent.html
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()
唤醒屏幕
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()