2013-11-27 65 views
2

這裏是這種情況,我是新的餡餅在Android中,我正在運行一個自動化測試,使用calabash-android每5分鐘從安裝在android上的應用程序發送一封電子郵件,場景我可以成功打開電子郵件應用程序,但新電子郵件按鈕標有信封圖像。葫蘆娃-Android新郵件按鈕

現在我該如何知道該按鈕的標識符,以告訴calabash-android按下該按鈕?

我試圖仿真器,每次我按新的電子郵件按鈕時運行調試我收到這在調試:

11-27 18:36:59.092:I/ActivityManager(1177): START u0 {cmp = com.android.email/com.android.mail.compose.ComposeActivity(has extras)} from pid 5668

任何人都知道如何獲得該按鈕的標識符?

回答

2

UI上的每個元素都有查詢的方法。您可能不需要該id,因爲有時可以使用該元素的其他特徵來查詢它。

通常,這裏是我如何解決這些問題。舉例來說,我想查詢菜單上顯示的元素:

1-啓動葫蘆控制檯。您可以按照以下說明(從葫蘆的wiki)這樣做

krukow:~/tmp/android$ calabash-android console login.apk 
irb(main):001:0> start_test_server_in_background 
=> nil 
#You can now query the UI and see the description 

2-顯示,我要查詢的UI(在這種情況下,我點擊菜單按鈕)。然後我輸入控制檯:

query("*") 

這將最終顯示屏幕上的所有視圖,包括一些甚至不可見的視圖。您只需查找要查詢的視圖的某些特徵即可。就我而言,我會注意到我想要的視圖標有特定的文本。

query(" * marked:'More'") 

最終,你可以從視圖內的文本到其ID,到它的位置。由於query返回一個數組,因此最糟糕的情況是,您可能會使用數組中的索引來獲取元素。

如果您在編寫查詢時需要幫助,請嘗試使用query("*")命令併發布結果。

+0

非常感謝您的回覆,我有一個解決方法來使用按鈕的尺寸。但我會嘗試你的解決方案。 – user3042699