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 ...
随机推荐
- Mysql数据库(表)的导出和导入小结
Why? 有人因为想看导出的开房记录库文件,然后学会了Mysql数据库文件的导入操作~: 有人因为工作原因,要用到数据库的备份与导入,然后应需学会了骚操作~: 我因为~~emmm 想看某个导出的库文件 ...
- 【我的Android进阶之旅】Android插件化开发学习资料
1.目前开源的插件开发框架大致有哪些? 1. 任玉刚 的 dynamic-load-apk Github 地址:https://github.com/singwhatiwanna/dynamic-lo ...
- 我的Android进阶之旅------>解决错误: java.util.regex.PatternSyntaxException: Incorrect Unicode property
1.错误描述 今天使用正则表达式验证密码的时候,报了错误 java.util.regex.PatternSyntaxException: Incorrect Unicode property near ...
- hadoop namenode
存储文件系统元数据,例如:文件目录结构,不同文件的分块情况,每块存储在那个节点,权限等 这些元数据全部存储在内存中,所以,namenode要求内存比较大 hdfs在存文件的时候会按照块存储,每一块默认 ...
- [转]c# 画图中bitmap类处理出图片时,存储的注意事项
今天查找以前写的画图程序,想完善一下,发现 图片添加文字水印时候会有些模糊,特别是小字体的时候特别模糊, 经过一番调适,终于发现了问题 帖上代码,警示自己 System.Drawing.Image i ...
- 用pytesseract识别验证码报错
运行py文件出现下面报错 pytesseract.pytesseract.TesseractError: (1, 'Error opening data file \\Program Files\\T ...
- SetWindowText与SetWindowTextW
SetWindowTextW用于宽字符SetWindowText 根据定义的宏使用宽字符或者ansi 注意: _T 是自动进行 unicode/ansi版本匹配. 如 _T("aa&quo ...
- spring boot Rabbitmq集成,延时消息队列实现
本篇主要记录Spring boot 集成Rabbitmq,分为两部分, 第一部分为创建普通消息队列, 第二部分为延时消息队列实现: spring boot提供对mq消息队列支持amqp相关包,引入即可 ...
- git指令整理汇总
Git 1.git init 创建版本库,初始化 2.git add 向git添加文件,把文件添加到版本库 3.git log 告诉我们历史记录 4.git commit -m ‘’ 提交修改 ...
- Asp.Net MVC4+EF6 Code First 权限管理系统 源码下载
这个权限管理系统是基于在@TZHSWEET 的权限管理系统之上做的修改.@TZHSWEET 那个是DB first. 这个是Code First.源码下载:http://download.csdn.n ...