monkeyrunner常用操作以及简单实例(包含一些截图报错处理方法)

前言:本文是在具备下载Android-sdk并配备adb环境的情况下进行的

检查环境,命令行输入monkeyrunner
下图所示,显示版本:
在这里插入图片描述

本文包含三部分:
1、截图报错处理
2、应用代码示例
3、monkeyrunner常用的操作

一、monkeyrunner截图报错处理

报错:
E/Screenshot: Unsupported protocol: 2
在这里插入图片描述
2、解决方法:
重新下载下图的jar包
链接:https://github.com/xSAVIKx/AndroidScreencast/releases/tag/v0.0.12s
在这里插入图片描述
3、下载好后,将该文件拉入到Android sdk的tools文件下的lib文件,下图所示
在这里插入图片描述
4、cmd中运行该jar包,可以直接将jar包拉入到命令框内:
在这里插入图片描述
其中D:\aa是该文件所在的路径
5、成功启动程序后,可以接着在命令行窗口中进行monkeyrunner操作

二、应用代码示例

代码解释:因为代码中有中文注释,所以需要加入编码声明
#coding=utf-8,
示例代码的作用是对app进行卸载前截图、然后卸载app,对卸载app后的页面进行截图、再安装app、再对安装app后的页面进行截图

#coding=utf-8
# 引入monkeyrunner模块
from com.android.monkeyrunner import MonkeyRunner
from com.android.monkeyrunner import MonkeyDevice
from com.android.monkeyrunner import MonkeyImage
# from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage
# 连接手机设备
device = MonkeyRunner.waitForConnection()
# 截图操作
result = device.takeSnapshot()
# 将截图保存到该路径下
result.writeToFile('D:\\aa\\1.png','png')
# 卸载该包名的app
device.removePackage('com.xx.xx')
print ('卸载成功!')

# 停留3秒
MonkeyRunner.sleep(3)
# 截图操作
result = device.takeSnapshot()
result.writeToFile('D:\\aa\\2.png','png')
# 安装该路径下的app
device.installPackage('D:\\aa\\demoDebug-v2.1.24-9aa80.apk')
print ('安装成功!')
# 截图
result = device.takeSnapshot()
result.writeToFile('D:\\aa\\3.png','png')

三、monkeyrunner常用的操作

1、在命令行中逐个敲入命令

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice, MonkeyImage
device = MonkeyRunner.waitForConnection()

输入上方两行命令,接下来可以进行自己的操作,下图所示
在这里插入图片描述
注意:在命令行中结束monkeyrunner操作时可以输入快捷键Ctrl+D退出
在这里插入图片描述

2、运行python脚本
在命令行中输入monkeyrunner xx.py运行脚本,下图所示
在这里插入图片描述
3、连接设备(默认连接、参数连接)
默认连接设备:
device = MonkeyRunner.waitForConnection()
参数连接设备:
device = MonkeyRunner.waitForConnection(1.0,‘xxxxx’)
4、启动activity
device.startActivity(component=“包名/Activity”)
5、for循环操作:
for i in range(1,10): print(i)
打印1-10
6、暂停操作、滑动屏幕操作
(1)MonkeyRunner.sleep(秒数,浮点数)
(2)滑动屏幕
device.drag(X,Y,D,S) ,X 开始坐标 Y 结束坐标 D 拖动持续时间(以秒为单位),默认1.0秒 S 插值点时要采取的步骤,默认值是10
device.drag((111,111),(222,222),2,10)
(3)连续滑动屏幕
for i in range(1,6): device.drag((111,111),(333,333),0.1,10)
7、发送字符
device.type(‘字符’)
8、点击事件
device.touch(x,y,触摸事件类型)
触摸事件类型一般为DOWN_AND_UP
9、重启手机、唤醒屏幕
device.reboot()
device.wake()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值