如何在Python3中安裝與使用Appium?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括漢陰網(wǎng)站建設(shè)、漢陰網(wǎng)站制作、漢陰網(wǎng)頁制作以及漢陰網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,漢陰網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到漢陰省份的部分城市,未來相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!一、安裝
appium是繼承selenium自動(dòng)化思想旨在使手機(jī)app操作也能自動(dòng)化的工具(Mobile App Automation Made Awesome)。
appium可以通過Desktop App和npm兩種方式安裝。Desktop App類似于selenium IDE提供一個(gè)圖形界面式操作工具;npm類似于selenium就只能使用命令行。
如果對(duì)appium還不太熟悉,推薦使用Desktop App安裝,這樣一些操作我們可以使用Desktop App來輸出代碼,寫代碼時(shí)就有個(gè)參考。
1.1 安裝Android SDK
要想操作安卓手機(jī)需要Android SDK,所以在安裝appium之前先安裝Android SDK。
推薦直接安裝Android Studio然后使用Android Studio安裝SDK(太慢可通過圖中HTTP Proxy設(shè)置代理)。
菜單----Tools----SDK Manager,鉤選自己要安裝的版本點(diǎn)擊Apply進(jìn)行下載即可。
Android SDK安裝完成后,新建ANDROID_HOME環(huán)境變量,值為上圖Android SDK Location的目錄(我這里是“D:\Language\ASDK”)
1.2 通過Desktop App安裝(推薦)
下載地址:https://github.com/appium/appium-desktop/releases
選擇操作系統(tǒng)對(duì)應(yīng)版本下載,Windows直接雙擊安裝即可。
1.3 通過npm安裝
1.3.1 安裝nodejs
appium本質(zhì)是一個(gè)nodejs庫所以要先安裝nodejs,然后使用npm安裝。
nodejs下載地址:https://nodejs.org/zh-cn/download/
下載zip包解壓到自己想放的目錄,然后把該目錄加入Path環(huán)境變量即可。
1.3.2 安裝appium
npm install -g appium
安裝appium的過程中安裝chromedriver時(shí)會(huì)連接google網(wǎng)站上去(報(bào)錯(cuò)RequestError: Error: connect ETIMEDOUT 216.58.220.208:443),所以可能你需要參考以下命令設(shè)置一下npm代理
# 設(shè)置代理 npm config set proxy http://127.0.0.1:1080 npm config set https-proxy http://127.0.0.1:1080 # 如果代理需要用戶名密碼 npm config set proxy http://username:password@127.0.0.1:1080 npm config set https-proxy http://username:password@127.0.0.1:1080 # 注冊(cè)npm倉庫 npm config set registry https://registry.npmjs.org # 刪除代理配置 npm config delete proxy npm config delete https-proxy
1.3.3 使用appinum-doctor確認(rèn)環(huán)境配置無誤
npm install -g appium-doctor appium-doctor --android
二、手機(jī)連接appium
2.1 啟動(dòng)appium服務(wù)
如果是通過npm安裝,appium會(huì)被安裝到nodejs目錄下,直接使用appium命令啟動(dòng)即可
我這里使用Desktop App方式安裝,安裝完成后雙擊桌面上的圖標(biāo)界面如下:
我們使用默認(rèn)配置都不修改,直接點(diǎn)擊“Start Server”按鈕啟動(dòng)
2.2 手機(jī)使用數(shù)據(jù)線連接電腦
使用數(shù)據(jù)線把手機(jī)連接到開啟appium的電腦,開啟usb調(diào)試功能??墒褂胊db命令列出設(shè)備確保連接成功
adb devices -l
三、 使用示例
下邊以python3+appium打開微信并登錄進(jìn)行演示。python操作appium是通過向appnium的監(jiān)聽端口發(fā)報(bào)文實(shí)現(xiàn)的,所以python不用安裝什么appium庫。
3.1 Desktop App打開微信并登錄
添加以下四項(xiàng)值,完后點(diǎn)擊“Start Session”。
platformName---設(shè)備平臺(tái)。填A(yù)ndroid或IOS
deviceName----設(shè)備名。按上邊adb查出的設(shè)備名填寫即可
appPackage----要啟動(dòng)的app的包名。微信是"com.tencent.mm"
appActivity----要啟動(dòng)的界面。微信啟動(dòng)界面是".ui.LauncherUI"
{ "platformName": "Android", "deviceName": "HWEVA", "appPackage": "com.tencent.mm", "appActivity": ".ui.LauncherUI" }
選擇xml控件,對(duì)應(yīng)部份就會(huì)高亮顯示。
點(diǎn)擊開始錄制,然后在該appium界面上操作(注意不是自己直接在手機(jī)上操作),操作過程就會(huì)被記錄下來然后可輸出該過程對(duì)應(yīng)的python代碼
操作過程就會(huì)被記錄下來,在Recorder下拉選擇語言即可輸出操作對(duì)應(yīng)的代碼
3.2 全代碼自動(dòng)化登錄實(shí)現(xiàn)
Desktop App已給出界面內(nèi)操作的代碼,全代碼自動(dòng)化主要的其實(shí)只是打開該界面的代碼。
首先我們先安裝兩個(gè)依賴庫
pip install Appium-Python-Client Selenium
代碼補(bǔ)全如下,Appium-Python-Client繼承自Selenium所以使用方法和selenium是很類似的,更多api操作見:https://github.com/appium/python-client
from appium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC # appium服務(wù)監(jiān)聽地址 server='http://localhost:4723/wd/hub' # app啟動(dòng)參數(shù) desired_caps={ "platformName": "Android", "deviceName": "HWEVA", "appPackage": "com.tencent.mm", "appActivity": ".ui.LauncherUI" } # 驅(qū)動(dòng) driver = webdriver.Remote(server,desired_caps) wait = WebDriverWait(driver,30) # 獲取登錄按鈕 login_btn = wait.until(EC.presence_of_element_located((By.ID,"com.tencent.mm:id/drp"))) # 點(diǎn)擊登錄按鈕 login_btn.click() # 獲取手機(jī)號(hào)文本框 phone_text = wait.until(EC.presence_of_element_located((By.ID,"com.tencent.mm:id/ji"))) # 填寫手機(jī)號(hào)文本框 phone_text.send_keys("18888888888")
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司的支持。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、網(wǎng)站設(shè)計(jì)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。