本文章轉(zhuǎn)載于搜狗測試
在這個系列的上一篇文章中,我們介紹了MonkeyRunner,并提到如果根據(jù)坐標(biāo)來編寫自動化腳本的話存在著一定的局限性(點擊文末“閱讀原文”可以打開這篇文章查看)。這篇文章將進(jìn)一步介紹根據(jù)控件的id來編寫自動化腳本的方法
根據(jù)控件的id來操作控件
從Android 2.3.3開始,MonkeyRunner增加了EasyMonkeyDevice和By這兩個類,它們都位于com.android.monkeyrunner.easy包內(nèi),借助這兩個類,我們就可以根據(jù)控件的id來操作控件。
在這個系列的上一篇文章中,我們展示了搜狗手機(jī)瀏覽器在進(jìn)入設(shè)置頁面后,不同的分辨率下控件的絕對坐標(biāo)并不相同。
這時如果我們想要點擊其中一個控件,比如說更換皮膚,就要用到下面的方法:

其中id/rl_preference_skin就是更換皮膚這個控件的id,那么怎樣才能知道每個控件的id是什么呢?可以借助Adt的另外一個工具HierarchyViewer
使用HierarchyViewer查看控件的id
HierarchyViewer的可執(zhí)行文件叫做hierarchyviewer.bat,跟monkeyrunner.bat在同一個目錄下,運行后會出現(xiàn)這樣的界面

列表中列出了正在運行中的Activity,點擊搜狗手機(jī)瀏覽器設(shè)置界面的Activity——,可以解析出整個界面的布局,這個過程可能稍微有些慢。
應(yīng)用的布局有時是非常復(fù)雜的,我們不需要一點一點的找,可以在右下角的示意圖中點擊我們想查看的控件,這時控件就會在左側(cè)的控件樹中被選中。
在左側(cè)的控件樹中,列出了控件的基本信息,比如我們需要的控件id。
最后需要說明的是,根據(jù)控件的id來操作控件要求設(shè)備開啟了ViewServer,現(xiàn)在大部分設(shè)備都是沒有開啟ViewServer的,如果實在找不到開啟了ViewServer的設(shè)備,就使用模擬器吧