Table of Contents

更新说明

一、WDA介绍

二、部署环境

三、安装步骤

1、安装基础依赖

2、下载WDA

3、执行bootstrap.sh

4、打开WebDriverAgent工程配置

5、编译执行WebDriverAgentRunner

四、安装完成检查



更新说明

facebook的WDA在iOS 10 时代苹果已经废弃了,目前依然在更新的是Appium官方的WDA,官方链接如下:

https://github.com/appium/WebDriverAgent

安装配置和facebook类似,配置好签名证书即可,不需要修改代码,也不需要修改Bundle ID

如果想查看iOS的应用界面,安装使用Appium的Inspector即可,亲测可用(2020年11月2日)

一、WDA介绍

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

特点:

  • Works with device & simulator
  • Implements most of WebDriver Spec
  • Implements part of Mobile JSON Wire Protocol Spec
  • USB support for devices
  • Inspector endpoint with friendly user interface to inspect current device state
  • Easy development cycle as it can be launched & debugged directly via Xcode
  • Unsupported yet, but works with tvOS & OSX

二、部署环境

OS: 10.15.6

Xcode: 11.7 (Build version 11E801a)

参考文档:https://github.com/facebookarchive/WebDriverAgent

三、安装步骤

1、安装基础依赖

brew install git

brew install carthage

2、下载WDA

执行命令:git clone https://github.com/facebookarchive/WebDriverAgent.git

3、执行bootstrap.sh

cd WebDriverAgent

./Scripts/bootstrap.sh

注:执行可能会报错,错误内容如下:

ERROR in ./js/app.js
Module parse failed: /Applications/Appium.app/Contents/Resources/app/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)

解决方法:修改WebDriverAgent/Inspector/webpack.config.js这个文件,删除下文“, exclude: /node_modules/ ”,再次执行sh

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

4、打开WebDriverAgent工程配置

使用Xcode打开WebDriverAgent这个工程,双击项目路径下WebDriverAgent.xcodeproj

(1)修改WebDriverAgentRunner这个项目的Bundle ID,这里可以自定义命名(注意id命名不能重复)

(2)导入证书(由于我没有开发者证书,提供给开发组Bundle ID,借用导出的p12和依赖文件)

注:这里使用提供的依赖文件编译依然失败,

错误信息:building WebDriverAgent is asking for a [设定的包名].xctrunner bundle ID

解决方式:更换Team证书,参考如下链接:https://github.com/appium/appium/pull/14233

5、编译执行WebDriverAgentRunner

(3)选择Product -> Scheme -> WebDriverAgentRunner

(4)选择Product -> Destination -> 连接的iOS手机名称(这里使用的真机)

(5)运行运行Product -> Test,安装成功后手机上会出现WebDriverAgent的应用图标

注1:在编译的过程中会报错,错误信息如下

1)Semantic issue: ‘assign‘ property of object type may become a dangling reference; consider using ‘unsafe_unretained‘
2)Parse Issue: Could not build module ‘RoutingHTTPServer‘

解决方法:双击,进入到报错代码处,修改assign为unsafe_unretained,执行clean and build,错误就没有了

注2:Build成功后,执行Test会抛出异常,错误信息如下:

