前面我们已经安装好了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的使用的更多相关文章

  1. iOS自动化探索(三)WebDriverAgent Python Client

    之前我们在终端试着调用过WDA API, 今天我们在看一个Python封装的api库 https://github.com/openatx/facebook-wda 安装方式(一): pip inst ...

  2. 【Mac + Python3.6 + ATX基于facebook-wda】之IOS自动化(二):安装facebook-wda库并编写简易自动化测试脚本

    上一篇介绍完如何安装WDA,接下来开始正式安装开发库并编写自动化脚本. 目录: 一.安装facebook-wda库 二.通过WEditor定位元素 三.附录:学习资料 一.安装facebook-wda ...

  3. iOS自动化探索(一)WebDriverAgent安装

    WebDriverAgent FaceBook推出的一款iOS移动测试框架, 支持真机和模拟器, 同时支持USB, 官方是这样介绍的: https://github.com/facebook/WebD ...

  4. iOS自动化探索(十)代码覆盖率统计

    iOS APP代码覆盖率统计 今年Q3季度领导给加了个任务要做前后端代码覆盖率统计, 鉴于对iOS代码代码比较熟就选择先从iOS端入手,折腾一整天后终于初步把流程跑通了记录如下 覆盖率监测的原理 Xc ...

  5. iOS自动化探索(九)使用Jenkins自动化打包并发布iOS App

    继前一篇: Mac环境下安装Jenkins Jenkins安装好后, 我们试着创建一个iOS自动打包并发布的任务 iOS App构建必须在MAC上面使用xcode进行,所以我们要安装下xcode集成插 ...

  6. iOS自动化探索(七)自动化测试框架pytest - 测试报告

    这里我们单独来看下关于如何生存测试报告 准备测试代码如下: #coding: utf- import pytest @pytest.fixture() def login(): print '输入账号 ...

  7. iOS自动化探索(六)自动化测试框架pytest - fixtures

    Fixture介绍 fixture是pytest特有的功能,它用pytest.fixture标识,定义在函数前面.在编写测试函数的时候,可以将此函数名称做为传入参数,pytest将会以依赖注入方式,将 ...

  8. iOS自动化探索(五)自动化测试框架pytest - Assert断言的使用

    使用assert语句进行断言 pytest允许使用标准的python assert语法,用来校验expectation and value是否一致 代码演示: def func(): def test ...

  9. iOS自动化探索(四)自动化测试框架pytest - 安装和使用

    自动化测试框架 - pytest pytest是Python最流行的单元测试框架之一, 帮助更便捷的编写测试脚本, 并支持多种功能复杂的测试场景, 能用来做app测试也能用作函数测试 官方文档: ht ...

随机推荐

  1. Eclipse插件--一次copy多个文件的相对路径路径

    因为工作需要, 在网上找了很多插件, 本来有个easyTools应该可以, 但下载文件好像没了. 只好自己动手搞了一个简单的, 暂时一个复制文件相对路径的功能, 有同样需求的童鞋, 可以试一下 plu ...

  2. MB11 生鲜项目原料消耗发货功能

    *&---------------------------------------------------------------------* *& 程序名: ZDQFI_925 * ...

  3. python全栈开发从入门到放弃之字符编码

    一 了解字符编码的知识储备   1. 计算机基础知识(三幅图)       2. 文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就打开了启动了一个进程,是在内存中 ...

  4. 用Tchromium替换webbrowser

    用Tchromium替换webbrowser 用惯了EmbeddedWB,不想换,但是IE内核一直存在内存泄漏问题,没办法,只有寻找替代品了. 要把用习惯的EmbeddedWB换成完全不一样的TChr ...

  5. [笔记]Python的调试器pudb简易教程

    Linux下运行python脚本,pudb是一个不错的调试器. 语法高亮,断点,调用栈,命令行,都有了,如下图. [安装] pip install pudb [使用] pudb xxx.py [快捷键 ...

  6. Java分布式:JWT(JSON Web Tokens)

    Java分布式:JWT(JSON Web Tokens) 0.优势 Session方式存储用户状态占用大量服务器内存.一般而言,大型应用还需要借助一些KV数据库和一系列缓存机制来实现Session的存 ...

  7. LeetCode:课程表II【210】

    LeetCode:课程表II[210] 题目描述 现在你总共有 n 门课需要选,记为 0 到 n-1. 在选修某些课程之前需要一些先修课程. 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一 ...

  8. 20包含min函数的栈

      题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数.   建一个辅助栈,把每次最小最小的元素(之前最小元素,与当前新入栈的元素比较)放在辅助栈里.   import j ...

  9. Kotlin学习记录3

    参考我的博客:http://www.isedwardtang.com/2017/09/04/kotlin-primer-3/

  10. C#属性器Get和Set

    public sealed class classroom { private List<string> student = new List<string>(); priva ...