Appuim菜鳥級入手-Android自動化
一斑芜、Appium環(huán)境搭建(mac系統(tǒng))
1.安裝Appium
通過下載dmg安裝:
官方下載:http://appium.io/
國內(nèi)下載:http://pan.baidu.com/s/1jGvAISu(推薦)
2.下載Android
SDK阱扬,鏈接http://down.tech.sina.com.cn/page/45703.html
3.安裝Xcode丁频,下載地址:https://developer.apple.com/downloads/--iOS
4.使用GUI工具安裝Appium(AppiumUI程序)刻肄,下載地址:http://appium.io/
5.命令行安裝
#安裝nodejs
brew?install?node
#安裝appium
npm?install?-g appium此命令安裝比較慢杨赤,注意與taobao鏡像安裝后的命令不同
#安裝python client
pip3?install?Appium-Python-Client
注:
如果遇到網(wǎng)絡(luò)問題導(dǎo)致npm安裝appium失敗的情況年堆,可以嘗試使用淘寶的鏡像
安裝Appium或者用
$ npm install cnpm -g --registry=https://registry.npm.taobao.org
$ npm view appium versions #查看appium所有的版本號
使用淘寶鏡像后避诽,安裝命令對應(yīng)的變成:
cnpm?install?-g appium
注:
測試IOS10系統(tǒng)請嚴(yán)格按照XCUITest-Driver文檔配置。
6.PS.診斷(保留河爹,我用的是在appium中匠璧,點(diǎn)擊Doctor方法來查看)
#安裝appium診斷工具
npm?install?-g appium-doctor
使用appium診斷:
診斷通過后,如下圖所示:
7.在Appium中點(diǎn)擊Doctor圖標(biāo)咸这,出現(xiàn)如下提示
如圖上圖夷恍,ANDROID_HOME,JAVA_HOME未設(shè)置
設(shè)置環(huán)境變量
lishandeMacBook-Pro:~ lishan$ vim ~/.bash_profile
1編輯模式
lishandeMacBook-Pro:~ lishan$ source
~/.bash_profile ? ?2重新加載配置文件
lishandeMacBook-Pro:~ lishan$ cat ~/.bash_profile
3查看配置文件
例子中sdk目錄為:/Users/zhaoye/work/android/sdk媳维,jdk目錄為:/Library/Java/JavaVirtualMachines/jdk1.7.0_76.jdk/Contents/Home
在第1步酿雪,按i進(jìn)入編輯模式插入下列內(nèi)容
我的SDK目錄為:/Users/lishan/Library/Android/sdk(查看方法:在AndroidStudio-Preference-System Setting-Android SDK查看sdk目錄)
#Android home
export ANDROID_HOME=/Users/lishan/Library/Android/sdk
#Android path
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/tools
#Java home
export
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home
#Java bin path
export PATH=$PATH:$JAVA_HOME/bin
按ESC退出編輯模式
輸入:wq保存退出
8.按步驟123執(zhí)行完后,再次點(diǎn)擊Appium的Doctor按鈕侄刽,出現(xiàn)如下界面指黎,證明成功
9.在手機(jī)端安裝美團(tuán)app,安裝后州丹,手機(jī)連接電腦醋安。在終端輸入adb命令
adb在配置環(huán)境變量的時(shí)候已經(jīng)配置了,可以去目錄下查看是否有adb
刷新配置文件source ~/.bash_profile
adb devices顯示當(dāng)前運(yùn)行的全部模擬器
adb shell進(jìn)入adb的shell模式
pm list package查看已安裝的包当叭,顯示所有已經(jīng)安裝的包名
可以grep一下,pm list package |grep
"meituan"
adb logcat -s ActivityManager -s是過濾(silent)ActivityManager是將此加入到白名單盖灸,查看日志前提是本地得安裝app
IOWE代表日志類型蚁鳖,后面是系統(tǒng)日志關(guān)鍵字,(1074)是pid進(jìn)程號赁炎,然后是包名醉箕,后面是首頁啟動項(xiàng)
10.也可以直接問RD
再次點(diǎn)擊安卓小人標(biāo)識钾腺,上面的窗口隱藏,點(diǎn)擊launch再點(diǎn)擊inspector
iOS用Appium Inspector比較好讥裤。Android用uiautomatorviewer比較好
11.在終端輸入uiautomatorviewer放棒,直接啟動界面
注意:有時(shí),點(diǎn)擊小人安卓報(bào)錯己英,需要多試幾次间螟。再不行就在終端重新啟動uiautomatorviewer
此時(shí)在手機(jī)上點(diǎn)擊進(jìn)入美團(tuán)某個頁面,再次點(diǎn)擊左上角紅框的標(biāo)識损肛,模擬器里的頁面顯示與手機(jī)上一致厢破。點(diǎn)擊某個元素,查看右側(cè)治拿,顯示位置摩泪。獲取元素位置,寫入代碼里
12.下載安裝pycharm劫谅,寫入如下代碼
# -*- coding:utf-8 -*-
fromappiumimportwebdriver
hub ='http://localhost:4723/wd/hub'
caps = {}
caps['platformName'] ='android'
caps['udid'] ='2e9d9961'
caps['deviceName'] ='android_1'
# caps['automationName'] = 'XCUITest'
caps['newCommandTimeout'] =30000
# caps['bundleId'] = 'com.meituan.imeituan'
caps['appPackage'] ='com.sankuai.meituan'
caps['appActivity'] ='.activity.Welcome'
# caps['appActivity'] = '.city.BaseCityActivity'
# caps['app'] = '/Users/lilei/PycharmProjects/appiumtest/aimeituan-5658.apk'
wd = webdriver.Remote(hub, caps)
wd.find_element_by_android_uiautomator(u'new UiSelector().text("北京")').click()
代碼里udid獲取需要在終端輸入adb devices见坑,查看
啟動appium服務(wù),執(zhí)行程序捏检,才不會報(bào)錯
坑:再次運(yùn)行代碼荞驴,失敗
提示org.openqa.selenium.SessionNotCreatedException:
A new session could not be created. Details: Problem getting session data for
driver type IosDriver; does it implement 'get driverData'? (WARNING: The server
did not provide any stacktrace information)
或者Problem getting session
data for driver type AndroidDriver; does it implement 'get driverData
解決辦法:
命令行啟動,則添加--session-override:
appium -p 4723 --session-override