Appium+python自動(dòng)化之連接模擬器并啟動(dòng)淘寶APP(超詳解)
簡(jiǎn)介
這篇宏哥就帶著小伙伴們分享一下如何連接模擬器(電腦版的虛擬手機(jī)),然后再安裝一款A(yù)PP-淘寶為例。
一、appium+pycharm+連接夜神模擬器并啟動(dòng)淘寶APP(推薦)
1、首先打開pycharm并寫好代碼,這里以淘寶APK作為測(cè)試Demo,淘寶APK我是放在電腦桌面(或者放置同代碼同個(gè)目錄下)。如下圖所示

其中|:driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps) #這個(gè)地址是怎么來的呢?,見appium設(shè)置項(xiàng),如下圖所示

2、打開appium并點(diǎn)擊右上角三角符號(hào),如下圖所示

3、打開夜神模擬器,如下圖所示

4、打開CMD,進(jìn)入夜神模擬器的安裝路徑下:D:\software\nox\Nox\bin,運(yùn)行指令:nox_adb.exe connect 127.0.0.1:62001和指令adb devices查看設(shè)備名,如下圖所示

5、運(yùn)行pycharm代碼,并查看結(jié)果,如下圖所示(暫時(shí)不理會(huì)出錯(cuò)問題,后續(xù)會(huì)講解)但是在模擬器看到新增了兩個(gè)小機(jī)器人,就表示已經(jīng)成功了:

6、參考代碼
# coding=utf-8
# 1.先設(shè)置編碼,utf-8可支持中英文,如上,一般放在第一行
# 2.注釋:包括記錄創(chuàng)建時(shí)間,創(chuàng)建人,項(xiàng)目名稱。
'''
Created on 2019-6-17
@author: 北京-宏哥 QQ交流群:707699217
Project:學(xué)習(xí)和使用python代碼appium+pycharm+連接夜神模擬器
'''
# 3.導(dǎo)入模塊
from appium import webdriver
import time
desired_caps = {}
desired_caps['platformName'] = 'Android' #android的apk還是IOS的ipa
desired_caps['platformVersion'] = '4.4.2' #android系統(tǒng)的版本號(hào)
desired_caps['deviceName'] = '127.0.0.1:62001' #手機(jī)設(shè)備名稱,通過adb devices 查看
desired_caps['appPackage'] = 'com.taobao.taobao' #apk的包名
desired_caps['appActivity'] = 'com.taobao.tao.welcome.Welcome' #apk的launcherActivity
# desired_caps['unicodeKeyboard'] = True # 使用unicodeKeyboard的編碼方式來發(fā)送字符串
# desired_caps['resetKeyboard'] = True # # 將鍵盤給隱藏起來
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) ##啟動(dòng)服務(wù)器地址,后面跟的是手機(jī)信息
二、appium+pycharm+連接AVD模擬器(不推薦)
1、第一、二步和連接夜神模擬器一樣。
2、啟動(dòng)AVD模擬器(這個(gè)上一篇(傳送門)都給小伙伴們演示過了,不清楚的返回頭復(fù)習(xí)一下,即可。相當(dāng)簡(jiǎn)單的)

3、 我們?cè)谶M(jìn)行測(cè)試的時(shí)候,我們肯定需要查看設(shè)備連接是否成功,設(shè)備的信息是否能夠獲取。adb devices 就可以實(shí)現(xiàn),直接在命令行控制臺(tái)中輸入“ adb devices ”,我們就可以看見如圖連接成功:

4、修改代碼,將一些模擬器的信息修給了即可

5、未運(yùn)行代碼前的Google自帶的AVD模擬器

6、運(yùn)行代碼后的運(yùn)行結(jié)果
(1)AVD模擬器:

稍等一會(huì),淘寶APP自動(dòng)啟動(dòng)了:

同意協(xié)議,淘寶APP就可以在AVD模擬器上,啟動(dòng)起來進(jìn)入主頁(yè)

(2)代碼運(yùn)行結(jié)果:

(3)appium運(yùn)行結(jié)果:

