星期三, 12月 10, 2014

MonkeyRunner easy module

前一陣子又在折騰 MonkeyRunner,意外發現有 easy 這個 module,順道研究了一下 ViewClient 。
easy 這個 module 是內建的,功用有點類似 jQuery,可以幫你直接找到目前畫面的某個元件,這樣就可以快速的在裏面填入文字或是按下按鈕等等。
這例子會啟動 Email ,然後將資料填入欄位後,寄出去。但實際上並不會寄出,而是存到草稿 (Draft) 裡,這是由於 Email 在寄送郵件的程式裡,有去判斷,假若是透過 MonkeyRunner 所觸發的事件,他就不寄送,而是存到草稿裡。
easy module 還有提供一些方便的函式,主要都是操作 UI 用的比較多。假若你有下載 Android 原始碼的話,這部份是在 sdk/monkeyrunner/src/com/android/monkeyrunner/easy 資料夾下面。
ViewClient 則是有人覺得不夠用,就另外自己開發了。一開始是配合 MonkeyRunner 才能使用,到了 3.0 以後,就可以不需要 MonkeyRunner,用 Python 搭配 Android SDK 就可以使用。 話是這麼說,但實際上,還是得視手機 Android 版本而定,總之使用 ViewClient 有看到錯誤訊息,就試著改用 2.3.25 的版本試試看吧。下面就是大致的用法:
ViewClient 在找元件的部份,有點亂,網站上文件也不太清楚,我追蹤原始碼,是一定要 dump ,才能找到。而且,沒辦法用 id 來找,只能用文字來找。看原始碼還有提到 UI Automator 這工具,但後來就沒詳究了。我後來沒有用 ViewClient ,所以...

小技巧,在找畫面上有哪些元件時,可以用 hierarchyviewer/hierarchyviewer1 這工具來看畫面佈局,這相當好用。
參考資料:

沒有留言: