iOS 测试 WebDriverAgent 真机安装教程

听雪 · 2019年06月18日 · 最后由 好好先森 回复于 2019年12月02日 · 3491 次阅读

在 iOS 设备上要通过 Appium 执行自动化用例或查看页面元素时,都必须在真机上安装WebDriverAgent
)(点开看介绍)
模拟器上轻松跑,一旦遇到真机,稀奇古怪的问题就来了,整个过程其实没多复杂。

本文适应人群:已经配好了 appium 环境,卡在 WebDriverAgent 真机调试中的同学们

1.首先需要登陆 Apple ID

-打开 Xcode > Preferences > Accounts: Add developer's Apple ID

2.下载和安装必要的依赖。

进入命令行工具(1.command+ space 2.输入终端),依次输入以下内容:

cd /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent 
mkdir -p Resources/WebDriverAgent.bundle
sudo sh ./Scripts/bootstrap.sh -d    #输入电脑登陆密码

3.打开 WebDriverAgent 工程

方式 1:命令行打开

open WebDriverAgent.xcodeproj

方式 2:finder 内打开
打开 finder(访达)> command + shift + G > 粘贴地址(/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent )> 双击 WebDriverAgent.xcodeproj

常见问题
打开工程后可能因为权限问题,提示你无法解锁该工程,也就是你没有读写权限

提示:The file "project.xcworkspace" could not be unlocked. Could not add write permission to the file because you do not own it. Try modifying the permissions of the file in the Finder or Terminal.

解决:通过 finder 打开工程目录,回到上一级(command + ↑) > 右键 “WebDriverAgent” > 显示简介 > 右下角解锁🔐 > 共享与权限 > + > 添加自己的账户 > 权限一栏下选择 “读与写”

4. 设置签名

target 选择 WebDriverAgentLib,在 Signing 区域,勾选 Automatically manage signing,选择一个 team,最后改下 Bundle identifier,你可以把 facebook 改成你的名字

5.编译

工具栏 > Product > Build 或者 command + B

6.签名 WebDriverAgentRunner 并编译

选择 WebDriverAgentRunner,并重复步骤 4 和 5
改 Bundle identifier 的步骤和上面不一样: >Build Settings > 搜索 facebook >改成和上面一样的 Bundle identifier

7.在命令行中重新编译并安装测试 WebDriverAgent

xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=<udid>' test

udid 替换成你真机的 udid

查看 udid 方法:
打开 xcode > Window > Devices and Simulators > Identfier 后面的字符串就是 udid

弹这个提示栏,选择 Always Allow

如果 build 成功了,终端中会以这些 log 信息结尾

Test Suite 'All tests' started at 2017-01-23 15:49:12.585
   Test Suite 'WebDriverAgentRunner.xctest' started at 2017-01-23 15:49:12.586
   Test Suite 'UITestingUITests' started at 2017-01-23 15:49:12.587
   Test Case '-[UITestingUITests testRunner]' started.
       t =     0.00s     Start Test at 2017-01-23 15:49:12.588
       t =     0.00s     Set Up

如果你看到上图的内容说明大功告成了,可以跑 case 了

注意:

以上步骤适用于命令行运行 Appium 跑 case。如果要在 Appium 桌面端应用中查看页面元素,需要在以下地址中重复上面的步骤

cd /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent

其他问题:

个别版本的 appium 内置的 WebDriverAgent 可能有问题,编译会报错,在 git 上下载最新版本(地址:https://github.com/appium/WebDriverAgent
),替换了再执行上述操作即可。

参考文章:https://docs.katalon.com/katalon-studio/docs/installing-webdriveragent-for-ios-devices.html

共收到 4 条回复 时间 点赞

您好,想问一下 ios 真机 (ios 12.0) 测试时,运行到滑动 case 时报 “Encountered internal error running command: UnknownError: An unknown server-side error occurred while processing the command. Original error: Unhandled endpoint: "session/D5B59262-EAE9-4703-A318-DCA7C266549F/wda/touch/perform"” 错误,是因为 wda 环境有问题,还是 ios 高系统不支持 swipe 和 tap 等方法

1.如果 WDA 能把应用启动起来,就说明 WDA 环境没问题
2.ios12.X 支持 swipe 和 tap
3.根据你的 log 截图,应该是你 swipe 参数给错了

您好,我这里在虚拟机下的 macOS 系统执行./Scripts/bootstrap.sh 脚本的时候报了一个异常,我百度了好久都找不到答案,求告知谢谢

虚拟机:VM15
系统:macOS10.14
Xcode 版本:9
appium 版本:1.15.1

请问为什么我没有/usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent 这个目录呢,我的目录是/usr/local/lib/node_modules/npm,没有 appium

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册