Python3+Appium安裝使用教程

Python3+Appium安裝使用教程

一咳秉、安裝

我們知道selenium是桌面瀏覽器自動化操作工具(Web Browser Automation)

appium是繼承selenium自動化思想旨在使手機app操作也能自動化的工具(Mobile App Automation Made Awesome)呆盖。

appium可以通過Desktop App和npm兩種方式安裝。Desktop App類似于selenium IDE提供一個圖形界面式操作工具登渣;npm類似于selenium就只能使用命令行喷户。

如果對appium還不太熟悉隙轻,推薦使用Desktop App安裝,這樣一些操作我們可以使用Desktop App來輸出代碼瞳购,寫代碼時就有個參考话侄。

1.1 安裝Android SDK

要想操作安卓手機需要Android SDK,所以在安裝appium之前先安裝Android SDK学赛。

推薦直接安裝Android Studio然后使用Android Studio安裝SDK(太慢可通過圖中HTTP Proxy設置代理)年堆。

菜單----Tools----SDK Manager,鉤選自己要安裝的版本點擊Apply進行下載即可盏浇。

image.jpeg

Android SDK安裝完成后变丧,新建ANDROID_HOME環(huán)境變量,值為上圖Android SDK Location的目錄(我這里是“D:\Language\ASDK”)

image.jpeg

1.2 通過Desktop App安裝(推薦)

下載地址:https://github.com/appium/appium-desktop/releases

選擇操作系統對應版本下載绢掰,Windows直接雙擊安裝即可痒蓬。

image.jpeg

1.3 通過npm安裝

1.3.1 安裝nodejs

appium本質是一個nodejs庫所以要先安裝nodejs,然后使用npm安裝滴劲。

nodejs下載地址:https://nodejs.org/zh-cn/download/

下載zip包解壓到自己想放的目錄攻晒,然后把該目錄加入Path環(huán)境變量即可。

1.3.2 安裝appium

npm install -g appium

安裝appium的過程中安裝chromedriver時會連接google網站上去(報錯RequestError: Error: connect ETIMEDOUT 216.58.220.208:443)班挖,所以可能你需要參考以下命令設置一下npm代理

image.jpeg

設置代理 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 # 注冊npm倉庫 npm config set registry https://registry.npmjs.org

查看當前配置項

npm config get

npm config get proxy

刪除代理配置 npm config delete proxy npm config delete https-proxy

image.jpeg

配置本質上會存放到“C:\Users\你的用戶名.npmrc”內鲁捏,所以也可以直接修改該文件。

1.3.3 使用appinum-doctor確認環(huán)境配置無誤

npm install -g appium-doctor appium-doctor --android

image.jpeg

二聪姿、手機連接appium

2.1 啟動appium服務

如果是通過npm安裝碴萧,appium會被安裝到nodejs目錄下乙嘀,直接使用appium命令啟動即可

image.jpeg

我這里使用Desktop App方式安裝末购,安裝完成后雙擊桌面上的圖標界面如下:

image.jpeg

我們使用默認配置都不修改,直接點擊“Start Server”按鈕啟動

image.jpeg

2.2 手機使用數據線連接電腦

使用數據線把手機連接到開啟appium的電腦虎谢,開啟usb調試功能盟榴。可使用adb命令列出設備確保連接成功

adb devices -l

image.jpeg

2.3獲取APP包名

打開CMD頁面使用:adb logcat -v time | findstr START

然后點擊所需要的APP

image.jpeg

三婴噩、 使用示例

下邊以python3+appium打開微信并登錄進行演示擎场。python操作appium是通過向appnium的監(jiān)聽端口發(fā)報文實現的羽德,所以python不用安裝什么appium庫。

3.1 Desktop App打開微信并登錄

image.jpeg

添加以下四項值迅办,完后點擊“Start Session”宅静。

platformName---設備平臺。填Android或IOS

deviceName----設備名站欺。按上邊adb查出的設備名填寫即可

appPackage----要啟動的app的包名姨夹。微信是"com.tencent.mm"

appActivity----要啟動的界面。微信啟動界面是".ui.LauncherUI"

{ "platformName": "Android", "deviceName": "HWEVA", "appPackage": "com.tencent.mm", "appActivity": ".ui.LauncherUI" }

image.jpeg

選擇xml控件矾策,對應部份就會高亮顯示磷账。

image.jpeg

點擊開始錄制,然后在該appium界面上操作(注意不是自己直接在手機上操作)贾虽,操作過程就會被記錄下來然后可輸出該過程對應的python代碼

image.jpeg

操作過程就會被記錄下來逃糟,在Recorder下拉選擇語言即可輸出操作對應的代碼

image.jpeg

3.2 全代碼自動化登錄實現

Desktop App已給出界面內操作的代碼,全代碼自動化主要的其實只是打開該界面的代碼蓬豁。

首先我們先安裝兩個依賴庫

pip install Appium-Python-Client Selenium

代碼補全如下绰咽,Appium-Python-Client繼承自Selenium所以使用方法和selenium是很類似的,更多api操作見:https://github.com/appium/python-client

image.jpeg

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服務監(jiān)聽地址 server='http://localhost:4723/wd/hub' # app啟動參數 desired_caps={ "platformName": "Android", "deviceName": "HWEVA", "appPackage": "com.tencent.mm", "appActivity": ".ui.LauncherUI" } # 驅動 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"))) # 點擊登錄按鈕 login_btn.click() # 獲取手機號文本框 phone_text = wait.until(EC.presence_of_element_located((By.ID,"com.tencent.mm:id/ji"))) # 填寫手機號文本框 phone_text.send_keys("18888888888")

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末地粪,一起剝皮案震驚了整個濱河市剃诅,隨后出現的幾起案子,更是在濱河造成了極大的恐慌驶忌,老刑警劉巖矛辕,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異付魔,居然都是意外死亡聊品,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門几苍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來翻屈,“玉大人,你說我怎么就攤上這事妻坝∩炜簦” “怎么了?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵刽宪,是天一觀的道長厘贼。 經常有香客問我,道長圣拄,這世上最難降的妖魔是什么嘴秸? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上岳掐,老公的妹妹穿的比我還像新娘凭疮。我一直安慰自己,他們只是感情好串述,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布执解。 她就那樣靜靜地躺著,像睡著了一般纲酗。 火紅的嫁衣襯著肌膚如雪材鹦。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天耕姊,我揣著相機與錄音桶唐,去河邊找鬼。 笑死茉兰,一個胖子當著我的面吹牛尤泽,可吹牛的內容都是我干的。 我是一名探鬼主播规脸,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼坯约,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了莫鸭?” 一聲冷哼從身側響起闹丐,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎被因,沒想到半個月后卿拴,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡梨与,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年堕花,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粥鞋。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡缘挽,死狀恐怖,靈堂內的尸體忽然破棺而出呻粹,到底是詐尸還是另有隱情壕曼,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布等浊,位于F島的核電站腮郊,受9級特大地震影響,放射性物質發(fā)生泄漏凿掂。R本人自食惡果不足惜伴榔,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望庄萎。 院中可真熱鬧踪少,春花似錦、人聲如沸糠涛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽忍捡。三九已至集漾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間砸脊,已是汗流浹背具篇。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留凌埂,地道東北人驱显。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像瞳抓,于是被迫代替她去往敵國和親埃疫。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內容