2020-06-12 19:57:31.235846-0700 WebDriverAgentRunner-Runner[1849:82950] Running tests...
Test Suite 'All tests' started at 2020-06-12 19:57:32.209
Test Suite 'WebDriverAgentRunner.xctest' started at 2020-06-12 19:57:32.212
Test Suite 'UITestingUITests' started at 2020-06-12 19:57:32.213
Test Case '-[UITestingUITests testRunner]' started.t =     0.00s Start Test at 2020-06-12 19:57:32.226t =     0.01s Set Up
2020-06-12 19:57:32.240001-0700 WebDriverAgentRunner-Runner[1849:82950] -[UITestingUITests internalImplementation]: unrecognized selector sent to instance 0x283250c30t =     0.05s     Assertion Failure: <unknown>:0: failed: caught "NSInvalidArgumentException", "-[UITestingUITests internalImplementation]: unrecognized selector sent to instance 0x283250c30"
(

问题原因是FBFailureProofTestCase中internalImplementation这个API在XCode11.4版本以后已经删除

解决方法:打开WebDriverAgent/WebDriverAgentLib/Utilities/FBFailureProofTestCase.m,修改26~36行,添加如下红色代码

if ([self respondsToSelector:@selector(internalImplementation)]) {
      self.internalImplementation =
        (_XCTestCaseImplementation *)[FBXCTestCaseImplementationFailureHoldingProxy
                                      proxyWithXCTestCaseImplementation:self.internalImplementation];
    } else {
      self.shouldSetShouldHaltWhenReceivesControl = NO;
      self.shouldHaltWhenReceivesControl = NO;
    }

四、安装完成检查

由于国内手机设置需要转发下端口,命令行执行: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)安装及踩坑(本文仅作经验记录,原WDA已经废弃,详细请看更新说明)相关推荐

  1. cmd命令安装composer踩坑

    cmd命令安装composer踩坑 很多童鞋在依照composer官网 官网教程 用命令行安装composer时回踩到以下坑,却不知道如何解决 在此我分享下自己的经验,写个不好请多海涵 打开命令行执行 ...

  2. GPCC安装以及踩坑经历

    gpcc安装以及踩坑经历 官方下载地址文档 https://network.pivotal.io/products/pivotal-gpdb#/releases/29190 安装开始之前 chown ...

  3. ubuntu 20.04 安装软件踩坑

    ubuntu 20.04 安装软件踩坑 1.搜狗输入法 安装后需要重启一次 重启后讲sogoupinyin添加好,右上角如果没有搜狗就再重启一下 右上角出现了搜狗也是打不出中文的,因为没有安装依赖 安 ...

  4. Manjaro 安装配置踩坑

    Manjaro 安装配置踩坑 其实manjaro和arch的英文社区上都讲的很清楚, 推荐看英文原版资料. 制作USB安装器 参考资料 : Manjaro 官方User Guide 官网下载镜像 Li ...

  5. 安装 JupyterHub 踩坑指南 —— 如何通过 JupyterHub 实现多用户管理

    安装 JupyterHub 踩坑指南 JupyterHub 简介 Jupyter Notebook and JupyterLab Jupyter Notebook 简介 JupyterLab 简介 安 ...

  6. 加入域时出现以下错误 登陆失败 该目标账户名称不正确_微信支付踩坑合集:微信小程序支付失败是什么原因?持续更新...

    微信小程序开发的过程一定会遇到各种问题,最让人棘手的就是支付问题,因为没有支付做商城类似的小程序就没有办法完成最关键的一步.那么支付失败到底什么原因呢?一下子收集了几个错误类似,希望对你有帮助: No ...

  7. mac搭建ios自动化环境之WebDriverAgent配置

    一.WebDriverAgent 1.简单介绍: WebDriverAgent是facebook为苹果公司开发的一款自动化测试工具,github上有下载资源:另外appium安装后也会自动安装自带的W ...

  8. iOS自动化测试之Appium的安装和使用

    一.前言 因为需要配合测试同学处理自动化测试方面的东西,所以记录下来自己关于Appium的安装和使用,但是主要是关于安装的,因为安装真是遇到了很多坑,另外,我只是关注iOS App的测试,所以这里没有 ...

  9. Pytorch可视化工具tensorboardX(安装不踩坑)

    安装方法(如何不踩坑,已修改): 首先默认你已经安装好pytorch(如果木有,为什么点进来呢) 安装tensorboardX pip install tensorboardX 安装tensorflo ...

最新文章

  1. 重读TCP协议(3)
  2. 洛谷 P1013 进制位
  3. jqGrid使用整理
  4. 全球科技界最鼓舞人心领袖揭晓!马斯克第一,马云第五
  5. mysql直接执行文件格式_Windows 环境下执行 .sql 格式文件方式
  6. 域名该怎样选_注册域名该怎么选择域名
  7. Supervisor使用说明
  8. java中的Timer
  9. Repeater OnItemCommand 失效
  10. 斐讯盒子T1_【YYF固件】无语音实用版刷机固件及教程分享
  11. SDP的fmtp部分
  12. 利用diyUpload做多图片上传及预览
  13. android 微信地图定位失败,微信端H5使用百度地图定位获取当前位置安卓定位不准...
  14. 趣味计算机专业比赛,你hua我猜 以梦为马——计算机科学系第三届你画我猜趣味比赛...
  15. 【学习笔记】行人异常行为检测的综述
  16. 风电场气象服务器是什么系统,气象站资料在风电场前期工作中到底有多重要?...
  17. BPM软件_K2再度入选Gartner iBPMS MQ挑战者象限_全球领先的工作流引擎
  18. 10-3 查找王姓同学不学的课程的课程号
  19. SpringBoot设置默认主页
  20. OCH1510全极宽电压高灵敏霍尔开关

热门文章

  1. 硬件工程师必备技能之Variant
  2. 三星“逼供”:40张iPhone和iPad原型图片曝光
  3. linux学习——硬盘分区和格式化篇
  4. 可信执行环境(TEE)介绍
  5. 初级php程序员成长之路
  6. 智能烧水壶(Bluetooth LE版)——硬件设计篇
  7. 借Vue-iview样式修改,熟悉:before和:after伪类的用法
  8. 矩阵的列向右移动n个单位
  9. 《基于深度学习模型的非接触式面部视频记录技术用于心房颤动的检测》阅读笔记
  10. keil4新建第一个51单片机项目