基于facebook-wda的iOS自动化操作实践记录
[本文出自天外归云的博客园]
原理
对于iOS自动化操作,主要靠WebDriverAgent来完成。在Mac电脑上连接真机iPhone,运行WebDriverAgentRunner会在Mac端启动WDA服务器,并在手机iPhone端安装一个WebDriverAgentRunner应用。我们通过编写脚本来与WDA服务器通信,告诉WDA服务器我们想要如何操作iPhone手机,WDA服务器与安装在手机iPhone端的WebDriverAgentRunner应用通信并通过该app发送模拟指令来实现操作iPhone手机
安装过程
1. 安装WebDriverAgent:https://github.com/facebook/WebDriverAgent
2. 及其依赖的库Carthage:https://github.com/Carthage/Carthage
3. 需要npm的支持
启动与停止WDA服务器
方式1:命令行启动模拟器 xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'platform=iOS Simulator,name=iPhone 6' test
方式2:在真机上运行参考这篇文章进行配置:ATX 文档 - iOS 真机如何安装 WebDriverAgent
停止运行WDA:Xcode-Product-Stop
安装并了解facebook-wda的用法
1. 安装wda的python库:pip install facebook-wda
2. 了解facebook-wda
遇到的问题与解决方法
1. 从app安装包的plist文件中查看iOS应用的bundleId
2. 通过facebook-wda点击home键报错解决办法: “这个是wda的问题,判断桌面是否出现导致了超时,英文系统是Docker,中文系统是程序坞”,解决方法是更改WebDriverAgent文件夹下WebDriverAgentLib文件夹下的FBSpringboardApplication.m文件中fb_isApplicationBoardVisible函数的返回为return self.otherElements[@"Dock"].isEnabled || self.otherElements[@"程序坞"].isEnabled;
编写脚本
可以通过编写运行python脚本,通过调用wda封装的方法,与WebDriverAgentRunner运行的服务器交互。实现一些自定义的行为,达到操控iPhone的目的。例如:
import wda c = wda.Client('http://WDAServer的ip:8100') print(c.status()) c.healthcheck() c.home() s = c.session('app的bundleId') s(text="跳过").click_exists(timeout=5.0) s(text="广场").click_exists(timeout=5.0) s.close()
以上代表的基本关键操作如下:
1. 连接已经运行起来的WebDriverAgentRunner服务器,在xcode的终端可以看到WDAServer的ip
2. 通过app的bundleId来启动app
3. 判断是否有指定文字的按钮并点击,设置超时时间为5s
本文来自博客园,作者:天外归云,转载请注明原文链接:https://www.cnblogs.com/LanTianYou/p/10205499.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」