2018年11月5日 星期一

17-input三兄弟tap

語法 input tap <x> <y>
說明 與 MonkeyDevice.touch (<x>, <y>, MonkeyDevice.DOWN_AND_UP) 的行為一樣。

16-input三兄弟keyevent

語法 input keyevent [--longpress] <key code number or name>
說明 與 MonkeyDevice.press(<key name>, MonkeyDevice.DOWN_AND_UP) 的行為類似。
Key name,可查閱 KeyEvent 裡以 KEYCODE_ 為開頭的名稱。
Key code number,可查閱 KeyEvent 裡以 KEYCODE_ 為開頭的名稱的 constant value。
--longpress 此參數目前無法達成長壓按鍵的效果。

咱們直接看例子:

2018年11月4日 星期日

15-輕量級的輸入模擬 (input)

相比於 MonkeyDevice 提供的 press、touch 和 drag 三種方法,本喵更常使用 shell 提供的 input 來執行對應的動作。其實若單以行為的可控制性來說,MonkeyDevice 是勝過 shell input 的,比如 shell input tap 只能執行「點一下螢幕」這樣的動作,而 MonkeyDevice.touch() 還可以模擬「長壓螢幕」的行為。但之所以選擇 shell input,是因為 monkeyrunner 太常丟出 exception 了,雖然這可以藉由良好的封裝來重複嘗試執行,但設計上畢竟較繁複,執行測試時也會花費更多時間在不必要的 try...exception 上;另一個理由則是本喵被分配的工作剛好 shell input 便足夠勝任了,所以除非有必要,否則本喵是傾向使用簡單的方式來達成目的。