簡介
有些小伙伴或者是童鞋可能會好奇會問上一篇中的那個monkey腳本里的坐標點是如何獲取的,不是自己隨便蒙的猜的,或者是自己用目光或者是尺子量出來的吧,答案當然是:NO。獲取控件坐標點的方式這里宏哥給小伙伴們分享和講解三種方法(也就是三個臭皮匠),宏哥個人喜歡第二種,也推薦小伙伴們和童鞋們使用第二種,當然了蘿卜青菜各有所愛,這里不做強制要求。小平同志不是說過:不管白貓還是黑貓抓住耗子就是好貓。適合自己才是最好的,小伙伴們可以根據自己的喜好自行選擇。
獲取控件的坐標點方法
第一種方法(MonkeyRecorder獲取坐標)
??? 下面就MonkeyRecorder獲取坐標的方式,進行演示。MonkeyRecorder是一個比較好用的獲取坐標的工具,它是用來獲取真機或模擬器上坐標的工具,當我們點擊真機或模擬器上的空間時,就能顯示真機或模擬器上的點擊點的坐標。
(1)MonkeyRecorder的啟動
1.首先安卓手機連接上電腦,并保證以下兩個條件成立:
a.終端USB調成開發者模式
b.電腦安裝手機驅動
2.手機連接成功后,打開cmd窗口,輸入adb devices查看已連接真機或模擬器設備的名稱,我們這里仍以夜神模擬器為代表。如圖:
?
3.在cmd窗口,輸入monkeyrunner后,啟動Monkeyrunner。做以下操作:導入MonkeyRecorder包、連接模擬器設備、以MonkeyRecorder方式啟動模擬器,并依次輸入
如下命令:
1 from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice 2 3 from com.android.monkeyrunner.recorder import MonkeyRecorder as recorder 4 5 device= MonkeyRunner.waitForConnection() 6 7 recorder.start(device)
?
4.到此,MonkeyRecorder正式啟動。截圖如下。
?
(2)MonkeyRecorder的使用
1.我們這里只是使用MonkeyRecorder來記錄坐標,獲取坐標的方式很簡單。比如qq的登錄界面,點擊“登錄”按鈕,右側就會顯示該按鈕的坐標;同樣,點擊賬號輸入框或密碼輸入框,右側同樣會顯示坐標。這個坐標就是我們需要獲得的坐標。
?
2.同時, MonkeyRecorder中的界面是同模擬器頁面保持一致的,在 MonkeyRecorder中觸發任一操作,模擬器上會有相應的觸發。如果兩者沒有保持一致,則點擊 MonkeyRecorder右上角的 Refresh Display即可刷新頁面。
?
第二種方法(Uiautomatorviewer)
網上很多推薦獲取坐標點的方式,是使用 android-sdk/tools 目錄下,提供的 uiautomatorviewer 工具來獲取。但是這種方式非常的繁瑣,而實際上,我們又不需要如此精確的坐標點,畢竟控件那么大,只要點擊的坐標落在控件的位置上,即可。
Uiautomatorviewer是Android sdk自帶的工具,位置在sdk/tools下。
工具打開方法:
1.sdk/tools下,找到uiautomatorviewer,雙擊打開
2.在cmd命令行,直接輸入uiautomatorviewer,打開該工具
打開該工具后,我們就可以開始使用了。
運行環境:Windows
使用方法:
1.連接模擬器或真機(我們這里使用模擬器)
2.打開模擬器中指定的app,在uiautomatorviewer中截圖指定頁面
3.截圖成功后,頁面顯示如下:
需要注意的是,你的手機設備或模擬器的api要在16以上,也就是android版本得是4.1以上,因為這個工具是google在4.1以后推出來的,只適用于4.1以后的版本
4.結果分析
從上圖中,可以獲取到對應控件的ID及控件左上角、右下角的坐標。
1)對于控件坐標而言,這里很簡單,我們一般取中點坐標,即:
中點坐標=((左上角橫坐標+右下角橫坐標)/2,(左上角縱坐標+右下角縱坐標)/2)
如,上圖中,中點坐標即((30+1009)/2,(268+314)/2)=(519.5,291)
注:坐標一般取整。
由此,我們可以得到所需控件的坐標,在腳本中,直接touch該點坐標即可。
2)對于控件ID而言,即上圖中的紅色框中部分,同樣在腳本中,直接touch該ID即可。
另外,利用uiautomatorviewer還可以獲取父級與子級控件之間的關系,獲取到的關系同HierarchyViewer保持一致。
uiautomatorviewer就介紹到這里。?
第三種方法(Pointer location獲取坐標)
那么我推薦另外一種更簡單的方式,來獲取當前你看見的,在待測試設備上的控件的坐標點的定位方式。那就是利用 Android 設備的開發者選項。
這里以夜神模擬器為例:
1.點擊設置
?
2.點擊開發者選項
?
3.在指針位置 ,將這個屬性開啟之后,當手指在屏幕上滑動的時候,就可以在頂部看到當前觸摸點的 X、Y 軸的坐標,這就是我們需要的。
?
注意:開發者選項不是默認可見的,你需要自行開啟開發者模式,之后再進行此操作。(這不是可以上網自已查一下,如果是夜神模擬器,可以參考宏哥的小結部分開啟開發者選項)
小結
(1)安卓系統開啟開發者模式方法很多,我們模擬器是6.3.0.0版本這里只講適合夜神模擬器的方法,
??接下來進入圖文教程:
??1.點擊設置
?
??2.點擊關于平板電腦
?
??3.點擊7下版本號(手殘請點擊20下),點擊箭頭指向處的版本號(最底下的版本號),而不是上面的Android版本號
?
??4.返回設置菜單
?
?
?
??這里補充一點,如果感覺開發者這個選項礙眼,可以選擇關閉,關閉方法:
??設置--應用--全部--找到設置軟件,點擊進入--清除數據
??這樣開發者模式又隱藏了~~
?
2、好了,今天關于控件坐標點獲取就到這里了!哈哈!最后祝大家都能熟練掌握!!!
您的肯定就是我進步的動力。
如果你感覺還不錯,就請鼓勵一下吧!記得點波
?推薦
?哦!!!(點擊右邊的小球即可)
個人公眾號
微信群
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
