iOS 测试 WebDriverAgent 真机安装教程

听雪 · June 18, 2019 · Last by a424014986 replied at December 02, 2019 · 1274 hits

在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等方法

听雪 #2 · July 11, 2019 作者

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

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

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

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

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up