首次接触monkeyrunner,做了一个小练习,记录下来为了方便自己以后的复习,有需要的朋友也可以参考一下。文章中有些地方可能理解的不对,请谅解。

实例练习题:

一、使用monkeyrunner完成如下操作:

1.安装worktile App

2.启动worktile并截屏

3.在启动页进行5个动画页的滑动切换,每次都需要截屏

4.点击登录按钮,进入登录页面

5.卸载worktile

 

前提准备:

1.Android模拟器

2.Android SDK已经在环境变量中配置好

3.从应用宝(专门下载apk的网站)下载worktile

========================正式开始============================

1.启动android模拟器,一定要先启动模拟器,才能进行下面的操作

 

2.先确认adb的端口号是否被其他程序的进程占用

--------adb是什么?adbandroid sdk中的一个工具,该工具可以直接操作管理andriod模拟器或真实的android设备                        

 1) 运行cmd,输入命令adb devices

 2) 如果显示adb server is out of date.killing,表示adb端口已经被其他程序的进程占领了,此时输入 adb nodaemon server ,查看adb端口号,一般情况下为5037

     再输入netstat -ano|findstr “5037”,可以看到占据端口号5037的进程,注意本地占据端口的pid,在任务管理器中kill

具体操作链接地址:http://jingyan.baidu.com/article/d621e8da0dee022865913fce.html

 3) 如果显示如下图,则正确

 

 

4)我是一直没有显示连接的设备,即192.168.56.101:5555   device 这行,最后关机重启,万能法宝

 

3.两种方式创建Python代码

 1)在sdk tools中自带monkeyrunner.bat 点击运行,就可以输入一行一行的代码

 2)将代码写在记事本中,文件扩展名改为.py,就变成.py文件啦

然后运行cmd,输入monkeyrunner  后面把文件直接拖入进来,如下图

 

4.具体代码

//导入一些需要的包

from com.android.monkeyrunner import MonkeyRunner

from com.android.monkeyrunner import MonkeyDevice 

from com.android.monkeyrunner.easy import EasyMonkeyDevice

from com.android.monkeyrunner.easy import By

//连接模拟器,如果一直连接没反应,可能是端口被占领,返回第二步确认

device=MonkeyRunner.waitForConnection() 

 

//安装之前下载worktile,括号里是apk的地址

device.installPackage('F:/com.worktile_Worktile3.4.3_17.apk')

 

//启动worktile app,括号里是  app包名/activity,获得方式见下面图1

device.startActivity("com.worktile/com.worktile.ui.external.WelcomeActivity")

 

MonkeyRunner.sleep(1)

 

//第一个起始页截图

startPic=device.takeSnapshot()

//写入 存为图片地址

startPic.writeToFile('F:/startPic.jpg','jpg')

 

//滚动页第一张截图

pic1=device.takeSnapshot()

pic1.writeToFile('F:/pic1.jpg','jpg')

 

//滚动页第二张截图

pic2=device.takeSnapshot()

pic2.writeToFile('F:/pic2.jpg','jpg')

 

//滚动页第三张截图

pic3=device.takeSnapshot()

pic3.writeToFile('F:/pic3.jpg','jpg')

 

//滚动页第四张截图

pic4=device.takeSnapshot()

pic4.writeToFile('F:/pic4.jpg','jpg')

 

//滚动页第五张截图

pic5=device.takeSnapshot()

pic5.writeToFile('F:/pic5.jpg','jpg')

 

 

 

/*

*点击登录按钮,跳至登录页面

如何获得登录按钮的id

*----双击android sdk tools里的hierarchyviewer.bat(hierarchy viewer 可以看到页面布局,

*   获得控件属性,更好的检视和设计用户界面),如图1,加粗部分表示当前页,双击加

*   粗部分,如图2,具体操作可百度

*/

 

 

                             图1

 

 

 

                            图2

 

easy_device=EasyMonkeyDevice(device)

 

//获得登录按钮的id,按下去

easy_device.touch(By.id('id/btn_login'),MonkeyDevice.DOWN_AND_UP)

MonkeyRunner.sleep(5)

 

//卸载app,括号里是app的包名,注意app的包名不是apk的名字哦

device.removePackage('com.worktile')

 

 

====================结束====================================