前提:环境已部署, 使用数据线连接上真机

 一、使用cmd窗口单步执行monkeyrunner命令

打开cmd窗口,输入monkeyrunner (前提设置好环境变量);然后按照monkeyrunner常用命令一步一步执行即可

二、使用CMD窗口执行python文件

打开cmd窗口,输入monkeyrunner d:\mk\install.py  对python脚本文件执行

install.py文件内容如下:

 from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage
device=MonkeyRunner.waitForConnection()
MonkeyRunner.sleep(3)
device.removePackage('com.xxx.phone')
MonkeyRunner.sleep(2)
device.installPackage('d:\mk\xxxphone.apk')
MonkeyRunner.sleep(2) device.wake()
device.touch(800,1900,'DOWN_AND_UP')
MonkeyRunner.sleep(2)
device.startActivity(component="com.xxx.phone/com.xxx.phone.activity.WelcomeActivity")
MonkeyRunner.sleep(5)
device.wake()
device.drag((800,600),(400,600),0.1,10)
device.wake()
MonkeyRunner.sleep(2)
device.drag((800,600),(300,600),0.1,10)
MonkeyRunner.sleep(2)
device.touch(530,1600,'DOWN_AND_UP')
MonkeyRunner.sleep(3)
device.touch(331,545,'DOWN_AND_UP')
device.touch(331,1850,'DOWN_AND_UP')
print "install success!!"

三、MonkeyRunner 常用命令

//导入三模块

  from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage

//连接设备,创建device对象,代表连接的手机,有两种连接方式:

  device=MonkeyRunner.waitForConnection()   //默认连接

  device=MonkeyRunner.waitForConnection(1.0,’emulator-5554’) //参数连接

  参数1:超时时间,单位秒。默认是无限期等待。

  参数2:设备名称,默认为当前设备(手机优先,其次为模拟器)

//安装APK,成功则返回true

  device.installPackage(‘d:\xxx.apk’)

//卸载APK,成功返回true

  device.removePackage(‘xxx.apk’)

//启动APP

  device.startActivity(component=”com.yjy.phone/com.yjy.phone,activity.WelcomeActivity”)

//拖拽

  device.drag((x1,y1),(x2,y2),01,10)

  参数:开始坐标,结束坐标,持续时间,步骤

//触摸 (x,y为坐标,单位像素)

  device.touch(x,y,’DOWN_AND_UP’)

  事件类型:(用于touch和press)

  1、DOWN发送一个DOWN事件。指定DOWN事件类型发送到设备,对应的按一个键或触摸屏幕上。
  2、UP发送一个UP事件。指定UP事件类型发送到设备,对应释放一个键或从屏幕上抬起。
  3、DOWN_AND_UP发送一个DOWN事件,然后一个UP事件。对应于输入键或点击屏幕。

//按键

  device.press(‘KEYCODE_HOME’,’DOWN_AND_UP’)

  参数1:

home键

KEYCODE_HOME

back键

KEYCODE_BACK

send键

KEYCODE_CALL

end键

KEYCODE_ENDCALL

上导航键

KEYCODE_DPAD_UP

ok键

KEYCODE_DPAD_CENTER

下导航键

KEYCODE_DPAD_DOWN

power键

KEYCODE_POWER

左导航

KEYCODE_DPAD_LEFT

camera键

KEYCODE_CAMERA

右导航

KEYCODE_DPAD_RIGHT

上音量键

KEYCODE_VOLUME_UP

menu键

KEYCODE_MENU

下音量键

KEYCODE_VOLUME_DOWN

//唤醒设备

  device.wake()

//输入字符串

  device.type(‘abc’)

