导语


之前用过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,建立连接,或者命令行启动

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

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

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

1、首先可以看作者的README.md

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

1
2
3
4
5
6
import wda
driver = wda.Client('http://192.168.1.101:8100')
# 跳转新浪应用
sina_session = driver.session('com.sina.weibo')

3、在应用里面操作控件,怎么查看控件定位信息呢?
在浏览器打开http://192.168.1.101:8100/inspector,具体使用可以看iOS自动化实践——WebDrierAgent(一)
4、知道控件以后,就可以使用click或者send_keys了,这里应该这么用。

1
2
3
4
5
6
7
sina_session(text="Dashboard", className='Button').tap()
# Set text
sina_session(text="Name").set_text("Hello")
# Clear text
sina_session(text="Name").clear_text()

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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的样式。