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 服务。

相关网址:

安装

pip install facebook-wda

QuickStart

前提,在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("自动化完成")

文章作者: Vsoapmac
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 soap的会员制餐厅
自动化测试 第三方库
喜欢就支持一下吧