iOS自动化探索(二)WDA API的使用
前面我们已经安装好了WebdriverAgent, 现在可以用Facebook官方提供的API来进行一些操作
WDA API官方页面:
https://github.com/facebook/WebDriverAgent/wiki/Queries
如果在终端运行的话可以使用curl来调用API,需要搭配json_header + device_url + api组成,其中
json_header一般是: "Content-Type: application/json"
device_url一般是: http://localhost:8100/*
下面我们试试调用这些API
- 功能: 查询可服务状态(Checking Service Status)
- API: curl -X GET $JSON_HEADER $DEVICE_URL/status
使用示范:
- Jackeys-MacBook-Pro:~ jackey$ curl -X GET -H "Content-Type: application/json" -d "" http://localhost:8100/status
- {
- "value" : {
- "state" : "success",
- "os" : {
- "name" : "iOS",
- "version" : "11.2.1"
- },
- "ios" : {
- "simulatorVersion" : "11.2.1",
- "ip" : "192.168.1.5"
- },
- "build" : {
- "time" : "Dec 25 2018 11:48:43"
- }
- },
- "sessionId" : "FB941AE9-551D-437E-A376-191DDDB354FB",
- "status" :
- }Jackeys-MacBook-Pro:~ jackey$
- 功能:打开会话并开启APP(Session handling)
- API: curl -X POST $JSON_HEADER -d "{\"desiredCapabilities\":{\"bundleId\":\"com.apple.mobilesafari\"}}" $DEVICE_URL/session
使用示范:
- Jackeys-MacBook-Pro:~ jackey$ curl -XPOST -H "Content-Type: application/json" -d "{\"desiredCapabilities\":{\"bundleId\":\"NOVA.ProductDemo\"}}" http://localhost:8100/session
- {
- "value" : {
- "sessionId" : "C7844276-1CB0-4165-9621-65B9B1E10E64",
- "capabilities" : {
- "device" : "iphone",
- "browserName" : "ProductDemo",
- "sdkVersion" : "11.2.1",
- "CFBundleIdentifier" : "NOVA.ProductDemo"
- }
- },
- "sessionId" : "C7844276-1CB0-4165-9621-65B9B1E10E64",
- "status" :
- }Jackeys-MacBook-Pro:~ jackey$
- 功能:查询当前会话(Querying current session)
- API: curl -X GET $JSON_HEADER $DEVICE_URL/session/$SESSION_ID
使用示范:
- Jackeys-MacBook-Pro:~ jackey$ curl -X GET -H "Content-Type: application/json" -d "" http://localhost:800/session/C7844276-1CB0-4165-9621-65B9B1E10E64
- {
- "value" : {
- "sessionId" : "C7844276-1CB0-4165-9621-65B9B1E10E64",
- "capabilities" : {
- "device" : "iphone",
- "browserName" : "ProductDemo",
- "sdkVersion" : "11.2.1",
- "CFBundleIdentifier" : "NOVA.ProductDemo"
- }
- },
- "sessionId" : "C7844276-1CB0-4165-9621-65B9B1E10E64",
- "status" :
- }Jackeys-MacBook-Pro:~ jackey$
- 功能:关闭会话并关闭程序(Removing session and kill application)
- API: curl -X DELETE $JSON_HEADER $DEVICE_URL/session/$SESSION_ID
使用范例:
- Jackeys-MacBook-Pro:~ jackey$ curl -X DELETE -H "Content-Type: application/json" -d "" http://localhos:8100/session/C7844276-1CB0-4165-9621-65B9B1E10E64
- {
- "value" : {
- },
- "sessionId" : "406A1A5B-0164-4DA2-BFD9-051155F8B4B2",
- "status" :
- }Jackeys-MacBook-Pro:~ jackey$
- 功能:打开inspector
- API: $DEVICE_URL/inspector
使用范例:
- http://localhost:8100/inspector
- 功能:返回home screen
- API: curl -X POST $JSON_HEADER -d "" $DEVICE_URL/wda/homescreen
使用范例:
- Jackeys-MacBook-Pro:~ jackey$ curl -X POST -H "Content-Type: application/json" -d“” http://localhost:8100/wda/homescreen
- {
- "value" : "Error Domain=com.facebook.WebDriverAgent Code=1 \"Timeout waiting until SpringBoard is visible\" UserInfo={NSLocalizedDescription=Timeout waiting until SpringBoard is visible}",
- "sessionId" : "967066CF-E504-4DAA-B18D-86A0EF0AD53A",
- "status" :
- }Jackeys-MacBook-Pro:~ jackey$
- 功能:指定时间后退出app
- API: curl -X POST $JSON_HEADER -d "{\"duration\":3}" $DEVICE_URL/session/$SESSION_ID/wda/deactivateApp
更多参考:https://github.com/facebook/WebDriverAgent/wiki/Queries
iOS自动化探索(二)WDA API的使用的更多相关文章
- iOS自动化探索(三)WebDriverAgent Python Client
之前我们在终端试着调用过WDA API, 今天我们在看一个Python封装的api库 https://github.com/openatx/facebook-wda 安装方式(一): pip inst ...
- 【Mac + Python3.6 + ATX基于facebook-wda】之IOS自动化(二):安装facebook-wda库并编写简易自动化测试脚本
上一篇介绍完如何安装WDA,接下来开始正式安装开发库并编写自动化脚本. 目录: 一.安装facebook-wda库 二.通过WEditor定位元素 三.附录:学习资料 一.安装facebook-wda ...
- iOS自动化探索(一)WebDriverAgent安装
WebDriverAgent FaceBook推出的一款iOS移动测试框架, 支持真机和模拟器, 同时支持USB, 官方是这样介绍的: https://github.com/facebook/WebD ...
- iOS自动化探索(十)代码覆盖率统计
iOS APP代码覆盖率统计 今年Q3季度领导给加了个任务要做前后端代码覆盖率统计, 鉴于对iOS代码代码比较熟就选择先从iOS端入手,折腾一整天后终于初步把流程跑通了记录如下 覆盖率监测的原理 Xc ...
- iOS自动化探索(九)使用Jenkins自动化打包并发布iOS App
继前一篇: Mac环境下安装Jenkins Jenkins安装好后, 我们试着创建一个iOS自动打包并发布的任务 iOS App构建必须在MAC上面使用xcode进行,所以我们要安装下xcode集成插 ...
- iOS自动化探索(七)自动化测试框架pytest - 测试报告
这里我们单独来看下关于如何生存测试报告 准备测试代码如下: #coding: utf- import pytest @pytest.fixture() def login(): print '输入账号 ...
- iOS自动化探索(六)自动化测试框架pytest - fixtures
Fixture介绍 fixture是pytest特有的功能,它用pytest.fixture标识,定义在函数前面.在编写测试函数的时候,可以将此函数名称做为传入参数,pytest将会以依赖注入方式,将 ...
- iOS自动化探索(五)自动化测试框架pytest - Assert断言的使用
使用assert语句进行断言 pytest允许使用标准的python assert语法,用来校验expectation and value是否一致 代码演示: def func(): def test ...
- iOS自动化探索(四)自动化测试框架pytest - 安装和使用
自动化测试框架 - pytest pytest是Python最流行的单元测试框架之一, 帮助更便捷的编写测试脚本, 并支持多种功能复杂的测试场景, 能用来做app测试也能用作函数测试 官方文档: ht ...
随机推荐
- 在VMW里安装Ghost操作系统遇到的问题及解决的办法
条件:Ghost系列系统镜像文件 遇到的问题:1.导入镜像文件时提示“无法检测此光盘映像中的操作系统”: 2.分区时提示“ezboot kernel not found” 解决办法:1.直接先创建一个 ...
- Python(进程池与协程)
1.进程池与线程池: 为什么要用“池”:池子使用来限制并发的任务数目,限制我们的计算机在一个自己可承受的范围内去并发地执行任务 池子内什么时候装进程:并发的任务属于计算密集型 池子内什么时候装线程:并 ...
- n个数里选出m个不重复的数
void change(int *p,int a,int b) { int tmp = *(p + a); *(p + a) = *(p + b); *(p + b) = tmp; } int mai ...
- java执行cmd命令和linux命令
文章出处http://blog.csdn.net/xh16319/article/details/17302947 一:window下执行cmd指定 一:window下执行cmd指定 程序例子: [j ...
- 本地连不上远程mysql数据库(1)
Ubuntu 16.04下开启Mysql 3306端口远程访问 0. 前言 网上看到很多开启Mysql远程访问端口,修改的配置文件我都没有找到. 特意查看了我的Linux版本 $ sudo lsb ...
- PAT 天梯赛 L1-003. 个位数统计
题目链接 https://www.patest.cn/contests/gplt/L1-003 题意 计算每个不同数字出现的次数 思路 可以用 MAP标记, 也可以直接用数字 存 AC代码 #incl ...
- ZOJ - 3593 One Person Game (扩展欧几里得)
题意:一个人在坐标A,要前往坐标B的位置.可以往左或往右走a,b,a+b个单位,求到达B的最小步数. 分析:扩展欧几里得算法求解线性方程的套路不变.令C=fabs(A-B),c = a+b, 扩展gc ...
- linux中相关服务不能访问的排错技巧
Linux相关服务不能访问的排错步骤,以HTTP服务为例: 一.服务端排查思路: 1.检查SELinux是否关闭(针对CentOS6系统) (1)临时关闭 setenforce 0 (2 ...
- unity,如何手动或者使用代码更换材质
在unity中,我们可能需要更换怪物的贴图,来达到以下效果 方法1:手动配置 找到自己配置好的扩展名为.mat的文件,在怪物的节点找到带Mesh Render的子元素,将其拖放到如图位置 方法2:代码 ...
- 优秀 H5 案例收集 vol.3(不定期更新)
上期浏览:Vol.1 Vol.2 爱的不同定义,五笔连成爱http://news.163.com/special/fdh5_valentines/ 世界华语悬疑文学大赛—下一位悬疑大师,就是你!h ...