




全文預覽已結束
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
如何使用monkeyrunner與view進行交互上一篇/下一篇2013-07-01 15:22:14 / 個人分類:Monkeyrunner查看( 270 )/評論( 0 )/評分(0/0)android官方里的monkeyrunner只介紹了一些有限的ui測試方法. 比如只能指定坐標點模擬操作行為,測試結果對比只能通過截圖進行簡單對比結果. 當然我們可以聰明的來實現(xiàn)猜測到view視圖的坐標點,那么我們就可以像robotium一樣, 在monkeyrunner腳本中,對控件級的view視圖進行交互操作.如何實現(xiàn)捕捉到當前activity展現(xiàn)的所有的控件信息呢?monkeyrunner.jar 里目前有EasyMonkeyDevice.class 和By.class ,提供了一些新的api, 很大的滿足了一些高級需求有幾個blog文章對EasyMonkeyDevice類的api進行了一些示例,非常淺顯易懂yan1391的博客Android 測試之初試 Monkeyrunner。 國外的diego也寫了一系列關于monkeyrunner 的文章,并自己寫了一些viewclient apis可以下載到,非常不錯請大家參考,但是diego 把博客寫道了blogspot上,哈,所以大陸的朋友們就郁悶了只能翻墻看了其實以上所有文章主要通過使用了By , EasyMonkeyDevice , monkeydevice 這個類來實現(xiàn)與view object的交互那我們就對這個類進行簡單的剖析一下訪問這里可以看到EasyMonkeyDevice和By的源碼(在線瀏覽)1. By.class可以根據(jù)id獲得viewobject 例如我們有一個text view 的id是 id/account那么我們就可以通過如下獲得該view object.account = By.id(id/account)2. EasyMonkeyDevice.class獲得view object后,可以用EasyMonkeyDevice類進行一些操作getText() , touch(), type(). 分別為獲得該view object 的文本值,進行觸摸屏操作(其會獲取view object的坐標值,并進行操作). type() 則會先touch, 然后輸入字符3. monkeyDevice在線瀏覽源碼# 通過MonkeyDevice獲取HierarchyViewer對象實例hierarchy_viewer = device.getHierarchyViewer()#通過HierarchyViewer獲取ViewNode實例(一個viewnode實例代表一個控件)view_node = hierarchy_viewer.findView(By.id(id/emptyText)#獲取控件內的文本text = view_dProperties.get(mText).toString()if text.find(have any) 0:print not find have any!else:print find have any!print text總結:如此這般,我們用monkeyrunner 也可以寫出和robotium一樣的腳本,可以對view object 進行操作而且可以和坐標點值的方法進行融合可以由很大的突破另發(fā)現(xiàn)了一些問題,目前懷疑是android monkeyrunner.jar 的bug. 問題是EasyMonkeyDevice的touch()函數(shù),不能對應用程序彈出的對話框正確的定位坐標值當一個應用程序彈一個對話框時(確認還是 取消之類的對話框),當根據(jù)id touch確定和取消時,定位的坐標點錯誤,導致無法實現(xiàn)想要的功能還未具體分析時什么時候對話框會產(chǎn)生能該問題為什么說可能是bug, 是因為用tools里的HierarchyViewer 進行察看時,發(fā)現(xiàn)該對話框的實際坐標顯示位置有問題但渲染到手機屏幕確是正常的這導致,通過hierachy獲得的坐標值有問題,點擊操作無法 觸發(fā)對應的button view.MonkeyrunnerAPI幫助文檔(2013-04-11 17:01:05)轉載標簽:it分類:MonkeyrunnerMonkeyrunnerAPI幫助文檔文檔下載地址/s/xcHlw/1365674074內容為MonkeyRunner幫助1、com.android.monkeyrunner.MonkeyRunner.alert當前腳本的運行過程中顯示警告對話框。對話框是模態(tài),因此腳本停止,直到用戶關閉對話框。參數(shù):消息-消息顯示在對話框。標題-對話框的標題。默認值是“提醒”。okTitle-使用對話框中的按鈕的文本。默認值是“OK”。返回:返回任何內容。2、com.android.monkeyrunner.MonkeyDevice.broadcastIntent發(fā)送一個廣播設備的意圖。參數(shù):URI-意圖的URI。行動-該行動的意圖。數(shù)據(jù)-數(shù)據(jù)的URI意圖的mimetype-mime類型的意圖。類別-迭代的意圖類別名稱。演員-一個額外的字典添加到意圖。這些額外的類型推斷的值的Python類型。組件-組件的意圖。標志-一個迭代的標志為Intent.All參數(shù)是可選的。每個參數(shù)的默認值是null。(見android.content.Context.sendBroadcast(意向)返回:返回任何內容。3、com.android.monkeyrunner.MonkeyRunner.choice顯示一個選擇對話框,允許用戶選擇從一個單一的項目,一個項目清單。參數(shù):消息-提示信息顯示在對話框。選擇-一個可迭代的Python類型的選擇列表顯示標題-對話框的標題。默認的是“輸入”返回:所選項目的抵消了Iterable基于0的數(shù)字。4、com.android.monkeyrunner.MonkeyImage.convertToBytes轉換成一個特定格式的MonkeyImage作為一個字符串返回結果。使用此獲得rawpixels在一個特定的格式。字符串輸出是有更好的表現(xiàn)。參數(shù):格式-目標格式(例如,“PNG便攜式網(wǎng)絡圖形格式)。默認為PNG。返回:一個String生成的圖像。5、com.android.monkeyrunner.MonkeyDevice.drag模擬設備屏幕上拖動(觸摸,持有和移動)。參數(shù):開始-拖動起點(以像素為單位元組(X,Y)結束-阻力終點(以像素為單位元組(X,Y)時間-在幾秒鐘內拖時間(默認為1.0秒)步驟-插值點時要采取的步驟。(默認是10)返回:返回任何內容。6、com.android.monkeyrunner.MonkeyView.getAccessibilityIds返回當前視圖的輔助IDS返回:視圖的輔助IDS作為一個整數(shù)列表7、com.android.monkeyrunner.MonkeyRect.getCenter返回一個兩個項目清單,其中包含矩形的中心的x和y的值返回:該中心作為一個整數(shù)的兩個項目清單坐標8、com.android.monkeyrunner.MonkeyView.getChecked獲取視圖的選中狀態(tài)返回:一個布爾值,該項目是否被選中或不9、com.android.monkeyrunner.MonkeyView.getChildren返回當前視圖的孩子們返回:認為兒童MonkeyView對象名單10、com.android.monkeyrunner.MonkeyView.getEnabled返回啟用狀態(tài)的看法。返回:作為一個布爾啟用狀態(tài)11、com.android.monkeyrunner.MonkeyView.getFocused視圖返回集中狀態(tài)返回:集中的狀態(tài)作為一個布爾12、com.android.monkeyrunner.MonkeyRect.getHeight返回矩形的高度。返回:作為一個整數(shù)的矩形的高度13、com.android.monkeyrunner.MonkeyDevice.getHierarchyViewer獲取設備HierarchyViewer對象。返回一個HierarchyViewer對象14、com.android.monkeyrunner.MonkeyView.getLocation返回視圖的位置在一個MonkeyRect形式返回:視圖作為MonkeyRect對象的位置15、com.android.monkeyrunner.MonkeyView.getParent返回當前視圖的父返回:視圖的父作為MonkeyView對象16、com.android.monkeyrunner.MonkeyDevice.getProperty由于設備上的變量的名稱,返回變量的值參數(shù):關鍵-變量的名稱??捎玫拿Q在/guide/topics/testing/monkeyrunner.html上市。返回:該變量的值17、com.android.monkeyrunner.MonkeyDevice.getPropertyList檢索,可以查詢的屬性返回:返回任何內容。18、com.android.monkeyrunner.MonkeyImage.getRawPixel一個單一的ARGB(alpha,紅色,綠色,藍色)像素位置的X,Y。參數(shù)X和Y是0,表示在像素尺寸。X增加的權利,對底部的Y增加。此方法返回一個tuple。參數(shù):X-x偏移的像素Y-像素的y偏移量返回的元組(一R,G,B)的像素。tuple中的每個項目都有0-255范圍內。19、com.android.monkeyrunner.MonkeyImage.getRawPixelInt一個單一的ARGB(alpha,紅色,綠色,藍色)像素位置的X,Y。參數(shù)X和Y是0,表示在像素尺寸。X增加的權利,對底部的Y增加。此方法返回一個整數(shù)。參數(shù):X-x偏移的像素Y-像素的y偏移量返回:X,Y的無符號整數(shù)像素。高階8位是A,followedby8位為R,G和88為B20、com.android.monkeyrunner.MonkeyDevice.getRootView獲取當前根視圖返回:根視圖對象21、com.android.monkeyrunner.MonkeyView.getSelected返回視圖的選中狀態(tài)返回:作為一個布爾選中狀態(tài)22、com.android.monkeyrunner.MonkeyImage.getSubImage復制圖像的矩形區(qū)域。參數(shù):矩形-一個元組(X,Y,W,H),說明該地區(qū)復制。x和y指定上左邊角落的區(qū)域。w是該地區(qū)的像素寬度,h是它的高度。返回:MonkeyImage對象代表復制的區(qū)域。23、com.android.monkeyrunner.MonkeyDevice.getSystemProperty代名詞的getProperty()參數(shù):關鍵-系統(tǒng)變量的名稱。返回:該變量的值。24、com.android.monkeyrunner.MonkeyView.getText返回視圖所載文本返回:在視圖中的文本25、com.android.monkeyrunner.MonkeyDevic
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024北京八十中高二3月月考語文試題及答案
- 2025年公共交通管理與運營考試試卷與答案
- 簡單使用培訓
- 2025年中醫(yī)藥學專業(yè)課程知識測試題及答案
- 教育培訓機構
- 2025年劇情創(chuàng)作專業(yè)考試試題及答案提供
- Unit 6 Earth First Presenting ideas writing (教學課件)外研版高中英語必修二
- 2025年法考應試指南試題及答案
- 2025年大數(shù)據(jù)技術與應用考試卷及答案
- 2025年電影編劇專業(yè)研究生入學考試試題及答案
- 2025年陜西省中考數(shù)學真題試卷及答案解析
- 呼吸機的維護與保養(yǎng)標準流程
- 2025年北方華創(chuàng)招聘筆試參考題庫含答案解析
- 期末綜合試題 2024-2025學年下期初中英語人教版七年級下冊(新教材)
- 2025年全國新高考I卷高考全國一卷真題英語試卷(真題+答案)
- 高中生物學業(yè)水平合格性考試:人教版必修1+必修2必背考點
- 安全生產(chǎn)應急演練方案(合集)
- 2025江蘇揚州寶應縣“鄉(xiāng)村振興青年人才”招聘67人筆試模擬試題含答案詳解
- 2025年甘肅高考真題化學試題(解析版)
- 中國政法大學《中國政治制度史》2023-2024學年第二學期期末試卷
- 超高玻璃吊裝方案(3篇)
評論
0/150
提交評論