前言
一般我們要使用 appium 來做手機端自動化,要麼下載一個 appium-desktop(其中有圖形化的 server 和 inspector 定位元素工具),要麼只下載一個 appium-server 就行。SDK 肯定也是要有的(其中含有 adb 全稱 android debug bridge 安卓調試橋)。還需要模擬器或者真機(需要 root 權限),模擬器推薦網易 mumu(只有安卓 6.0 版本) 或者 genimotion 或者 sdk 自帶模擬器
appium-desktop 使用簡介
首先要說的是我在使用 18 年 12 月的 1.9.1 版本時候是有問題的,目前我發現有兩個地方有問題,第一個是從 appium 中的手機界面同步到模擬器會導致 appium 意外關閉,還有一個是 appium 錄製時候 sendkeys 無效。於是我去下了最新版本的 appium,但是我下載 appium 的過程也依舊是困難重重,因爲國內這可惡的牆,我整了好久硬是沒下載 appium-desktop 下來,它可是有 100 多 M,所以我又去設置了 hosts
我們最常用的操作如下:
左側是模擬器的顯示界面可以在這裏抓取元素,中間顯示界面 xml 代碼,右邊是元素的具體信息,打開錄製之後中上方會出現錄製代碼,我們錄製好之後還可以拷貝代碼
錄製的詳細操作過程
下面錄製我是針對於模擬器而言的
-
首先我們啓動網易 mumu 模擬器,並且打開某一應用軟件
-
我們通過如下命令讓 adb 連接上模擬器(先你得有 sdk 並配好了環境變量)
adb connect 127.0.0.1:7555
然後我們再執行命令查看連接的設備,發現已經有一臺設備成功連接了
adb devices
-
然後我們打開 appium 啓動,然後打開其中的 inspector 用來連接上模擬器,與 selenium 操縱瀏覽器的方式大致相同,分爲客戶端,服務端還有一個瀏覽器或者說模擬器,但是對於 selenium 來講,它的元素定位工具和瀏覽器是一體的,但是 appium 而言單個的模擬器是沒有定位工具的,所以通過下載 appium-desktop 其中帶有 inspector 定位器,既然定位器要定位,所以必然先要和模擬器進行連接,所以當我們打開 inspector 之後先需要進行連接操作
四行分別表示:
- 平臺:android 或者 IOS
- 設備名稱:通過
adb devices
可以查看 - 應用軟件的包名
- 應用軟件的要連接顯示的 Activity 名稱
注意新版 appium 對於網易 mumu 還需要加上
automationName=UiAutomator1
-
具體怎麼抓包名和 Activity 名字
我們在 git 命令控制檯通過如下命令
adblogcat | grep 'Display'
之後我們就可以捕捉到需要的包和 Activity 了,包一般是這樣的名字
com.包名.android
activity 也很好找就是報名後面的即是。然後我們填入 appium-inspector 中即可連接成功 -
打開後的界面我們點擊中間一個眼睛的圖標表示開始錄製,並且我們可以先清空一開始錄製框中的代碼,我們在左邊界面點擊元素並不會真的點擊,只是表示選中了這個元素,右邊會顯示元素的定位,並且右邊有 tab 點擊一下表示真實點擊了左邊的元素,右邊的 sendkeys 表示輸入文本,這樣我們手動點擊執行下來就可以在上頭的框中生成錄製代碼了!
我們來一起看一下界面以及錄製的生成的代碼區域,支持代碼拷貝,支持多種語言