
來源:AirPython
作者:星安果
大家好,我是安果!
最近,阿里內(nèi)部開源了一個 iOS 端由 Python 編寫的自動化工具,即:tidevice
它是一款跨平臺的自動化開源工具,不依賴 Xcode 就可以啟動 WebDriverAgent( WDA ),這也就意味著 Windows 可以直接運行 iOS 自動化腳本
進入到虛擬環(huán)境,先安裝 tidevice 的依賴包
# 安裝依賴包
pip3 install -U "tidevice[openssl]"
# 查看tidevice版本,檢查是否安裝成功
tidevice version
將 iPhone 設備連接到電腦上,就可以使用 tidevice 提供的功能了
3-1.查看設備列表
# 二選一
tidevice list
# json數(shù)據(jù)顯示
tidevice list --json
3-2.安裝、卸載應用
安裝對應的關鍵字為:「 install 」
tidevice 同時支持安裝本地 ipa 包和遠鏈下的 ipa 應用包
另外,tidevice 可以使用「 --udid 」參數(shù)將應用安裝到某一臺設備中
# 安裝本地應用
tidevice install example.ipa
# 根據(jù)udid參數(shù),指定設備安裝應用
tidevice --udid $UDID install
https://example.org/example.ipa
tidevice install https://.....ipa
卸載對應的關鍵字為:「 uninstall 」
通過應用包名可以卸載設備上的某一個應用
# 卸載應用(通過包名)
# 比如:知識星球App包名為:com.unnoo.quan
tidevice uninstall com.unnoo.quan
3-3.啟動、關閉應用
啟動應用對應的關鍵字為:「 launch 」
關閉應用對應的關鍵字為:「 kill 」
# 打開應用
tidevice launch com.unnoo.quan
# 停止殺死應用
tidevice kill com.unnoo.quan
3-4.已安裝應用及名稱、版本
使用「 tidevice applist 」命令,可以查看設備上已經(jīng)安裝的應用、應用名稱、應用版本號
# 查看設備應用信息列表
localhost:tidevice_demo xingag$ tidevice applist
com.tencent.xin WeChat 8.0.2
com.ss.iphone.ugc.Aweme 抖音 13.4.0
com.tencent.mttlite QQ瀏覽器 10.8.3
com.panasonic.jp.imageapp Image App 1.10.17
com.unnoo.quan 知識星球 4.20.2
co.visualsupply.cam VSCO 189
com.ucweb.iphone.lowversion UC瀏覽器 13.1.5
com.niksoftware.snapseedforipad Snapseed 2.19.5
com.autonavi.amap 高德地圖 10.76.0
com.lagou.education 拉勾教育 1.4.9
com.xunmeng.pinduoduo 拼多多 5.37.0
com.tencent.QQMusic QQ音樂 10.5.5
io.ideamp.feelcab Feelca B 1.6.0
com.chinaunicom.mobilebusiness 手機營業(yè)廳 8.00.01
com.feiyu-tech.vico Vicool 1.2.26
com.ss.iphone.article.News 今日頭條 7.9.3
com.sogou.sogouinput 搜狗輸入法 10.18.1
org.geekbang.GeekTime 極客時間 2.9.2
com.burbn.hyperlapse Hyperlapse 1.3.4
com.apple.itunesu iTunes U 3.8
3-5.設備信息
利用「 tidevice info 」可以查看設備信息,比如:設備序列號、系統(tǒng)版本、CPU、本機號碼、時間戳、藍牙地址、MAC 地址等信息
# 查看設備信息
localhost:~ xingag$ tidevice info
MarketName: iPhone SE (1st generation)
DeviceName: xingag
ProductVersion: 14.4
ProductType: iPhone8,4
ModelNumber: MP892
SerialNumber: ...
CPUArchitecture: arm64
ProductName: iPhone OS
ProtocolVersion: 2
RegionInfo: ZP/A
TimeIntervalSince1970: 1616979424.235399
TimeZone: Asia/Shanghai
WiFiAddress: 58:e2:8f:68:4c:b0
BluetoothAddress: 58:e2:8f:68:4c:b1
BasebandVersion: 10.40.01
...
如果要查看設備的電池信息,可以使用關鍵字 「 --domain + 應用包名 」來獲取
# 查看設備電池信息
localhost:~ xingag$ tidevice info --domain com.apple.mobile.battery --json
{
"BatteryCurrentCapacity": 54,
"BatteryIsCharging": true,
"ExternalChargeCapable": true,
"ExternalConnected": true,
"FullyCharged": false,
"GasGaugeCapability": true,
"HasBattery": true
}
3-6.重啟及截圖
重啟對應的關鍵字為:「 reboot 」
截圖對應的關鍵字為:「 screenshot 」
# 重啟設備
tidevice reboot
# 截圖并保存到文件 screenshot.jpg 中
tidevice screenshot screenshot.jpg
3-7.系統(tǒng)日志及更多幫助
查看系統(tǒng)日志的命令為:「 tidevice syslog 」,當然也可以配置 grep 參數(shù)進行過濾
# 查看系統(tǒng)日志
tidevice syslog
# 更多幫助
tidevice -h
要完成 iOS 端的自動化,我們還需要做一些準備工作
4-1.安裝 WDA
我們需要將 WebDriverAgent 安裝到 iOS 設備上,通過它驅動手機進行一系列自動化操作
PS:由于 Facebook WDA 很長時間沒有更新了,這里建議直接使用 Appium WDA
https://github.com/appium/WebDriverAgent
下載項目后,使用 Xcode 打開,Scheme 選擇 WebDriverAgentRunner,設備選擇真機
然后配置開發(fā)者證書,可以參考下面鏈接進行配置
https://testerhome.com/topics/7220
最后,Xcode 選擇 Project 下的 Test 將項目運行到真機設備上
注意:第一次運行 WDA 可能運行失敗,需要手動在設置中對證書添加信任
4-2.運行 WDA
真機設備安裝完 WDA 后,就可以脫離 Mac,使用 Windows 進行自動化操作了
使用「 tidevice wdaproxy 」命令可以運行 WDA 和端口轉發(fā)
# 運行 WDA
# 端口轉發(fā)到8100
# 應用包名:
com.facebook.WebDriverAgentRunner.xingag23.xctrunner
idevice wdaproxy -B
com.facebook.WebDriverAgentRunner.xingag23.xctrunner --port 8100
PS:由于 Xcode 設置證書的時候,更改過 bundle_id,所以這里的包名是一個變量
4-3.編寫自動化腳本
接下來,就可以使用 Appium 或 facebook-wda 編寫腳本并運行到 iOS 設備上了
以 facebook-wda 為例
首先,我們安裝對應的依賴
# 安裝facebook-wda依賴
pip3 install -U facebook-wda
接著,編寫自動化腳本并運行測試
import wda
import time
# 連接設備
c1 = wda.USBClient()
# c1 = wda.Client("http://10.3.209.175:8100")
print(c.info)
# 極客時間
bundle_id = 'org.geekbang.GeekTime'
# 通過app的bundleId啟動App
s = c1.session(bundle_id)
# 休眠5s
s.sleep(5)
# 截圖保存到本地
c1.screenshot('sc.png')
# 回到桌面
s.home()
阿里這款 iOS 端自動化工具的主要優(yōu)點是啟動速度快,內(nèi)存占用低;更重要的是,它是跨平臺,穩(wěn)定性相對較高
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關鍵? 在循環(huán)神經(jīng)網(wǎng)絡(RNN)家族中,長短期記憶網(wǎng)絡(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準備指南? ? 在數(shù)據(jù)驅動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計的實用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實施重大更新。 此次更新旨在確保認 ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務的價值轉化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預測分析中的應用:從數(shù)據(jù)查詢到趨勢預判? ? 在數(shù)據(jù)驅動決策的時代,預測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結束)并非工作的終點,而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗:捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準 ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應用與實戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗:數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領域中,準確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認證作為國內(nèi)權威的數(shù)據(jù)分析能力認證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應對策略? 長短期記憶網(wǎng)絡(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(RNN)的一種變體,憑借獨特的門控機制,在 ...
2025-07-07統(tǒng)計學方法在市場調研數(shù)據(jù)中的深度應用? 市場調研是企業(yè)洞察市場動態(tài)、了解消費者需求的重要途徑,而統(tǒng)計學方法則是市場調研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉日期:解鎖數(shù)據(jù)處理的關鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準確性的基礎 ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03