通常檢查裝置是否在預期的情境時並不會去比較整個螢幕畫面,因為咱們只在意畫面上最關鍵的部分——可以代表預期影格的最有力的特徵,這主要是為避免誤判,另一方面也是為了加速畫面的比較。雖然 MonkeyImage.sameAs() 無法指定比較的範圍,但咱們可以從 MonkeyImage 物件提取出適當的畫面後再以 MonkeyImage.sameAs() 進行比較,這便是 MonkeyImage.getSubImage (tuple rect) 的作用。
2018年10月18日 星期四
2018年10月14日 星期日
09-大家來找碴 (MonkeyImage.sameAs)
MonkeyImage.sameAs (MonkeyImage otherImage, float percent) 是 monkeyrunner 所提供用來比較兩幅畫面是否相同的唯一方法,他的要求是畫面的維度必須一致,否則即認定比對失敗。
2018年10月10日 星期三
08-為你擷取全世界 (MonkeyDevice.takeSnapshot)
咱們已經學會三種操控手持式裝置的方法:press、touch 和 drag,有了這些動作,已經可以設計些簡單的腳本來操控 app,但除非要執行的動作不需任何判斷(比如狂點螢幕上某些固定地方),否則讓腳本可以根據目前資訊來判斷該做什麼事才是較常見的需求。那什麼是目前資訊呢?以使用者的角度來切入,不外乎就是螢幕目前的畫面,當然,螢幕畫面所能表達的訊息有時也可以藉由向裝置發送命令去獲得,但除非 app 開發商有留下此種資訊能讓外界讀取,否則依然只能藉由畫面本身來判斷。
2018年10月8日 星期一
07-迷霧中的MonkeyDevice.drag
對於手機、平板等手持裝置來說,「滑動」這個動作是必不可少的,因此可以模擬滑動效果的 MonkeyDevice.drag (tuple start, tuple end, float duration, integer steps) 是非常重要的功能,但他的參數與實際表現的落差有時卻讓人迷惑。
2018年10月4日 星期四
06-輕撫,是對螢幕最好的尊重 (MonkeyDevice.touch)
要對觸控螢幕下達動作,咱們可以使用 MonkeyDevice.touch (integer x, integer y, string type),他的用法和他的兄弟 MonkeyDevice.press() 非常相似。
2018年10月3日 星期三
05-按下那個按鍵!猴子!(MonkeyDevice.press)
終於,咱們可以開始學習對 Android 裝置下達第一道命令了~按下一個實體按鍵: MonkeyDevice.press (string name, integer type)
所謂的實體按鍵就是諸如電源鍵或聲音鍵這種可以實際觸摸到的硬體,而不是由電腦繪製的 icon 類型的按鈕。以前的 Android 手機上還有 Home key 這種按鍵,但現在也常是以 icon 的形式被表現於手機上了。但即使如此,通常還是可以利用 MonkeyDevice.press() 送出一個模擬 Home key 被按下的訊息給沒有 Home key 的手機,讓其表現按下 Home key 時應有的行為。
所謂的實體按鍵就是諸如電源鍵或聲音鍵這種可以實際觸摸到的硬體,而不是由電腦繪製的 icon 類型的按鈕。以前的 Android 手機上還有 Home key 這種按鍵,但現在也常是以 icon 的形式被表現於手機上了。但即使如此,通常還是可以利用 MonkeyDevice.press() 送出一個模擬 Home key 被按下的訊息給沒有 Home key 的手機,讓其表現按下 Home key 時應有的行為。
2018年10月1日 星期一
04-寶寶乖~寶寶睡 (MonkeyRunner.sleep)
Monkeyrunner 有提供一個睡眠的指令 MonkeyRunner.sleep (float seconds),它並不是命令 Android 裝置進入睡眠狀態,而是命令腳本暫停執行。
訂閱:
文章 (Atom)