安卓自動化測試工具MonkeyRunner之使用ID

把前段時間的研究成果記錄一下。主要是通過調用應用軟件的ID進行操作軟件,此操作需要用到以下類和工具:

1、安卓自有目錄\tools\hierarchyviewer.bat工具可以用來查看應用程序的ID。

操作hierarchyviewer.bat工具步驟:

(1)、啓動安卓模擬器,打開需要查看ID的軟件界面。此處以google搜索界面爲例。然後雙擊打開hierarchyviewer.bat,顯示搜索界面的activity,即下圖左側被選中的項,表示搜索界面的完整包名。

(2)點擊Load View Hierarchy按鈕,展現該搜索界面的層級圖。選中指定的控件,查看ID名稱。

在屬性顯示區域可以看到各個控件所處的座標位置,以及可以查看模擬器上任務欄的高度,這些信息可以用於座標計算中。

2、通過EasyMonkeyDevice類和By類來調用控件ID。

一些常用控件的寫法如下:

(1)輸入框的ID寫法:

easy_device.type(By.id('id/name_text),'zhangsan')

(2)複選框/單選/按鈕的ID寫法:
easy_device.touch(By.id('id/login_button'),MonkeyDevice.DOWN_AND_UP)
(3)當兩個ID名稱相同時,可以使用層級進行定位
easy_device.touch(By.id('id/parent_button'),MonkeyDevice.DOWN_AND_UP,By.id('id/current_button'),MonkeyDevice.DOWN_AND_UP)
通過ID進行計算器操作示例calculator.py:
from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice
from com.android.monkeyrunner.easy import EasyMonkeyDevice
from com.android.monkeyrunner.easy import By
from com.android.chimpchat.hierarchyviewer import HierarchyViewer
from com.android.hierarchyviewerlib.device import ViewNode
device = MonkeyRunner.waitForConnection()
package = 'com.android.calculator2' 
activity = 'com.android.calculator2.Calculator'
runComponent = package + '/' + activity
device.startActivity(component=runComponent)
MonkeyRunner.sleep(3.0)
easy_device = EasyMonkeyDevice(device)  #init easymonkeydevice object must start activity at first.Because the init method 
will getHierarchyViewer();
easy_device.touch(By.id('id/digit7'),MonkeyDevice.DOWN_AND_UP)
easy_device.touch(By.id('id/mul'),MonkeyDevice.DOWN_AND_UP)
easy_device.touch(By.id('id/digit8'),MonkeyDevice.DOWN_AND_UP)
easy_device.touch(By.id('id/equal'),MonkeyDevice.DOWN_AND_UP)
MonkeyRunner.sleep(1.0)
pic = device.takeSnapshot()
pic.writeToFile('D:\\monkeyrunner\\result.png','png')
print 'test finished!'
    


3、運行文件模擬計算7*8=56,生成result.png。monkeyrunner   calculator.py


用ID進行參數差不多都是這個思路。但是對於列表、或者彈出框則無法直接通過點擊ID操作成功,需要計算ID的座標。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章