IOS自动化第二篇:WebDriverAgent安装、编译和appium使用
14-WebDriverAgent安装、编译
推荐使用Appium-mac-1.18.3.dmg,及时Appium-mac-1.18.2.dmg其他版本都是问题特别多
方式1:使用Appium-mac-1.18.3.dmg自带的WebDriverAgent
(使用1.15和1.18.0.1版本appium自带的WebDriverAgent在使用命令sh ./Scripts/bootstrap.sh进行编译时,始终都不成功)
1-进入appium安装目录下WebDriverAgent文件夹,具体路径参照自己的路径(不同appium版本,WebDriverAgent目录所在位置和名称都不一定一样)
cd /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-WebDriverAgent
(目测1.15版本之前都是活在这个目录下:cd /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent)
2-在WebDriverAgent(appium-WebDriverAgent)目录下执行以下两条命令
mkdir -p Resources/WebDriverAgent.bundle
sh ./Scripts/bootstrap.sh
****在使用命令sh ./Scripts/bootstrap.sh编译时会出现各种牛马鬼蛇的问题:
常见问题:
问题1:
报错信息:
Skipped installing YYCache.framework binary due to the error:
This usually indicates that project itself failed to compile
解决办法:
终端输入:
Brew uninstall -g carthage
Brew install carthage
Brew link --overwrite carthage
3-编译WebDriverAgent.xcodeproj
(使用Xcode打开WebDriverAgent(appium-WebDriverAgent)目目录下的WebDriverAgent.xcodeproj文件)
注意⚠️:进入项目后要编辑一些内容,请务必按照步骤全部修改。步骤见下图!!
- TARGETS->WebDriverAgentLib的Bundle Identifier更改为自己命名的Identifier和设置ios版本。(所有Identifier注意保持一致!!)
2、TARGETS->WebDriverAgentLib的Signing选择使用个人的证书。
3、TARGETS->WebDriverAgentLib的Product Bundle Identifier更改为自己命名的Identifier和ios deployment target 的版本号和目标手机的ios系统版本号一致。(所有Identifier注意保持一致!!)
4、PROJECT->WebDriverAgent的Product Bundle Identifier更改为自己命名的Identifierios deployment target 的版本号和目标手机的ios系统版本号一致。(所有Identifier注意保持一致!!)
5-ARGETS->WebDriverAgentRunner的Product Bundle Identifier更改为自己命名的Identifierios deployment target 的版本号和目标手机的ios系统版本号一致。(所有Identifier注意保持一致!!)
6、TARGETS->WebDriverAgentRunner的Signing选择使用个人的证书。
7-WebDriverAgent/WebDriverAgentRunner/info.plist的PBundle Identifier更改为自己命名(和前面几部中保存一致)
7、Device选择已连接的测试机
8、点击build按钮来测试,按照步骤设置后,可build succeeded~
9、测试机上安装证书,执行以下命令:
xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=测试机的udid' test
***udid获取方式:https://www.jianshu.com/p/c44d5c3424be
如果没有报错证明安装成功,同时手机上会安装一个WebDriverAgent软件。需要在手机设置->通用->设备管理->信任开发者。如下图:
**问题1:
报错信息:Messaging unqualified id
解决办法:(本人采用第二方法有效)
方法一:
打开终端进入webdriveagentr的目录,我的目录如下
xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=测试机udid' GCC_TREAT_WARNINGS_AS_ERRORS=0 test
命令中的id填入你自己设备的udid,等待构建完成,构建完成后,你的设备将会出现webdriverAgent的图标,表示构建成功。
如果方法一失败,可以尝试方法二
方法二:
找到如下文件
/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent/Configurations/ProjectSettins.xcconfig
将
WARNING_CFLAGS = $(inherited) -Weverything -Wno-objc-missing-property-synthesis -Wno-unused-macros -Wno-disabled-macro-expansion -Wno-gnu-statement-expression -Wno-language-extension-token -Wno-overriding-method-mismatch -Wno-missing-variable-declarations -Rno-module-build -Wno-auto-import -Wno-objc-interface-ivars -Wno-documentation-unknown-command -Wno-reserved-id-macro -Wno-unused-parameter -Wno-gnu-conditional-omitted-operand -Wno-explicit-ownership-type -Wno-date-time -Wno-cast-align -Wno-cstring-format-directive -Wno-double-promotion -Wno-partial-availability
修改为
WARNING_CFLAGS = $(inherited) -Weverything -Wno-objc-missing-property-synthesis -Wno-unused-macros -Wno-disabled-macro-expansion -Wno-gnu-statement-expression -Wno-language-extension-token -Wno-overriding-method-mismatch -Wno-missing-variable-declarations -Rno-module-build -Wno-auto-import -Wno-objc-interface-ivars -Wno-documentation-unknown-command -Wno-reserved-id-macro -Wno-unused-parameter -Wno-gnu-conditional-omitted-operand -Wno-explicit-ownership-type -Wno-date-time -Wno-cast-align -Wno-cstring-format-directive -Wno-double-promotion -Wno-partial-availability -Wno-objc-messaging-id
再次build即可成功
参考链接:https://www.cnblogs.com/iamluoli/p/11083496.html
**问题2:
报错信息:
pium-xcuitest-driver/WebDriverAgent/Carthage/Build/iOS/RoutingHTTPServer.framework/Headers/RouteResponse.h:8:1: 'assign' property of object type may become a dangling reference; consider using 'unsafe_unretained'
解决方式:将 assign 改为 strong ,并重新build,如下的两个错误同步解决掉(或:修改assign为unsafe_unretained)
参考链接:https://www.jianshu.com/p/d4609fbb6a87
**问题3:
报错信息:
Undefined symbols for architecture arm64: "_OBJC_CLASS_$_XCElementSnapshot", referenced from: l_OBJC_$_CATEGORY_XCElementSnapshot_$_FBIsVisible in XCUIElement+FBIsVisible.o l_OBJC_$_CATEGORY_XCElementSnapshot_$_FBUID in XCUIElement+FBUID.o l_OBJC_$_CATEGORY_XCElementSnapshot_$_WebDriverAttributes in XCUIElement+FBWebDriverAttributes.o objc-class-ref in XCUIElement+FBWebDriverAttributes.o objc-class-ref in XCUIElement+FBUtilities.o l_OBJC_$_CATEGORY_XCElementSnapshot_$_FBAccessibility in XCUIElement+FBAccessibility.o l_OBJC_$_CATEGORY_XCElementSnapshot_$_FBScrolling in XCUIElement+FBScrolling.o ... ld: symbol(s) not found forarchitecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
解决办法:
Add -Wl,-U,"_OBJC_CLASS_$_XCElementSnapshot" in other linker flags in WebDriverAgentLib target.
及:
参考链接:
https://stackoverflow.com/questions/52504743/webdriveragent-linker-command-failed-with-exit-code-1-use-v-to-see-invocation
**问题4:
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
参考链接:
https://blog.csdn.net/xlyrh/article/details/108410738
方式2:使用git上的WebDriverAgent
下载链接:git clone https://github.com/facebook/WebDriverAgent
其他步骤和一样(facebook的WDA在iOS 10 时代苹果已经废弃了,目前依然在更新的是Appium官方的WDA,官方链接如下https://github.com/appium/WebDriverAgent)
二 appium
1-启动app
打开软件“Appium”(不要升级版本)
输入127.0.0.1,点击Start Server
看到下图所示,就代表Appium启动成功了
现在来测试下是否可用:
点击“搜索”的图标
再点击Custom Server-》Saved Capability Sets 1-》test1-》Start Session
此时这个界面一直在加载,再观察苹果手机是否有弹出“信任”的提示,如下图所示,
点击“信任”
然后等待一会儿,苹果手机会自动打开“掌证宝”APP,同时Appium的界面也截屏了苹果手机“掌证宝”APP的界面,如下图所示
IOS自动化第二篇:WebDriverAgent安装、编译和appium使用相关推荐
- mac搭建ios自动化环境之WebDriverAgent配置
一.WebDriverAgent 1.简单介绍: WebDriverAgent是facebook为苹果公司开发的一款自动化测试工具,github上有下载资源:另外appium安装后也会自动安装自带的W ...
- ios自动化-Xcode、WebDriverAgent环境部署
环境准备: Mac电脑一台(更新到最新的macOS,此文档使用的为macOS12.3.1,Intel芯片) Xcode最新稳定版(此文档使用的为13.4.1) IOS设备 (此文档使用了10.3.3 ...
- 【MySQL入门指北】第二篇 MySQL安装
文章目录 一.安装MySQL前的准备工作 1.关闭防火墙和selinux 二.MySQL相关下载地址 三.安装步骤 1.下载软件包 2.安装相关依赖软件 3.安装MySQL服务器 4.启动MySQL服 ...
- 第二篇python安装(1)
python初学基础篇 1 嗨喽!各位观看我文章的大佬们,我是你们没事就喜欢折腾自己来玩的小可爱~~ 我又回来继续更新啦,虽然出了点小问题导致我周六周日没有更新,但是我坚挺的又出现在你们的面前,好啦, ...
- 接口自动化-第二篇(python+requests)
接口自动化一个很重要的库 requests,它是用来发送http协议请求和接受http协议响应的第三方库. 1.安装requests pip install requests 2. 了解request ...
- RedHat5.2下Linux Oracle 10g ASM 安装详细实录-第二篇-ASM安装
五.安装ASM 1.在oracle网站下载支持包: http://www.oracle.com/technology ... x/asmlib/rhel5.html 2.根据linux内核下载相应的a ...
- IOS设计模式第二篇之单例设计模式
现在我们的组件已经有组织了.你需要从其他的地方得到数据,你也可以创建一个API类管理数据这个下个设计模式单例里面介绍. 这个单例设计模式确保这个类仅仅拥有一个实例,并且为这个实例提供一个全局的访问点. ...
- iOS自动化笔记(一)WebDriverAgent安装与使用
准备条件 首先准备一台Mac电脑和一台iPhone手机(尽可能使用Mac和iPhone真机) WebDriverAgent安装与使用 想要进行iOS自动化测试,必须在真机iPhone上安装WDA,安装 ...
- iOS自动化之WDA(WebDriverAgent)安装及踩坑(本文仅作经验记录,原WDA已经废弃,详细请看更新说明)
Table of Contents 更新说明 一.WDA介绍 二.部署环境 三.安装步骤 1.安装基础依赖 2.下载WDA 3.执行bootstrap.sh 4.打开WebDriverAgent工程配 ...
最新文章
- Linux系统安装gcc/g++详细过程
- 查阅文献时向原作者发邮件要文献的简单模板
- Apple Pay,呸!
- 盘点:2019年最赚钱的10种编程语言
- 部门树形结构,使用Treeview控件显示部门
- ASP.NET Core on K8S学习初探(2)
- 2020年度中国人工智能学会优秀博士学位论文获奖名单正式出炉
- 【算法】给定一个链表,判断链表中是否有环
- ubuntu关闭自动更新、打开 ubuntu 的 apport 崩溃检测报告功能
- [转载] Python 字典(Dictionary) get()方法
- python json()是什么函数_python 处理 json 四个函数dumps、loads、dump、load的区别
- Jquery实现的几款漂亮的时间轴
- 【算法】排序_归并排序
- 【传智播客】Javaweb程序设计任务教程 黑马程序员 第一章 课后答案
- 检查计算机设备报告书,关于计算机安全检查的自查报告范文
- 解决linux下syslog文件过大
- android 生成bks_android双向认证(自签名证书) bks的生成方法
- 记录::Opencv调用tensorflow2.x-Keras模型
- 使用WPS生成二维码,手机扫码访问主机的资源
- python玩王者荣耀皮肤_python 王者荣耀皮肤高清图片下载 附源码
热门文章
- C语言——图解冒泡排序算法
- Python爬虫期末设计(内含源代码及实验报告)
- 多用户的计算机操作系统,多用户多任务操作系统是一种什么操作系统?
- 分布式系统原理-世界上只有一种共识算法,那就是Paxos
- android+wifi驱动移植,全志平台ap6476 wifi模组调试(2)驱动移植 配置文件修改
- dr计算机操作,【dr操作规程】_DR操作规程
- 正点原子USMART调试学习笔记(二)
- 抖音服务器维护播放为零,抖音0播放怎么回事,抖音0播放是被屏蔽了吗,为什么抖音播放量一直都是0...
- 用搞笑的方式浅谈怎么做好一款产品!
- LaTex, 矩阵方程插入 和图片表格以及公式跨栏插入