1、WDA介绍

WebDriverAgent 在 iOS 端实现了一个 WebDriver server ,借助这个 server 我们可以远程控制 iOS 设备。你可以启动、杀死应用,点击、滚动视图,或者确定页面展示是否正确。

facebook的WDA在iOS 10 时代苹果已经废弃了,目前依然在更新的是Appium官方的WDA,官方链接如下:https://github.com/appium/WebDriverAgent,安装配置和facebook类似,配置好签名证书即可,不需要修改代码,也不需要修改Bundle ID.如果想查看iOS的应用界面,安装使用Appium的Inspector即可

2、部署环境

OS: 11.6

Xcode:13 (需要系统更新最新才能在appstore下载xcode)

3、安装步骤

1、安装基础依赖
brew install git

brew install carthage

2、下载WDA 
安装appiium就带有WebDriverAgent (/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent)

3、执行bootstrap.sh

./Scripts/bootstrap.sh

ERROR in ./js/app.jsModule parse failed: /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/Inspector/js/app.js Unexpected token (67:6)You may need an appropriate loader to handle this file type.SyntaxError: Unexpected token (67:6)    at Parser.pp$4.raise (/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/Inspector/node_modules/webpack/node_modules/acorn/dist/acorn.js:2221:15)    at Parser.pp.unexpected (/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/Inspector/node_modules/webpack/node_modules/acorn/dist/acorn.js:603:10)

解决方法:cd /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/Inspector/webpack.config.js

webpack.config.js 文件里去掉 exclude: /node_modules/(忽略node_modules)

修改前:

module: {
loaders: [
{ test: /\.js?$/, loaders: ['babel-loader'], exclude: /node_modules/ },
{ test: /\.js?$/, loaders: ['babel-loader'] },
{ test: /\.css?$/, loader: 'style-loader!css-loader' },
]
},

修改后:

loaders: [
{ test: /\.js?$/, loaders: ['babel-loader'] },
{ test: /\.css?$/, loader: 'style-loader!css-loader' },
]

重新执行 ./Scripts/bootstrap.sh

4、打开WebDriverAgent工程配置

终端cd /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent,通过open  WebDriverAgent.xcodeproj(xcdoe打开方式)

1、ios自动化所需的WebDriverAgent需要签名产生,找开发要p12证书和描述文件.mobileprovision

  1、点击p12输入密码之后,要先选中登陆,导入p12文件即可

  2、双击.mobileprovision描述文件,会自动安装到xcode中

2、选择WebDriverAgent进入

3、除了tv_os的target都进行重签配置,如下图所示修改配置

WebDriverAgentLib 如下图:

WebDriverAgentRunner 配置如下图:

检查WebDriverAgentRunner-signing&Capabilities

4、选择product,scheme选择WebDriverRunner

5、构建项目build

选择iphone

点击build

6、检测是否安装wda成功

由于国内手机设置需要转发下端口,命令行执行:iproxy 8300 8100

然后再浏览器里请求:http://localhost:8300/,如果返回一串json字符,那么WDA安装成功了

http://localhost:8300/status可以查看当前设备的状态,获取与wda通信session id

http://localhost:8300/inspector 打开WDA 的inspector,在该界面点击home则手机返回主页面