(7)參考代碼:
# coding=utf-8
# 1.先設(shè)置編碼,utf-8可支持中英文,如上,一般放在第一行
# 2.注釋:包括記錄創(chuàng)建時(shí)間,創(chuàng)建人,項(xiàng)目名稱。
'''
Created on 2019-6-17
@author: 北京-宏哥 QQ交流群:707699217
Project:學(xué)習(xí)和使用python代碼appium+pycharm+連接夜神模擬器
'''
# 3.導(dǎo)入模塊
from appium import webdriver
import time
desired_caps = {}
desired_caps['platformName'] = 'Android' #android的apk還是IOS的ipa
desired_caps['platformVersion'] = '8.0' #android系統(tǒng)的版本號(hào)
desired_caps['deviceName'] = 'emulator-5554' #手機(jī)設(shè)備名稱,通過adb devices 查看
desired_caps['appPackage'] = 'com.taobao.taobao' #apk的包名
desired_caps['appActivity'] = 'com.taobao.tao.welcome.Welcome' #apk的launcherActivity
# desired_caps['unicodeKeyboard'] = True #使用unicodeKeyboard的編碼方式來發(fā)送字符串
# desired_caps['resetKeyboard'] = True #將鍵盤給隱藏起來
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps) #啟動(dòng)服務(wù)器地址,后面跟的是手機(jī)信息
好了,到此夜神模擬器和AVD模擬器啟動(dòng)淘寶APP,已經(jīng)全部演示完成,大功告成,降龍十八掌已全部打完,打完收回來。額。。。。。還差一掌才十七掌(亢龍有悔)
三、小結(jié)(亢龍有悔)
亢龍有悔,將前邊十七掌合起來總結(jié)一下:
1、介紹一下, 標(biāo)記的信息,如何填寫和查找 !
deviceName:這個(gè)是設(shè)備名稱,可以選擇模擬器設(shè)置的屬性中的IMEI填入,或者手機(jī)名稱
udid:這里填寫上邊讓你記住的東西,如果使用其他模擬器或者真機(jī)等連接,同樣的位置,記下就行
appPackage和appActivity,教大家一個(gè)相對(duì)簡(jiǎn)單的方法來獲取,當(dāng)然也可以采取反編譯(app壓縮成rar或者zip,然后打開看xml文件)的手段,總之,方法很多!
進(jìn)入sdk\build-tools\版本號(hào) 的目錄下(配置系統(tǒng)變量后就尅不用進(jìn)入了),cmd命令:
aapt dump badging C:\apps\xxxxx.apk (路徑\app包名,也就是安裝包在你電腦的位置)


看下,上邊標(biāo)記的就是我們要的兩個(gè)值!
至于下邊的 URL 是固定格式,不要研究為什么(千年的王八的蛋,萬年龜?shù)钠ü伞纫豢谒ǖ埃┒ㄒ幌拢@是規(guī)定(龜腚))!
開始運(yùn)行報(bào)錯(cuò)了,最后通過上邊的方法查看是因?yàn)閍ppActivity錯(cuò)誤了,修改版本號(hào)和appActivity后還是繼續(xù)報(bào)錯(cuò),說:安裝包不存在,然后在appium中配置

配置好以后,按上邊的步驟運(yùn)行代碼,可以看到appium日志沒有報(bào)錯(cuò)、運(yùn)行代碼沒有報(bào)錯(cuò)、成功的將淘寶的安裝包安裝在夜神模擬器上了

2、遇到的坑1:在CMD指令中輸入appium,提示如下圖所示

解決方式:降低nodejs的版本,參考鏈接:http://m.fzitv.net/article/163240.htm
3、遇到的坑2:運(yùn)行appium提示error: Couldn't start Appium REST http interface listener. Requested port is already in use. Please make sure there's no other instance of Appium running already.
解決方式:因?yàn)槎丝诒籲ode占用,可以用如下退出node,找出PID命令::netstat -ano|findstr "7922" (這個(gè)4723是被占用的端口,我們需要先找該占用該端口程序的PID)。停止PID命令:taskkill /pid[進(jìn)程碼] -t(結(jié)束該進(jìn)程) -f(強(qiáng)制結(jié)束該進(jìn)程以及所有子進(jìn)程)。
不知道端口占用的小伙伴們可以看宏哥的這篇查看端口占用的博文:傳送門
總結(jié)
以上所述是小編給大家介紹的Appium+python自動(dòng)化之連接模擬器并啟動(dòng)淘寶APP(超詳解),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
零基礎(chǔ)學(xué)python應(yīng)該從哪里入手
在本篇文章里小編給大家分享的是一篇關(guān)于零基礎(chǔ)學(xué)python應(yīng)該從哪里入手的相關(guān)基礎(chǔ)內(nèi)容,需要的朋友們可以參考下。2020-08-08
開源軟件包和環(huán)境管理系統(tǒng)Anaconda的安裝使用
Anaconda是一個(gè)用于科學(xué)計(jì)算的Python發(fā)行版,支持 Linux, Mac, Windows系統(tǒng),提供了包管理與環(huán)境管理的功能,可以很方便地解決多版本python并存、切換以及各種第三方包安裝問題。2017-09-09
Python基本數(shù)據(jù)結(jié)構(gòu)之字典類型dict用法分析
這篇文章主要介紹了Python基本數(shù)據(jù)結(jié)構(gòu)之字典類型dict用法,結(jié)合實(shí)例形式分析了Python字典類型dict概念、原理、定義及基本使用技巧,需要的朋友可以參考下2019-06-06
Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法
下面小編就為大家分享一篇Linux-ubuntu16.04 Python3.5配置OpenCV3.2的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-04-04
Python遞歸求出列表(包括列表中的子列表)的最大值實(shí)例
今天小編就為大家分享一篇Python遞歸求出列表(包括列表中的子列表)的最大值實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02

