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

不二家的小球迷 · July 26, 2016 · Last by yxyang replied at April 24, 2017 · 4791 hits

之前用过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被切到了后台呢?

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up