一、獲取APP的package(包名)和activity
在使用android自動(dòng)化測(cè)試工具monkeyrunner和appium中啟動(dòng)應(yīng)用時(shí),需要填寫(xiě)被測(cè)程序的包名和啟動(dòng)的Activity,以下有幾種查看應(yīng)用包名package和入口activity名稱(chēng)的方法:
1.使用aapt//aapt是sdk自帶的一個(gè)工具,在sdk\builds-tools\目錄下
>以手機(jī)淘寶APK為例,CMD切換到aapt.exe目錄執(zhí)行:aapt dump badging D:\work\appium\shoujitaobao_174.apk (放置手機(jī)淘寶APK的位置)
>運(yùn)行后的結(jié)果中以下兩行分別是應(yīng)用包名package和入口activity名稱(chēng)
package: name=’com.taobao.taobao’

launchable-activity: name=’com.taobao.tao.welcome.Welcome’

注:在android sdk目錄搜索可以找到aapt.exe,如果沒(méi)有可以下載apktool。
2.各種權(quán)限都開(kāi)啟,使用sdk/tools目錄下hierarchyviewer.bat 工具可以獲得(可以查看對(duì)應(yīng)的app的activity)

3.通過(guò)在CMD窗口中執(zhí)行adb logcat -v time -s ActivityManager查看對(duì)應(yīng)的字段
在CMD窗口中執(zhí)行adb logcat -v time -s ActivityManager,然后在模擬器或者手機(jī)中點(diǎn)擊應(yīng)用進(jìn)入,如點(diǎn)擊系統(tǒng)設(shè)置,進(jìn)入后會(huì)有相應(yīng)的日志信息打印出來(lái),在信息中查找 cmp=com.android.settings/.Settings
4.通過(guò)在CMD窗口中執(zhí)行adb shell dumpsys window w |findstr \/ |findstr name=, 然后點(diǎn)擊需要運(yùn)行的app,即可查看到相應(yīng)的package和activity
二、SDK-tools元素定位工具
1.adroid-sdk的安裝目錄tools下有1個(gè)自帶的工具uiautomatorviewer,打開(kāi)后,如下所示:


2.首先在模擬器或者真機(jī)上打開(kāi)APP軟件,進(jìn)入主界面,然后點(diǎn)擊uiautomatorviewer軟件左上角的手機(jī)圖標(biāo),如下圖

得到的界面如下,選中元素即可看到元素的layout信息,比如下方的定位框即可以通過(guò)ID來(lái)定位,也可以通過(guò)Xpath來(lái)定位

三、appium自帶的Inspector元素定位工具
Appium Inspector 是 appium 自帶的一個(gè)元素定位工具。appium Inspector 的 winddows 版本不太好用,但是 Mac 上的功能還是很強(qiáng)大的,一般mac 上用的比較多。
1.設(shè)置appium的Android Settings,點(diǎn)擊左上角的安卓圖標(biāo)進(jìn)入安卓設(shè)置,注意設(shè)置時(shí)不要開(kāi)啟appium,也就是不要點(diǎn)擊appium右上角的“三角形”按鍵

說(shuō)明:
a)Application是對(duì)應(yīng)的應(yīng)用,用Path的話(huà)不管你有沒(méi)有這個(gè)應(yīng)用,都是重新安裝一遍,所以這里直接用了應(yīng)用的包名和activity;
b)Launch AVD是將要定位的機(jī)器,這里選的是模擬器;
2.開(kāi)啟appium,點(diǎn)擊右側(cè)的launch(三角形圖標(biāo)按鍵)開(kāi)啟,然后點(diǎn)擊appium上的inspector來(lái)進(jìn)行定位,使用inspector上的refresh可以刷新成當(dāng)前模擬器的頁(yè)面(如果當(dāng)前沒(méi)有開(kāi)開(kāi)任何的安卓模擬器,點(diǎn)擊refresh時(shí),他會(huì)根據(jù)要Android settings中的launch device打開(kāi)一個(gè)模擬器)


3.可能出現(xiàn)的異常
在使用Ispector過(guò)程中,你會(huì)發(fā)現(xiàn)經(jīng)常會(huì)報(bào)以下這個(gè)錯(cuò)誤,每次啟動(dòng)都會(huì)給你手機(jī)上重新安裝一次應(yīng)用,并且不能用鼠標(biāo)指定某個(gè)元素,沒(méi)有uiautomatorviewer使用方便。這里建議大家使用uiautomatorviewer的定位方式

四、元素定位方法
1.格式:find_element_by_定位方式(value)
通過(guò)id定位:driver.find_element_by_id("xxx")
通過(guò)class_name定位:driver.find_element_by_class_name("android.widget.RelativeLayout")
通過(guò)xpath定位:driver.find_element_by_xpath("http://android.widget.LinearLayout[1]/android.widget.XXX")----(http://www.cnblogs.com/xxyBlogs/p/4244073.html)
通過(guò)name定位:driver.find_element_by_name()
通過(guò)text定位:driver.find_elements_by_android_uiautomator("new UiSelector().text(\"+關(guān)注\")")
其他定位方法見(jiàn)請(qǐng)參考【每天1990】的博客,感謝分享
歡迎關(guān)注公眾號(hào)
