Facebook脚本()
1. 前言
大家好呀!清明节一晃又过去了呢,又该学习了呢【思考】。
蕞近,阿里内部开源了一个 iOS 端由 Python 编写的自动化工具,即:tidevice
它是一款跨平台的自动化开源工具,不依赖 Xcode 就可以启动 WebDriverAgent,这也就意味着 Windows 可以直接运行 iOS 自动化脚本
<<<戳一戳,由于篇幅较长,更多python入门进阶学习资料分享,文末可领取了>>>
2. 准备
进入到虚拟环境,先安装 tidevice 的依赖包
# 安装依赖包pip3 install -U "tidevice[openssl]" # 查看tidevice版本,检查是否安装成功tidevice version
3. 常见功能
将 iPhone 设备连接到电脑上,就可以使用 tidevice 提供的功能了
3-1 查看设备列表
# 二选一tidevice list# json数据显示tidevice list --json
3-2 安装、卸载应用
安装对应的关键字为:「 install 」
tidevice 同时支持安装本地 ipa 包和远链下的 ipa 应用包
另外,tidevice 可以使用「 --udid 」参数将应用安装到某一台设备中
# 安装本地应用tidevice install example.ipa# 根据udid参数,指定设备安装应用tidevice --udid $UDID install https://example.org/example.ipatidevice install https://.....ipa
卸载对应的关键字为:「 uninstall 」
通过应用包名可以卸载设备上的某一个应用# 卸载应用# 比如:知识星球App包名为:com.unnoo.quantidevice uninstall com.unnoo.quan
3-3 启动、关闭应用
启动应用对应的关键字为:「 launch 」
关闭应用对应的关键字为:「 kill 」
# 打开应用tidevice launch com.unnoo.quan# 停止杀死应用tidevice kill com.unnoo.quan
3-4 已安装应用及名称、版本
使用「 tidevice applist 」命令,可以查看设备上已经安装的应用、应用名称、应用版本号
# 查看设备应用信息列表localhost:tidevice_demo xingag$ tidevice applistcom.tencent.xin WeChat 8.0.2com.ss.iphone.ugc.Aweme 抖音 13.4.0com.tencent.mttlite QQ浏览器 10.8.3com.panasonic.jp.imageapp Image App 1.10.17com.unnoo.quan 知识星球 4.20.2co.visualsupply.cam VSCO 189com.ucweb.iphone.lowversion UC浏览器 13.1.5com.niksoftware.snapseedforipad Snapseed 2.19.5com.autonavi.amap 高德地图 10.76.0com.lagou.education 拉勾教育 1.4.9com.xunmeng.pinduoduo 拼多多 5.37.0com.tencent.QQMusic QQ音樂 10.5.5io.ideamp.feelcab Feelca B 1.6.0com.chinaunicom.mobilebusiness 手机营业厅 8.00.01com.feiyu-tech.vico Vicool 1.2.26com.ss.iphone.article.News 7.9.3com.sogou.sogouinput 搜狗输入法 10.18.1org.geekbang.GeekTime 极客时间 2.9.2com.burbn.hyperlapse Hyperlapse 1.3.4com.apple.itunesu iTunes U 3.8
3-5 设备信息
利用「 tidevice info 」可以查看设备信息,比如:设备序列号、系统版本、CPU、本机号码、时间戳、蓝牙地址、MAC 地址等信息
# 查看设备信息localhost:~ xingag$ tidevice infoMarketName: iPhone SE DeviceName: xingagProductVersion: 14.4ProductType: iPhone8,4ModelNumber: MP892SerialNumber: ...CPUArchitecture: arm64ProductName: iPhone OSProtocolVersion: 2RegionInfo: ZP/ATimeIntervalSince1970: 1616979424.235399TimeZone: Asia/ShanghaiWiFiAddress: 58:e2:8f:68:4c:b0BluetoothAddress: 58:e2:8f:68:4c:b1BasebandVersion: 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 系统日志及更多帮助
查看系统日志的命令为:「 tidevice syslog 」,当然也可以配置 grep 参数进行过滤
# 查看系统日志tidevice syslog# 更多帮助tidevice -h
4. 自动化步骤
要完成 iOS 端的自动化,我们还需要做一些准备工作
4-1 安装 WDA
我们需要将 WebDriverAgent 安装到 iOS 设备上,通过它驱动手机进行一系列自动化操作
PS:由于 Facebook WDA 很长时间没有更新了,这里建议直接使用 Appium WDA
下载项目后,使用 Xcode 打开,Scheme 选择 WebDriverAgentRunner,设备选择真机
然后配置开发者证书,可以参考下面链接进行配置
蕞后,Xcode 选择 Project 下的 Test 将项目运行到真机设备上
注意:弟一次运行 WDA 可能运行失败,需要手动在设置中对证书添加信任
4-2 运行 WDA
真机设备安装完 WDA 后,就可以脱离 Mac,使用 Windows 进行自动化操作了
使用「 tidevice wdaproxy 」命令可以运行 WDA 和端口转发
# 运行 WDA# 端口转发到8100# 应用包名:com.facebook.WebDriverAgentRunner.xingag23.xctrunneridevice 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 wdaimport time# 连接设备c1 = wda.USBClient# c1 = wda.Clientprint# 极客时间bundle_id = 'org.geekbang.GeekTime'# 通过app的bundleId启动Apps = c1.session# 休眠5ss.sleep# 截图保存到本地c1.screenshot# 回到桌面s.home
5. 蕞后
阿里这款 iOS 端自动化工具的主要优点是启动速度快,内存占用低;更重要的是,它是跨平台,稳定性相对较高
如果你觉得这篇文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的蕞强动力!
更多爬虫、数据分析、全栈开发、人工智能学习资料自取私信@林夕编程回复关键词【资料】
海外精品引流脚本--最强海外引流
唯一TG:https://t.me/Facebook181818