iOS远程真机之WebDriverAgent 安装使用完全指南
来源:互联网 发布:星座软件哪个好 编辑:程序博客网 时间:2024/05/16 13:44
iOS-remote是结合WebDriverAgent 和 ios-minicap 开源项目做出来的基于JAVA的iOS远程真机控制的项目。
基本思路可见:https://testerhome.com/topics/9681
然后安装iOS-minicap的步骤可见:https://testerhome.com/topics/10456
接下来我介绍一下iOS远程真机实现的核心——WebDriverAgent,简称WDA的安装使用过程
整个安装过程主要参考Testerhome的三篇文章(感谢社区各种意义上的帮助):
WebDriverAgent简介
iOS 真机如何安装 WebDriverAgent
WebDriverAgent天坑记(这个算是我自己安装过程中总结出的一部分Q&A)
后文有部分也有参考这三篇文章,如果有地方不清楚的话,可以去原贴所在查看。
WebDriverAgent简介
首先介绍一下WebDriverAgent吧
WebDriverAgent 在 iOS 端实现了一个 WebDriver server ,借助这个 server 我们可以远程控制 iOS 设备。
你可以启动、杀死应用,点击、滚动视图,或者确定页面展示是否正确。
This makes it a perfect tool for application end-to-end testing or general purpose device automation.(它说它是iOS上一个完美的e2e的自动化解决方案)
It works by linking XCTest.framework and calling Apple’s API to execute commands directly on a device.(链接XCTest.framework调用苹果的API直接在设备上执行命令)
WebDriverAgent is developed and used at Facebook for end-to-end testing and is successfully adopted by Appium. (Appium封装工作正在进行中,如果一旦封装好,那么以后就可以直接用Appium提供的binding了。)It is currently maintained by Marek Cirkos and Mehdi Mulani.
WebDriverAgent特性
它有如下特性:
- 真机和模拟器都支持
- 实现了大部分的 WebDriver spec
- USB support for devices,所谓的usb支持,指的是设备不需要上网,目前client binding 还没有。
- 提供了一个 Inspector
- Easy development cycle as it can be launched & debugged directly via Xcode
- Unsupported yet, but works with tvOS & OSX
这里我就WDA安装步骤和遇到的一些问题以及解决方案做个总结帖
闲话不多说,直接上干货
安装步骤
1、准备工作
$ brew install carthage$ brew install node
2、clone项目(要安装有git brew install git
)
$ git clone https://github.com/facebook/WebDriverAgent
3、下载依赖
$ cd /Users/yourname/WebDriverAgent$ mkdir -p Resources/WebDriverAgent.bundle$ sh ./Scripts/bootstrap.sh
该脚本会使用Carthage下载所有的依赖,使用npm打包响应的js文件
执行完成后,直接双击打开WebDriverAgent.xcodeproj这个文件。
4、设置证书
因为安装到真机上都是需要证书签名的,用免费的证书我没有搞定,最后用的还是99美元的开发者证书。
画圈的地方,从左向右依次点击。最后Team那一栏,选择你买到的开发者证书帐号。(个人证书也可以)
接着在TARGETS里面选中WebDriverAgentRunner,用同样的方法设置好证书(这里参考了https://testerhome.com/topics/7220)
如果是免费版的个人证书,还需要修改下WebDriverAgent的BundleID,随便加点后缀,只要不跟其他人的重名就好 (这里参考了macaca的一篇文章 https://testerhome.com/topics/8085 )
5、配置WebDriverAgent.xcodeproj
双击打开WebDriverAgent.xcodeproj这个文件
WebDriverAgentLib->Build Setting->Runpath Search Paths->添加变量:
$(SRCROOT)/../Carthage/Build/iOS$(PROJECT)/Carthage/Build/iOS
如图所示
Then
WebDriverAgentLib->Build Setting->Build Active Architecture Only->No
如图所示
按道理讲,到这里就基本可以直接Run了,大家也可以先Run一下试试
如果实在还是无法在真机里面使用,可以尝试下面的步骤:
把 WebDriverAgent/Inspector/webpack.config.js 中的
loaders: [ { test: /\.js?$/, loaders: ['babel-loader'], exclude: /node_modules/ }, { test: /\.css?$/, loader: 'style-loader!css-loader' }, ]
改为
loaders: [ { test: /\.js?$/, loaders: ['babel-loader'] }, { test: /\.css?$/, loader: 'style-loader!css-loader' }, ]
把, exclude: /node_modules/
这部分去掉即可!
6、运行与测试
启动 WebDriverAgent,官方提供了四种方式:
- 使用 XCode
- 用 xcodebuild
- Using fbsimctl from FBSimulatorControl framework
- Using FBSimulatorControl framework directly
XCode运行
菜单栏选择目标设备
Scheme选择WebDriverAgentRunner
最后运行 Product -> Test
一切正常的话,手机上会出现一个无图标的WebDriverAgent应用,启动之后,马上又返回到桌面。这是很正常的不要奇怪。
此时控制台界面可以看到设备的IP。如果看不到的话,使用这种方法打开
通过上面给出的IP和端口,加上/status
合成一个url地址。例如http://192.168.0.105:8100/status
,然后浏览器打开。如果出现一串JSON输出,说明WDA安装成功了。
终端运行
# 解锁keychain,以便可以正常的签名应用,PASSWORD="your password"security unlock-keychain -p $PASSWORD ~/Library/Keychains/login.keychain# 获取设备的UDIDUDID=$(idevice_id -l | head -n1)# 运行测试xcodebuild -project /Users/yourname/WDA/WebDriverAgent/WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination "id=$UDID" test
如果弄了很久还是没搞定。可以尝试下这些步骤
- git pull更新WebDriverAgent的代码
- 卸载手机上的WebDriverAgent
- 更新Xcode(尽量使用Xcode8,Xcode9貌似存在使用不当的问题)
- 更新Mac系统
- 重启Mac
- 重启iPhone(!!!!!最有效,优先级可以放到最高)
WebDriverAgent Q&A
这个主要参见:https://testerhome.com/topics/9666/edit
如果有什么新的问题,大家也可以在下面留言,我会及时更新上来给大家分享。
WebDriverAgent 安装终极大招
最后,放上终极大招——我正在使用的,已经编译好的项目文件:
WebDriverAgent:链接:http://pan.baidu.com/s/1c1KIFfU 密码:c4dx
如果百度链接挂了,就去CSDN中下载:WebDriverAgent
注意:
用户需要在WebDriverAgentLib
和WebDriverAgentRunner
中将Signing
改为自己的开发者证书即可
iOS-remote 安装篇
iOS-remote 安装篇之 ios-minicap 安装使用完全指南
iOS-remote 安装篇之 WebDriverAgent 安装使用完全指南
iOS-remote 安装篇之 iOS-remote安装使用完全指南
参考文献
iOS-minicap + WDA 实现 ios 远程真机测试 https://testerhome.com/topics/10262
基于 WebDriverAgent 的 iOS 远程控制 https://testerhome.com/topics/8890
WebDriverAgent简介 https://testerhome.com/topics/4904
iOS 真机如何安装 WebDriverAgent https://testerhome.com/topics/7220
WebDriverAgent天坑记 https://testerhome.com/topics/9666
- iOS远程真机之WebDriverAgent 安装使用完全指南
- iOS远程真机之WebDriverAgent 天坑记
- iOS远程真机之ios-minicap安装使用完全指南
- iOS远程真机之iOS-remote 安装使用完全指南
- iOS远程真机之ios-minicap安装使用完全指南
- ios 安装WebDriverAgent笔记
- iOS远程真机之wdaproxy使用指南
- iOS远程真机之usbmuxd中iproxy的作用
- iOS远程真机之非越狱iOS设备的远程控制实现原理
- iOS 之自定义URL Scheme完全指南
- iOS远程真机之iOS开发的另类神器:libimobiledevice协议库
- Windows远程控制完全指南
- appium iOS WebDriverAgent安装时注意(解决appium 报错code 65)
- iOS开发之(APNS)远程推送实现,证书与真机调试
- iOS远程真机之OS X EI Captian 编译 libimobiledevice 错误记录以及解决方法!!
- iOS远程真机之iTunes与iPhone的通信协议usbmuxd解析
- Apache完全安装指南
- Apache完全安装指南
- CentOS安装搭建Tomcat 7
- UNITY3D 如何让steamvr的手柄震动呢?
- Redis 配置
- 五子棋AI
- ES6学习笔记(二)
- iOS远程真机之WebDriverAgent 安装使用完全指南
- 内存/虚拟内存
- poi导出excel
- yum 安装mariadb,及二次安装root无密码、无法登录
- 超大PDF文件压缩技巧分享?
- 正则表达式三
- Navicat Premium连接oracle
- PAT乙级 1032题挖掘机技术哪家强
- js 实现table标题固定