首次接觸monkeyrunner,作了一個小練習,記錄下來爲了方便本身之後的複習,有須要的朋友也能夠參考一下。文章中有些地方可能理解的不對,請諒解。html
實例練習題:android
1、使用monkeyrunner完成以下操做:app
1.安裝worktile App工具
2.啓動worktile並截屏佈局
3.在啓動頁進行5個動畫頁的滑動切換,每次都須要截屏動畫
4.點擊登陸按鈕,進入登陸頁面網站
5.卸載worktileui
前提準備:spa
1.Android模擬器設計
2.Android SDK已經在環境變量中配置好
3.從應用寶(專門下載apk的網站)下載worktile
========================正式開始============================
1.啓動android模擬器,必定要先啓動模擬器,才能進行下面的操做
2.先確認adb的端口號是否被其餘程序的進程佔用
--------adb是什麼?adb是android 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')
====================結束====================================