官方API文档 :http://www.android-doc.com/tools/help/monkeyrunner_concepts.html#
MonkeyRunner API
1、monkeyrunner主要有三个类:
MonkeyRunner
MonkeyDevice
MonkeyLmage
2、MonkeyRunner类
提供的API:
alert() 警告框
choice() 选项框列表
help() API帮助文档
input() 输入
sleep() 暂停
waitForConnection() 等待设备连接
常用方法:
waitForConnection(float timeout,string deviceid)
from com.android.monkeyrunner import MonkeyRunner as mr
#连接设备,默认使用已经连接上的设备(adb connect IP:PORT)
device = mr.waitForConnection()
#连接设备,使用指定的设备连接
device = mr.waitForConnection(1,'127.0.0.1:62001')
3、MonkeyDevice类
MonkeyDevice类提供了安装和卸载程序包,开启Activity,发送按键和点击事件,运行测试包等方法
broadcastIntent() 发送广播
drag() 拖动,拖曳
getProperty() 获取当前设备属性
getSystemProperty() 获取当前设备属性
installPackage() 安装应用
instrument() 执行测试用例
press() 按键
reboot() 重启
removePackage() 删除指定package
shell() 执行shell命令
startActivity() 启动应用
touch() 点击
type() 输入字符串
常用方法:
instalPackage(String path)
removePackage(String package)
startActivity(string uri, String action, String data, String mimetype, iterable categories dictionary extras, component component, flags)
touch (integer x, integer y, integer type)
参数解释:
integer x,x坐标值
integer y,y坐标值
integer type,key event类型(如DOWN、UP、DOWN_AND_UP)
drap(tuple start, tuple end, float duration, integer steps)
参数解释:
tuple start,拖拽起始位置,为tuple类型的(x,y)坐标点
tuple end,拖拽终点位置,为tuple类型的(x,y)坐标点
float duration,拖拽手势持续时间,默认为1.0s
integer steps,插值点的步数,默认值为10
举例:
安装考研帮app并启动
kyb_install.py
from com.android.monkeyrunner import MonkeyRunner as mr
from com.android.monkeyrunner import MonkeyDevice as md
print("connect device")
device = mr.waitForConnection(1,'127.0.0.1:62001')
print("install app")
device.installPackage(r"C:\Users\chawey\Desktop\kaoyanbang.opdown.com.apk")
print("launch app")
packageName = 'com.tal.kaoyan'
activity = 'com.tal.kaoyan.ui.activity.SplashActivity'
component = packageName+'/'+activity
device.startActivity(component=component)
cmd命令执行执行:
monkeyrunner D:\monkeyrunner\kyb_install.py
注:如果报错:
03:18:56 E/DeviceMonitor: Adb connection Error:远程主机强迫关闭了一个现有的连接。
220119 15:18:56.708:S [pool-1-thread-1] [com.android.chimpchat.adb.AdbChimpDevice] Error starting command: monkey --port 12345
220119 15:18:56.708:S [pool-1-thread-1] [com.android.chimpchat.adb.AdbChimpDevice]java.io.IOException: 远程主机强迫关闭了一个现有的连接。
220119 15:18:56.708:S [pool-1-thread-1] [com.android.chimpchat.adb.AdbChimpDevice]at sun.nio.ch.SocketDispatcher.read0(Native Method)
220119 15:18:56.708:S [pool-1-thread-1] [com.android.chimpchat.adb.AdbChimpDevice]at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:43)
220119 15:18:56.708:S [pool-1-thread-1] [com.android.chimpchat.adb.AdbChimpDevice]at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223)
monkeyrunner使用脚本启动app报错时,如下解决方案:
第一步:打开任务管理器,列出所有的用户进程,强制终止所有的 adb.exe 进程
第二步:进入手机管理界面。调试界面有个 可调试的选项,关闭一次后打开,把数据线从新连一次电脑
MonkeyRunner的API
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 三大模块:MonkeyRunner, MonkeyDevice, MonkeyImage 1. 使用python编...
- 这篇文章记录一下 Monkeyrunner 的使用。因为本人也是刚接触,如有错漏,请指正。 准备 python 基...