facebook-wda:iOS 自动化的强大 Python 客户端
facebook-wda 是一个基于 Python 语言的客户端库,用于进行 iOS 平台的 UI 自动化测试。它的本质是一个“指挥官”,通过发送 HTTP 命令,远程控制一个运行在 iOS 设备上的服务端程序(即 WebDriverAgent),从而模拟用户的真实操作,如点击、滑动、输入文字等。
它遵循典型的 Client-Server (客户端-服务器) 架构:
Server 端 (WebDriverAgent - WDA):
这是一个由 Facebook 开源,后由 Appium 团队维护的项目。
它需要被编译并安装到你的 iOS 设备或模拟器上。
启动后,它会在设备上作为一个服务运行,监听一个端口(通常是 8100),并等待来自客户端的指令。
它的职责是:直接与 iOS 系统的 Accessibility 层交互,查找 UI 元素、执行操作、获取页面信息。
Client 端 (facebook-wda):
这就是我们编写的 Python 脚本。
它的职责是:提供一套简洁的 Python API。当你调用这些 API(如 click, scroll)时,facebook-wda 会将其转换为 HTTP 请求(遵循 WebDriver 协议),发送给远端的 WDA 服务。
相关网址:
facebook-wda github(https://github.com/openatx/facebook-wda)
安装
pip install facebook-wdaQuickStart
前提,在ios安装并启动WebDriverAgent(facebook-wda将依赖这个去驱动ios中的软件),将如下代码保存在main.py:
import wda
import time
# 1. 连接设备
c = wda.Client()
print("设备信息:", c.status())
# 2. 启动设置应用
s = c.session('com.apple.Preferences')
print("会话已创建")
# 3. 进入通用设置
try:
# 等待并点击"通用"
s(name='通用').wait(5.0).click()
print("已进入通用设置")
# 等待并点击"关于本机"
s(name='关于本机').wait(5.0).click()
print("已进入关于本机")
# 获取设备名称
device_name = s(name='名称').wait(3.0)
if device_name:
print("设备名称:", device_name.get_text())
# 截图保存
c.screenshot('about_page.png')
print("截图已保存")
# 返回两次
s.tap(50, 50) # 点击左上角返回
time.sleep(1)
s.tap(50, 50) # 再次返回
except Exception as e:
print("操作失败:", e)
c.screenshot('error.png')
# 4. 关闭会话
s.close()
print("自动化完成")
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
soap的会员制餐厅!
喜欢就支持一下吧