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 ...
随机推荐
- Python模块学习之bs4
1.安装bs4 我用的ubuntu14.4,直接用apt-get命令就行 sudo apt-get install Python-bs4 2.安装解析器 Beautiful Soup支持Python标 ...
- 【POJ3615】Cow Hurdles 最短路,你若LCA,我仍不拦你。
NOIP2013货车运输.仅仅只是数据范围小了很多. 不到150s打完而且AC. . 额.当然.我写的是Floyd. 写LCA的真过分. #include <cstdio> #includ ...
- Keras之序贯(Sequential)模型
序贯模型(Sequential) 序贯模型是多个网络层的线性堆叠. 可以通过向Sequential模型传递一个layer的list来构造该模型: from Keras.models import Se ...
- go——字典(二)
字典是一种数据结构,用于存储一系列无序的键值对. 字典是基于键来存储值.字典功能强大的地方是能够基于键快速检索数据. 键就像索引一样,指向与键关联的值. 1.内部实现 字典是一个集合,可以使用类似处理 ...
- 常用模块(random,os,json,pickle,shelve)
常用模块(random,os,json,pickle,shelve) random import random print(random.random()) # 0-1之间的小数 print(rand ...
- cdoj1328卿学姐与诡异村庄
地址:http://acm.uestc.edu.cn/#/problem/show/1328 题目: 卿学姐与诡异村庄 Time Limit: 4500/1500MS (Java/Others) ...
- LeetCode 1. Two Sum 找到两数字求和索引集合
https://leetcode.com/problems/two-sum/description/ 第一种方法 遍历查找 // // main.m // HFCDemo // // Created ...
- Javascript 中 == 与=== 对比
首先,== equality 等同,=== identity 恒等. ==, 两边值类型不同的时候,要先进行类型转换,再比较. ===,不做类型转换,类型不同的一定不等. 下面分别说明: 先说 === ...
- Python学习笔记之Python的enumerate函数
Python 的 enumerate() 函数就像是一个神秘的黑箱,你无法简单地用一句话来概括这个函数的作用与用法. enumerate() 函数属于非常有用的高级用法,而对于这一点,很多初学者甚至中 ...
- Django---自定义admin组件思维导图