Monkeyrunner 有提供一個睡眠的指令 MonkeyRunner.sleep (float seconds),它並不是命令 Android 裝置進入睡眠狀態,而是命令腳本暫停執行。
參數:
seconds | 單位是秒,表示睡眠的時間。和 MonkeyRunner.waitForConnection() 的 timeout 參數一樣,毫秒等級以小數表示,如 3.5 秒。 |
---|
它的使用情境可以如下:
- 目前裝置沒有適合操控的事項比如有個測項要求等待某個對話方塊出現後再點擊它的 Yes 按鈕,這時咱們能做的不外乎是監控裝置畫面是否如預期,若是,便點擊按鈕;否則就繼續偵測。但若咱們知道這個對話方塊會在一段時間後才出現,那便不必時時偵測,而是暫停腳本一陣子後再回來監控。
當然,看官也可以選擇不讓腳本休息,持續偵測,但這將嚴重占用電腦的 CPU 使用率,拖慢電腦執行其他工作的效率,但若看官的電腦配備是電競或工作站等級的高級貨,那就儘管放手做吧~ - 特殊操控需求
比如要求長按某個實體按鍵或螢幕區域,這種操作一般都是先送一個壓下的命令,然後睡個幾秒,接著再送一個放開的命令。
- 避免 monkeyrunner 掛掉!!是的!看官們沒看錯!這是最最嚴重的問題!
或許是本喵貓品太差了!不是跑測項途中 monkeyrunner 掛點給你看,就是電腦直接熱到自行關機(本喵想要有電競等級的電腦阿~)!Monkeyrunner 提供的 methods 有些是不能快速連續送給 Android 裝置的(之後的文章會對本喵用過的 methods 需要注意的部分做詳細的介紹),所以一定要讓腳本在兩個快速連續執行的命令間小睡片刻,但其實這也不是絕對能就此高枕無憂,只是讓 monkeyrunner 死掉的機會變小而已。
推測其死掉的原因或許是執行腳本的電腦不夠力(因為別人似乎沒像本喵死的那麼頻繁),或是 Android 裝置與電腦的溝通不良(如品質不良的連接線),甚或單純是 monkeyrunner 的限制或 bug,可能原因很多,總之沒事多睡覺,多睡覺沒事!
沒有留言:
張貼留言