//截屏保存

  result=device.takeSnapshot()

  result.writeToFile(‘d:/result1.png','png')  //保存电脑本地

//执行一个adb shell命令,并返回结果,如果有的话

  device.shell("adb monkey --help")

//重启设备

  device.reboot()

//延时

  MonkeyRunner.sleep(5)

//打印

  print”abc”

//monkeyrunner的退出:

  ctrl+d

MonkeyRunner_运行脚本(一)的更多相关文章

  1. nodejs安装/运行脚本

    本文主要介绍nodejs在windows下安装及运行脚本. 安装nodejs 先从nodejs官网:http://nodejs.org/下载对应的系统的安装包,比如用于64位系统的最新0.10.21的 ...

  2. pycharm运行脚本为何不生成测试报告?

    今日使用python+selenium编写自动化测试脚本并执行过程中,使用pycharm运行结果后发现脚本运行无报错,脚本中的操作也正常被执行,但就是没有生成测试报告. 为什么呢,为什么呢,生成测试报 ...

  3. linux软件管理之------编译安装nginx服务器并手动编写自动化运行脚本

    红帽系列的 linux软件管理分为三类:1. rpm 安装软件.2. yum 安装软件.3. 源码包编译安装.前面两种会在相关专题给出详细讲解.源码包的编译安装是非常关键的,我们知道linux的相关版 ...

  4. 在shell中运行以不同方式运行脚本

    在shell当中,可以有3中方式运行脚本: 1 . ./script_name 或者source ./script_name 2 直接./script_name 3 ./script_name &am ...

  5. mysql下怎样运行脚本

    假设要运行脚本: F:\hello world\niuzi.sql 第一种方法:        在命令行下(未连接数据库),输入 mysql -h localhost -u root  -p < ...

  6. 定时器解决js长时间运行脚本问题

    一般地,单个js操作的运行时间不应超过100毫秒,否则的话,会影响用户体验,用户会认为自己与界面失去联系.而对于一些复杂的任务,可能无法在100ms内完成,甚至会突破浏览器限制(调用栈大小限制和长时间 ...

  7. 基于Django的独立运行脚本开发

    1.在Django框架下工作时间长了,会对Django的技术设施产生依赖,比如其方便的ORM,如果写基于Django的独立运行脚本,主要在脚本前面加上以下代码: import sys,os,djang ...

  8. Oracle12c中多宿主容器数据库(CDBs)和可插拔数据库(PDBs)新特性之运行脚本

    对开发者和DBA们来说,对shell脚本批量任务的影响成了多宿主选项带来的最大改变之一.因为多宿主环境通过服务来连接到可插拔数据库,因此,依靠CRON和OS认证成了换成多宿主环境后的一个最大问题.本文 ...

  9. cross-env 兼容跨平台运行脚本

    https://www.npmjs.com/package/cross-env 跨平台运行脚本 The problem Most Windows command prompts will choke ...

随机推荐

  1. MXNET:卷积神经网络基础

    卷积神经网络(convolutional neural network).它是近年来深度学习能在计算机视觉中取得巨大成果的基石,它也逐渐在被其他诸如自然语言处理.推荐系统和语音识别等领域广泛使用. 目 ...

  2. 【平差软件学习---科傻】四、科傻二等水准平差(参数设置和in1文件讲解)

    [平差软件学习---科傻]四.科傻二等水准平差(参数设置和in1文件讲解) 这个算是最后一集了,也可能不是如果我想到不足的地方我会在补上一集视频,或者是文章页.总感觉自己操作的很熟练,到自己真正讲的时 ...

  3. 基于Extjs 4.2的通用权限管理系统,通用后台模板,EF+MVC+Extjs 4.2

    基于Extjs 4.2的通用权限管理系统,通用后台. 我们的宗旨:珍爱生命,拒绝重复!Don't Repeat Yourself!!! 本案例采用EntityFramework+MVC4.0+Extj ...

  4. 【网络编程】——ne-snmp开发实例1

    net-snmp扩展有多种方式,在此只介绍两种——动态库扩展,静态库扩展. 在做net-snmp开发之前,首先确定net-snmp相关的软件是否安装. rpm -qa | grep snmp net- ...

  5. git初始化本地项目并推送到git服务器

    1.创建本地项目,在项目根目录执行git init命令 git init 2.在git服务器上创建一个仓库,这里使用GitHub创建一个仓库. 3.执行git remote add origin &l ...

  6. Java知多少(97)绘图模式概述

    绘图模式是指后绘制的图形与早先绘制的图形有重叠时,如何确定重叠部分的颜色.例如,后绘制的覆盖早先绘制的:或者后绘制与早先绘制的两种颜色按某种规则混合.主要有正常模式和异或模式两种:正常模式是后绘制的图 ...

  7. 安卓程序代写 网上程序代写[原]Android应用的自动更新模块

    软件的自动更新一般都与Splash界面绑定在一起, 由于需要维护的软件界面很复杂, 一个Activity中嵌入ViewPager, 并且逻辑比较复杂, 索性重新写一个Activity, 现在的软件都很 ...

  8. Ubuntu上运行Blender,在控制台上查看运行结果

    1.首先在控制台打开Blender. 具体操作:找到Blender的安装路径,我的是:/home/lcx/下载/blender-2.78c-linux-glibc219-x86_64 $cd /hom ...

  9. [Android Studio] Using API of OpenCV DNN

    前言 一.故事背景 NDK方法人脸识别 OpenCV4Android系列: 1. OpenCV4Android开发实录(1):移植OpenCV3.3.0库到Android Studio 2.OpenC ...

  10. Http Referer的一些总结

    以前对Http中Referer的认识不够透彻.最近理了理,记录一下. 1 Referer可以记录访问的来源,统计访问量,可以用来防盗链. 2 客户端用js不能篡改Referer,用一些插件什么的可以达 ...