iOS 测试 WebDriverAgent 的 python client 端使用记录

不二家 · 2016年07月26日 · 最后由 yxyang 回复于 2017年04月24日 · 4160 次阅读

之前用过 js 封装的 WebDriverAgent 的 macaca,然后就一直想尝鲜 WebDriverAgent-python 封装的 client 端,不经意间知道了网易大神写的 WebDriverAgent-python,他叫它为 wda。wda 传送门
纯 python 封装,那么该如何使用呢?

安装

第一步:需要下载 WebDriverAgent 工程,它是一个开源工程。
下载git clone https://github.com/openatx/facebook-wda

第二步:安装 python 的 client 端,有两种方式。

  1. 直接pip install --pre facebook-wda
  2. git clone https://github.com/openatx/facebook-wda.git 然后cd 到facebook-wda,用python setup.py install安装

开始使用

第一步:启动服务
用 xcode 打开工程,启动 Test,建立连接,或者命令行启动

UDID=$(idevice_id -l) 
xcodebuild -project WebDriverAgent.xcodeproj \-scheme WebDriverAgentRunner 
\-destination "id=$UDID" test

我选择的是 xcode 启动服务,确认服务启动,如何确认?
方法将 mac 和手机设备置于同一网段下,然后启动 WebDriverAgent 工程,scheme 选择 Test,然后看 xcode console,可以看到一个 ServerURLHere 指向http://192.168.1.1:8100

第二步:那么怎么使用这个库呢?

  • 首先可以看作者的README.md

  • 可以看到需要先建立一个client,然后建立session,建立 session 以后就类似于启动一个应用,这个时候就可以在应用里面进行操作。

import wda

driver = wda.Client('http://192.168.1.101:8100')

# 跳转新浪应用
sina_session = driver.session('com.sina.weibo')
  • 在应用里面操作控件,怎么查看控件定位信息呢?
    在浏览器打开http://192.168.1.101:8100/inspector,具体使用可以看WebDriverAgent 踩坑记

  • 知道控件以后,就可以使用 click 或者 send_keys 了,这里应该这么用。

    sina_session(text="Dashboard", className='Button').tap()
    

Set text

sina_session(text="Name").set_text("Hello")

Clear text

sina_session(text="Name").clear_text()


* 最后我把我编写的简单用例脚本放出来,很简单,可执行。

import wda

driver = wda.Client('http://192.168.1.101:8100')

跳转新浪应用

sina_session = driver.session('com.sina.weibo')

取得屏幕大小

size = sina_session.window_size()
print size

点击发现按钮

sina_session(text=u'发现',className='Button').tap()

跳转到设置应用

setting_session = driver.session('com.apple.Preferences')

点击通知按钮

setting_session(text=u'通知', className='Cell').tap()


### 下一步
WebDriverAgent最吸引我的是可以非常简便实现类似于安卓形式的跨应用,之前折腾了许久想要自己实现封装,现在正好可以借助前人的肩膀,下一步封装,使得脚本形成类似于appium的样式。
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 1 条回复 时间 点赞

请问如何判断被测试 app 被切到了后台呢?

2楼 已删除
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册