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

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