經過兩天的研究Appium Desktop從入門到放棄,無奈最后選擇用Macaca App Inspector也是各種坑
安裝所需依賴庫
1.node (brew install node)
2.npm? (brew install npm)
3.carthage (brew install carthage)
4.libimobiledevice(真機測試需要)(brew install libimobiledevice)
5.ios-deploy(真機測試需要)(brew install ios-deploy)
判斷所有依賴是否安裝成功,可通過appium-doctor驗證,首先安裝appium-doctor(npm install -g appium-doctor),然后在終端運行appium-doctor,如圖下圖所示,都是打鉤狀態就證明環境正常(java相關環境不需要配置)
一、Appium Desktop(mac桌面版本)
下載安裝桌面版本 網上找了兩個版本?Appium Desktop下載1??Appium Desktop下載2
下載安裝好之后先不要啟動
Appium自帶的WebDriverAgent存在bug,改使用FaceBook的WebDriverAgent? ??WebDriverAgent下載
從git上下載WebDriverAgent,進入/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent?目錄(注意:不同版本的Appium路徑是不一樣的,我安裝的版本的路徑是下圖),命令行運行:./Scripts/bootstrap.sh,下載依賴,然后將該文件替換appium應用中的WebDriverAgent(目錄:/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent?)
路徑查找 :訪達->應用程序->appium右鍵顯示包內容
使用xcode打開WebDriverAgent程序,在真機上安裝WebDriverAgent程序,手機上出現WebDriverAgent應用表示安裝成功
這里也有坑:
把WebDriverAgentLib和WebDriverAgentRunner的bundleIdentifier修改不能和FaceBook的一樣 唯一就行
下面的地方也要修改一下
此時com+u編譯可能會抱下面的錯誤 如果不報錯略過
把下圖位置的修飾符改成strong即可
編譯之后會? 手機上出現WebDriverAgent應用表示安裝成功
啟動Appium Desktop
platformName:設備類型名稱 iOS或安卓
deviceName:手機設備
bundleId:項目的bundleIdentifier
udid:手機udid
xcodeOrgId:開發者賬號的teamid
xcodeSigningId:賦值"iPhone Developer"即可
到這里點擊start seeion 我這邊報錯 一直未解決(如果有人知道原因望指點一二,不勝感激)? 網上說是版本的原因??無奈最后只能用Macaca App Inspector
二、Macaca App Inspector(命令行終端方式)
更新npm
npm install macaca-cli -g
安裝appium
npm? install -g appium
安裝app-inspector?
npm install app-inspector -g
mac終端命令輸入macaca doctor檢查需要安裝的依賴 有區分iOS和Android
ios部分全部為綠色就表示依賴全部安裝完畢
終端命令輸入appium來啟動appium服務
出現下面歡迎界面就表示成功
這里有兩個坑:
1、這個目錄下的工程要換成自己的開發者賬號
2、手機里安裝的app必須是debug模式安裝的否則回報錯(我就是在這弄了好幾天都沒成功)
a.一定要選中開發證書
b.一定要選中scheme為debug
proxy.js:61:22 [master] pid:19389 xctest client proxy error with: Error: connect ECONNREFUSED 127.0.0.1:8001
三、下面開始用python寫腳本連接手機測試
python代碼
#encoding:utf-8
from appium import
webdriverdesired_caps = {}
desired_caps['platformName'] = 'iOS'
desired_caps['automationName'] = 'XCUITest'
desired_caps['deviceName'] = 'iPhone 7plus'
desired_caps['bundleId'] = 'com.app.JapanXfortunes'
desired_caps['udid'] = '0be13c5b60ea5fe3c92faa88888899'
desired_caps['xcodeOrgId'] = '569Z88888U'
desired_caps['xcodeSigningId'] = 'iPhone Developer'
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
可以使用mac終端運行python文件或者使用pycharm運行
運行之后不報錯就表示成功
然后新建終端命令窗口
輸入app-inspector -u <udid>? ? ? ? 注意:<udid> 為手機的udid
運行成功不出錯誤的話瀏覽器會打開一個界面
若切換頁面,需現在手機上切換,然后刷新瀏覽器,則獲取手機的最新頁面。
這里以app里的取消按鈕為例進行腳本測試
選中取消按鈕右側界面會顯示元素信息name值取消 我們根據name的值來獲取取消按鈕的點擊事件
在python代碼里添加下面一句代碼
driver.find_element_by_name("取消").click()
運行python代碼后會自動打開我們app并自動點擊取消按鈕
其他事件的處理都按照此方法
目前我也處在摸索階段 希望大家多多指點 相互分享經驗