之前用过 js 封装的 WebDriverAgent 的 macaca,然后就一直想尝鲜 WebDriverAgent-python 封装的 client 端,不经意间知道了网易大神写的 WebDriverAgent-python,他叫它为 wda。wda 传送门
纯 python 封装,那么该如何使用呢?
第一步:需要下载 WebDriverAgent 工程,它是一个开源工程。
下载git clone https://github.com/openatx/facebook-wda
第二步:安装 python 的 client 端,有两种方式。
pip install --pre facebook-wda
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()
sina_session(text="Name").set_text("Hello")
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的样式。