定位元素的兩種方式
1.使用Uiaotomator(已安裝sdk)
2.使用Weditor(已下載weditor)
使用Uiaotomator
位置
在android sdk 的tools文件夾下C:\Users\Administrator\AppData\Local\Android\android-sdk\tools\uiautomatorviewer.bat(找要自己的\android-sdk\tools\目錄下的uiautomatorviewer.bat文件)
打開
雙擊既可以打開,會(huì)打開兩個(gè)窗口谍憔,
一個(gè)是cmd匪蝙,另一個(gè)是 UI Automator View
捕捉手機(jī)屏幕
首先需要PC和android通過USB連接,adb devices 命令可以查看到設(shè)備信息韵卤。
接下來在UI Automator View 中骗污,點(diǎn)擊左上角的第二個(gè)圖標(biāo),捕捉手機(jī)屏幕(僅捕捉當(dāng)前手機(jī)停留的頁面沈条;若切換頁面需重新點(diǎn)擊才會(huì)刷新)
元素定位
在左側(cè)點(diǎn)擊元素,在右下角查看元素的屬性信息诅炉,右上角查看布局信息
主要屬性:
index蜡歹、text(name)、resource-id(id)涕烧、class月而、package、content-desc(name)
使用Weditor
Android SDK內(nèi)置工具uiautomatorviewer.bat议纯,在運(yùn)行uiautomator2的時(shí)候父款,uiautomatorviewer.bat運(yùn)行不起來,兩者之間沖突太嚴(yán)重瞻凤。故而推薦使用Weditor
安裝方法
命令行運(yùn)行:pip install --pre weditor
使用方法
首先命令行運(yùn)行python -m weditor憨攒,之后瀏覽器會(huì)自動(dòng)打開一個(gè)網(wǎng)頁(若頁面打開異常或顯示異常阀参,可拷貝連接切換瀏覽器試試)
重點(diǎn)說下這個(gè)部分
先忽略iOS和Neco這兩個(gè)肝集,直接選擇Android。輸入框中可以寫設(shè)備號(hào)(使用adb devices可獲取到)或者設(shè)備的Serial(序列號(hào))蛛壳;跟上面提到的配置手機(jī)設(shè)備參數(shù)用法一致杏瞻。之后點(diǎn)擊Connect所刀,如果一切正常就會(huì)出現(xiàn)一個(gè)綠色的葉子。
頁面刷新時(shí)捞挥,點(diǎn)擊藍(lán)色的Reload按鈕重新刷新浮创。
連接上之后點(diǎn)擊想要定位的元素會(huì)自動(dòng)生成定位到他的方法,可以將方法直接復(fù)制出來使用
定位方式
ResourceId定位:?
d(resourceId=" com.netease.cloudmusic:id/a7k ").click()
Text定位
?d(text="推薦").click()
Description定位?
d(description="播放暫停").click()
ClassName定位?
d(className=" android.widget.ImageView ").click()
對(duì)于多個(gè)相同的元素定位:
如果頁面存在多個(gè)相同的元素可以使用instance進(jìn)行選擇砌函;
三個(gè)相同的元素他們的resourceid和ClassName選擇一個(gè)即可然后在使用instance:
第一個(gè):
d(resourceId="com.netease.cloudmusic:id/a6w", className="android.widget.ImageView").click()
第二個(gè):
d(resourceId="com.netease.cloudmusic:id/a6w", className="android.widget.ImageView", instance=1).click()
第三個(gè):
d(resourceId="com.netease.cloudmusic:id/a6w", className="android.widget.ImageView",?instance=2).click()
備注:可以使用weditor直接生成定位方法斩披;