wda

本文详细介绍了如何在iOS设备上使用WebDriverAgent(WDA)进行自动化测试,包括前置条件、配置、连接手机、Client、Session操作等步骤,并提供了各种元素查找、行为操作的实例。此外,还涵盖了元素行为如tap、scroll、set_text等,以及如何处理Alert和回调功能。
摘要由CSDN通过智能技术生成


https://github.com/openatx/facebook-wda

前置条件

  • 安装
    1. 安装依赖
      1. brew install carthage
      2. brew install node
      3. brew install libimobiledevice --HEAD
    2. 克隆wda代码
      1. git clone https://github.com/appium/WebDriverAgent
    3. 初始化wda
      1. cd ./WebDriverAgent
      2. ./Scripts/bootstrap.sh
    4. 打开Xcode
      1. 方法1:在WebDriverAgent文件下打开 WebDriverAgent.xcodeproj 文件
      2. 方法2:直接打开xcode,选择WebDriverAgent文件
    5. 配置xcode
      1. 配置WebDriverAgentLib和WebDriverAgentRunner
        1. 参考:https://testerhome.com/topics/7220
        2. 账号:apple id
      2. 选择WebDriverAgentRunner和设备
      3. 无报错提示后command + U运行
        1. 手机会安装wda无图标APP,首次安装,需要进行信任
        2. 如果更改了build号,需要先删除手机旧wda
      4. iproxy 8100 8100 # 端口转发
    6. 检查wda环境
      1. 浏览器输入localhost:8100/status,出现josn格式返回 (需先接口转发)
    7. 获取控件元素
      1. 使用atx,同Android的uiautomator2
      2. python3 -m weditor
  • 每次使用
    1. 开启Xcode
      1. 选择手机,(product-destination)
      2. command + U(product-test)运行成功(bulid success 然后自动手机装wda程序)
      3. 如果提示报错,需要手机信任(设置-通用-描述文件与设备管理)
    2. 控制台运行 iproxy 8100 8100 (端口转化,港版的手机不需要)
    3. 控制台运行 python3 -m weditor (开启weditor,使用http://localhost:8100连接)

配置

  • import wda
  • wda.DEBUG = False # 默认为false
  • wda.HTTP_TIMEOUT = 60.0 # 默认为60s

连接手机

  • 创建一个连接
    • 使用Client
      • 先引用 import wda
      • c = wda.client('http://localhost:8100’)
      • c = wda.client()
        • 不设置参数,则默认从 $DEVICE_URL 获取,
        • 如果$DEVICE_URL为空,则默认为http://localhost:8100
      • 如果连接出错,会报wda.WDAError错误
    • 使用USBClient
      • USBClient继承自Client
      • USBClient通过unix:/var/run/usbmuxd连接到wda-server服务
      • import wda
      • 当只有一个设备连接时,可以不用填参数
        • c = wda.USBClient()
      • 支持指定设备的udid和wda的端口号
        • c = wda.USBClient(“539c5fffb18f2be0bf7f771d68f7c327fb68d2d9”, port=8100)
      • 支持通过device_url访问
        • c = wda.Client(“usbmux://{udid}:8100”.format(udid=“539c5fffb18f2be0bf7f771d68f7c327fb68d2d9”))

Client

  • 显示状态
    • c.status()
  • 等待wda准备好
    • c.wait_ready(timeout=300) # 等待300s,不设置默认120s
    • c.wait_ready(timeout=300, noprint=True) # 安静的等待,无进度输出
  • 按home键
    • c.home()
  • 健康检查
    • c.healthcheck() (health-健康)
  • 获取页面源 (source-资源)
    • c.source() # 格式为xml
    • c.source(accessible=True) # 默认为false ,格式为json
  • 锁定屏幕
    • c.locked() #检查屏幕锁定状态 返回 true或false
    • c.lock() #锁定屏幕
    • c.unl
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值