iOS自动化之WDA(WebDriverAgent)安装的更多相关文章

  1. 【Mac + Python3.6 + ATX基于facebook-wda】之IOS自动化(一):WebDriverAgent安装

    此篇介绍如何安装WebDriverAgent,下一篇介绍facebook-wda库的安装使用以及自动化脚本的开发. 前言: 对于iOS的应用的测试,如果不需要用到图像识别,推荐使用这个项目facebo ...

  2. 【Mac + Python3.6 + ATX基于facebook-wda】之IOS自动化(三):facebook-wda库--API学习以及附录:Github上对WDA的问题解答

    下面简单介绍facebook-wda库--API的学习 import wda # debug模式,会在run运行时控制台生成消息 wda.DEBUG = False # False 关闭,True开启 ...

  3. 基于facebook-wda的iOS自动化操作实践记录

    [本文出自天外归云的博客园] 原理 对于iOS自动化操作,主要靠WebDriverAgent来完成.在Mac电脑上连接真机iPhone,运行WebDriverAgentRunner会在Mac端启动WD ...

  4. 初识ios自动化(一)

    Appium进行自动化测试有两个好处: 1. Appium在不同平台中使用了标准的自动化APIs,所以在跨平台时,不需要重新编译或者修改自己的应用. 2. Appium支持Selenium WebDr ...

  5. iOS自动化环境搭建——macaca

    macaca-java for ios 自动化环境搭建 基础原理解析:https://testerhome.com/topics/6608 一.环境搭建 1.安装eclipse; -----Java开 ...

  6. 一招让 IOS 自动化化快的飞起

    前言 最近在做IOS自动化测试,IOS的Appium环境都配置OK,Demo脚本运行没有问题,多开执行没有问题,IOS安卓统一平台调度集成没有问题,可以进行自动化测试.课时真正执行用例时发现个严重问题 ...

  7. Jenkins+ Xcode+ 蒲公英 实现IOS自动化打包和分发

    Jenkins+ Xcode+ 蒲公英 实现IOS自动化打包和分发 直接入正题: Screen Shot 2015-09-18 at 16.56.20.png Mac上安装Jekins jekins下 ...

  8. Mac Jenkins+fastlane 简单几步实现iOS自动化打包发布 + jenkins节点设置

    最近在使用jenkins 实现ios自动化打包发布蒲公英过程实践遇到了一些坑,特意记录下来方便有需要的人. 进入正题: 一.安装Jenkins 1.Mac上安装Jenkins 遇到到坑 因为 Jenk ...

  9. iOS自动化打包 Jenkins+Gitlab+Fastlane+蒲公英+钉钉

    前言 这两天花时间整理一下自动化打包的整套流程,现在iOS端的整套流程是没有问题了,这个过程中踩得坑也的确是特别多,所以这周末把整个流程整理一下,总结出来这篇文章,希望能对有需要的小伙伴有点点帮助. ...

随机推荐

  1. call bind apply的区别

    call() 和apply()的第一个参数相同,就是指定的对象.这个对象就是该函数的执行上下文. call()和apply()的区别就在于,两者之间的参数. call()在第一个参数之后的 后续所有参 ...

  2. HCNP Routing&Switching之OSPF LSA类型(二)

    前文我们了解了OSPF的一类.二类.三类LSA,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15209829.html:今天我们来聊一聊OSPF的四类和五类L ...

  3. Redis-技术专区-帮从底层彻底吃透RDB技术原理

    每日一句 低头是一种能力,它不是自卑,也不是怯弱,它是清醒中的嬗变.有时,稍微低一下头,或者我们的人生路会更精彩. 前提概要 Redis是一个的键-值(K-V)对的内存数据库服务,通常包含了任意个非空 ...

  4. Qt5之事件学习总结

    首先要明白一个概念,事件和信号并不一样,比如单击一下鼠标,就会产生鼠标事件(QMouseEvent),是对这个动作的描述,而因为按钮被按下了,按钮会发出clicked()的单击信号(是按钮控件产生的) ...

  5. docker run命令指定GPU多个显卡不生效的问题解决和代码示例

    问题描述:我有一个程序(app),需要用到显卡来跑.原本的部署方式 是直接修改程序的配置文件来指定要用到的显卡. 这是我服务器的显卡信息:总共3卡 分别是 0卡 ,1卡和2卡. [root@k8s-r ...

  6. vue ele 表单规则校验俩次输入密码是否相同,校验手机号 ( 前端小课堂:小细节,大进步 )

     这个是密码的拦截 : [{ required: true, validator: validatePass4, trigger: "blur" }],   同级关系下写下方法,类 ...

  7. Linux内核中的Workqueue机制分析

    1. 什么是workqueue Linux中的workqueue(工作队列)主要是为了简化在内核创建线程而设计的.通过相应的工作队列接口,可以使开发人员只关心与特定功能相关的处理流程,而不必关心内核线 ...

  8. Swagger-初见

    目录 Swagger简介 SpringBoot集成Swagger 配置Swagger 配置扫描接口 配置Swagger开关 配置API分组 实体配置 常用注解 Swagger简介 前后端分离 前端 - ...

  9. 树莓派OLED模块的使用教程大量例程详解

    简介 Python有两个可以用的OLED库 [Adafruit_Python_SSD1306库]->只支持SSD1306 [Luma.oled库]->支持SSD1306 / SSD1309 ...

  10. PHP的OpenSSL加密扩展学习(三):证书操作

    关于对称和非对称的加密操作,我们已经学习完两篇文章的内容了,接下来,我们就继续学习关于证书的生成. 生成 CSR 证书签名请求 CSR 是用于生成证书的签名请求,在 CSR 中,我们需要一些 dn 信 ...