Appium Appium Desktop 简单介绍 —— xcodebuild failed with code 65 解决

恒温 · 2017年03月08日 · 最后由 测试成长中 回复于 2018年05月09日 · 7840 次阅读
本帖已被设为精华帖!

遇到这种问题:

Unable to launch WebDriverAgent because of xcodebuild failure: xcodebuild failed with code 65

重新在你的真机上编译 WebDriverAgent

重新编译还会遇到问题的同学参试下:

  1. 到 webdriverAgent 目录下
  2. 运行 sh ./Scripts/bootstrap.sh
  3. 再使用 xCode build 一次。

beta3 下载地址

https://pan.baidu.com/s/1hrQ4itm —— windows
https://pan.baidu.com/s/1c13B8TM —— mac

beta2 下载地址

更新下: https://pan.baidu.com/s/1geIy7cB 下载地址。感谢 mingway。

历史由来

Appium 的 GUI 失去维护很久了(1.5.3 之后),然后看到官方又推出了一个 Appium Desktop。这是一个什么鬼呢?我们 T 社有同学已经拿来玩了。(https://testerhome.com/topics/7829 @wxlsh114)。不过介绍的比较简单,恰巧我翻 medium,也看到一篇老外的介绍。于是想,要不下来看看吧。

Appium Desktop 的地址在 https://github.com/appium/appium-desktop,已经有 1.0.0-beta.2 提供下载了。支持 mac,windows,还有 linux,诚意满满。

界面

和之前的 GUI 版本一样,安装好之后打开就可以了,啥其他环境都不要配置,注意我这里值得是 Appium Server 本身的依赖,没有指 Appium 用例运行的环境,那些没有安装 xcode,没有安装 Android SDK 的同学先把自己的开发环境搞定。

简单版本 —— 使用所有的默认配置启动 Appium

这个界面会使用默认配置启动 Appium Server,除了 Host 和 Port 外,其他都是不能修改的。

高级版本 —— 自定义配置

这个界面其实和以前的 GUI 没啥区别,就是让你配置各种值的。

保存配置

高级模式里的自定义配置可以保存起来,在这个界面被加载出来。

运行终端

我在想他们是不是换了交互设计师了。。

新会话窗口

新会话其实是提供了一种让你启动一个会话的能力,有点调试的味道在里面。这里你需要了解你创建这个会话所需要的 desiredCapibility。

这个界面里还提供了其他的 Appium 服务商,比如 SauceLabs, TestObject。

The Inspector —— 重头戏

最近很多人问,怎么定位元素啊,之前会推荐 Macaca 的 app-inspector。这货出来估计也可以用用了。

亲测可用:xcode8 + 模拟器是 ios10.2

更新下 Android 的真机:

总结下

一个让 Appium 使用更加方便的 UI 工具。要理解 Appium 还是得好好看看源码,了解下原理。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 255 条回复 时间 点赞
啊啊 回复

解决了,你看下 log,找到 wda 的位置,然后重签名,再 build 一下 wdarunner 到你的机器上,再启动 session 就好。这有个帖子
https://testerhome.com/topics/6636

模拟器启动报错

遇到这种问题:

Unable to launch WebDriverAgent because of xcodebuild failure: xcodebuild failed with code 65

重新在你的真机上编译 WebDriverAgent

恒温 回复

写在 udid 前面,你试试

@Lihuazhang The Inspector 是 appium desktop 自带吗? 为什么找不到

cece0417 回复

需要对你的真机重新 build 下 webdriverAgent,这个是老错误了。

恒温 回复

不好意思,没说清楚
刚刚我跑了下,不需要这两个值也可以
之前参考的这个链接 https://github.com/imurchie/appium-xcuitest-driver/blob/isaac-rs/docs/real-device-config.md
TeamID 在 https://developer.apple.com/account/ 里左侧的 Member ship 中找到

{
     "xcodeOrgId": "<Team ID>",
     "xcodeSigningId": "iPhone Developer"
}

我发现一个问题,真机配置 devicename 要是写在前面,会把 wda 给自动删了我去

重新编译还会遇到问题的同学参试下:

  1. 到 webdriverAgent 目录下
  2. 运行 sh ./Scripts/bootstrap.sh
  3. 再使用 xCode build 一次。
啊啊 回复

brew install carthage

支持 ios 10.0 以上了么?

steven 回复

看我的 gif 图

匿名 #252 · 2017年03月08日

还有是否支持 xcode 8 呢?

恒温 #251 · 2017年03月08日 Author

直接用 release 不要用源代码啊

恒温 #247 · 2017年03月08日 Author
steven 回复

的确

思寒_seveniruby 将本帖设为了精华贴 03月08日 12:02
匿名 #22 · 2017年03月08日

appium 里面的 inspector 怎么打开的?没有找到。

恒温 回复

谢谢,话说这个 beta 支持安卓吗?或这支持安卓哪个版本以上的?我用的是 android 5.1 API 22

恒温 回复

nice

恒温 #255 · 2017年03月08日 Author
testly 回复

支持

恒温 #254 · 2017年03月08日 Author
啊啊 回复

设备的 udid

匿名 #253 · 2017年03月08日

只有我 git 库代码下载下来后不知道怎么打开吗?mac 上。

666666,刚刚昨天我的 4s 测试机变成砖头了,就需要这个玩意

用完觉得直接在 Selected Element 多加一栏 Xpath 展示会更完美

恒温 #245 · 2017年03月08日 Author

start session 会自动生成的。 看我的 gif 呀

恒温 回复

ui 元素能不能不用 macaca 的,用之前版本的 inspect

windows 是安装最后的那个吧?

终于出来了,赞

恒温 #236 · 2017年03月08日 Author
shishuaigang 回复

理论上应该都支持。

恒温 回复

😂

没有 xpath 什么套路

真机 deviceName 换成 UDID 项目的 BundleID 填入 app?

想问下,这样用 classname 定位的话,是选择查看出来的元素中那个 type 吗?

cece0417 回复

没错

谢谢,还有一个问题请问下,那个 app 的地址可以直接放.app 文件还是要其他的东西?

恒温 #42 · 2017年03月08日 Author
cece0417 回复

这个和之前没有区别。可以放.app

新手再次求助一次,请问这样填写可以吗?不知道为何启动了模拟器而不是真机

恒温 #44 · 2017年03月08日 Author
cece0417 回复

你 udid 是怎么拿到的?

恒温 回复

udid 是我的手机插上电脑,在 iTunes 里面拷贝出来的哦

恒温 回复

我上面那个写的是 UDID,不知道是不是大写的问题,我重新写成了小写的 udid,接着跑的话,没有启动模拟器了,但是却有个我看不懂的报错,还辛苦指导一下

cece0417 回复

在么,你 qq 多少

恒温 #58 · 2017年03月09日 Author
ansen 回复

你系统是啥版本的?

cece0417 回复

要知道你的名字,尴尬了

恒温 回复

执行完命令后 显示了很多的 Devive 信息 可是这些跟我要测试的真机有什么关系吗 appium1.6.4 链接 IOS10 的真机时 都需要设置哪些参数 你能跟我大概说一下吗 拜托了

匿名 #218 · 2017年03月08日

这个工具给的 xpath 是不准的

恒温 回复

已经解决了,谢谢。我之前装的是 macaca 的 wda,忘记装 appium 的 wda 了。

cece0417 回复

能加我 qq448529606 帮我看下吗?

下载不下来,求个百度云下载链接

恒温 回复

OS 10.11 Xcode8.2 IOS10.1.1

同时装了 7.3 跟 8.2 的 xcode,怎么指向 8.2 的 xcode

cece0417 回复

我也出现这个错误,你解决了吗?

cece0417 回复

Sdk '10.1.1' was not in list of simctl sdks
在真机测试的时候 报的这个错 这是什么问题

恒温 #208 · 2017年03月09日 Author
ansen 回复

Just changing your platformVersion to match your simulator's iOS version should do the trick.

在命令行运行:

xcrun simctl list

恒温 #205 · 2017年03月09日 Author
回复

这问题 不能自己解决么。。

恒温 回复

把 73 删了

想问下 start new session 进去后完全没法输入是怎么回事啊,有人遇到吗

cece0417 回复


请问模拟器是写这四个属性么

恒温 #201 · 2017年03月10日 Author
回复

一个个运行,提醒缺哪个就补哪个 我就是这样做的。

浏览器下的慢死,还是迅雷下载的快

codeskyblue 回复

我用起来怎么很卡

codeskyblue 回复

确实挺好用的,除了没有 xpath。还少了一些老版本的功能,希望以后加上

xinxjxjxj 回复

卡卡的,但是不影响使用

恒温 #193 · 2017年03月13日 Author
chen 回复

是的

这么说在 Desktop 启动 用的是 Appium v1.6.4-beta server 不用 NPM DOWN appium 1.6.4 了是吧 ! 太开心啦

已试用,在某些情况可以配合 macaca 的 inspector 使用,比如获取坐标。鉴于这个工具没办法直接得到 xpath,还是优先考虑 macaca 的 inspector。谢谢分享!

重新编译还是会挂掉,醉了

学习了

最新版 1.0.0-beta4 官网已发布。

恒温 回复

刚查了查 只要设 noReset 为 true app 就不会在重装了 😁
noReset:在当前 session 前不重置 app 状态

恒温 回复

换 appium 版本也要重新编译吗?因为昨天编译了死活还是报 65 的错误
昨天没看到这个,我再试下

重新编译还会遇到问题的同学参试下:

到 webdriverAgent 目录下
运行 sh ./Scripts/bootstrap.sh
再使用 xCode build 一次。

恒温 #185 · 2017年03月15日 Author
山姆大叔 回复

给个百度云的下载地址?

我有个问题,我用的 1.6.3 的 appium 命令行版本,能正确运行(暂时只是打开真机上的 app),但是换到那个 1.6.4 的 beta2 版本时,还是报 error code 65,这个为什么?

恒温 #178 · 2017年03月15日 Author
shishuaigang 回复

嗯 我就是这样成功的

恒温 回复

我在作真机测试的时候,每次都会把我安装在真机上的 app 给删除了再重新安装,包括执行 js 的时候也会先删除 app 然后再安装一次。怎么才能避免这种情况,怎么能实现:我提前把 app 安装好,测试的时候直接启动。需要设置什么参数吗

恒温 #161 · 2017年03月16日 Author
回复

这么神奇?

恒温 回复

😍 😍 😍 😍

恒温 回复

我这还是失败,beta 版本的客户端一直显示这个错误,一直说我这个里面没有这个 WebDriverAgentRunner-Runner.app,我看了下,这个文件应该是 build wda 时生成的,我用命令行编写的时候是有这个文件产生的,单用客户端就没有
[Xcode] 2017-03-15 14:37:20.376 xcodebuild[19045:3653972] Error Domain=NSCocoaErrorDomain Code=260 "The file “WebDriverAgentRunner-Runner.app” couldn’t be opened because there is no such file." UserInfo={NSFilePath=/Users/shishuaigang/Library/Developer/Xcode/DerivedData/WebDriverAgent-cvqckynzuuktkogfpkkkgyompmoj/Build/Products/Debug-iphoneos/WebDriverAgentRunner-Runner.app, NSUnderlyingError=0x7f9758a54630 {Error Domain=NSPOSIXErrorDomain Code=2 "No such file or directory"}}

恒温 #85 · 2017年03月15日 Author
ansen 回复

国内很多人下不来,所以希望有个百度云的下载


真机跑不成功

恒温 回复

需要先命令行下载 appium1.6,再把 appium 的 webdriverAgent build 一下?

恒温 回复

没有百度云,直接网页下载的,可以下的

恒温 回复

我对这个路径下的进行了 build,发现手机上直接闪退
/Applications/Appium.app/Contents/Resources/app/node_modules/appium-xcuitest-driver/WebDriverAgent
重新 sh ./Scripts/bootstrap.sh 后 build,然后做那个 test,app 在手机上直接闪退

恒温 #102 · 2017年03月15日 Author
shishuaigang 回复

😎 😎

恒温 #181 · 2017年03月15日 Author
shishuaigang 回复

换了就要重新编译啊。。

恒温 #171 · 2017年03月15日 Author
ansen 回复

这个是 appium 的参数里配置的吧 desireCap 里的

恒温 回复

已经搞定了,多谢啦,走了很多弯路,刚刚闪退是因为忘了给 lib 选开发者组了
以前命令行可以,客户端不可以是因为 wda 的路径选择问题
多谢多谢

恒温 #176 · 2017年03月15日 Author
shishuaigang 回复

WebDriverAgentRunner-Runner.app 本来就没有啊。。

恒温 回复

做了的,卡在 setup 那里,应该没多大事
我觉得我理解你的重新 build 是怎么个重新 build 法了

恒温 #169 · 2017年03月15日 Author
shishuaigang 回复

xcode 的日志呢?

恒温 #175 · 2017年03月15日 Author
shishuaigang 回复

到 webdriverAgent 目录下
运行 sh ./Scripts/bootstrap.sh
再使用 xCode build 一次。

你有没有用 xcode build 好之后,运行那个 xc 测试?

ios 真机运行,亲测可用,bundleId 改成自己的 app

恒温 回复

是的,我刚刚试验过了

改成大写的,UDID,会启动模拟器,但没有启动真机

这个客户端一下就闪退,不知道为什么,你有没有遇过

回复

按照你的排版本,真机不能启动成功啊,求指教

纪小莉 回复

要装 appium 的 wda 这是大前提

现在在用,没几秒就闪退了,请问兄台遇过么

纪小莉 回复

xcode 的 product 下的 test 去运行你的 runner

恒温 回复

问个问题,appium 是不是认为 button 是最小的控件单元了?
但是我们开发还在 button 里写了一堆层次结构,但是 app-inspector 读到 button 后就不往后读了,这个我直接用 xpath 去读到最后一层的控件可行吗

回复

然后运行 appium 下的 wda runner 文件。用 test 指令去运行
这个具体是怎么操作的,我也试试啊

纪小莉 回复

你要做的什么?具体描述一下

wda 获取到 ip 地址后,通过浏览器打开http://192.168.32.205:8100/status,发现打不开,请问是什么原因呢

纪小莉 回复

不是/inspector 么

纪小莉 回复

我没按照他的来,我是连上真机,然后运行 appium 下的 wda runner 文件。用 test 指令去运行,runner 就会安装到真机上了,然后你去信任他

纪小莉 回复

设备上有 wda 了,就是安装成功了

回复


跟据这个,我访问不了我出来的网址
参考网站:https://testerhome.com/topics/7220

回复


出现了这个错误,不知道什么原因

回复


有了,但不知道怎么展开测试,可有教程

恒温 #129 · 2017年03月19日 Author
fdeferf 回复

学习了。如果指定了这两个,相当于使用新的去重新 build 了吧

Unable to launch WebDriverAgent because of xcodebuild failure: xcodebuild failed with code 65

解决方法:
加入 xcodeOrgId 和 xcodeSigningId 字段

恒温 #131 · 2017年03月18日 Author
fdeferf 回复

这两个分别是啥值呀?

恒温 回复

这个·版本的输入跟之前有偏差么

恒温 回复

我把 IOS 配置完后,点击 start session 后,真机的 APP 是打开了,但是定位元素的界面没有打开,而是重新再打开一个 Appium-desktop 应用,你们有遇到过吗?

Wu 回复

截图看看

回复


右下角那里一直重复打开 Appium-desktop 应用

Wu 回复

没遇过,配置看看

回复

好,谢谢,我以为都兼容,我升级一下 Xcode

回复

配置都是默认的配置,我选的是 Simple 的,其他都没有动,我的是 IOS9.3 + Xcode7.3

Wu 回复

得用 xcode8 以上版本,因为这个版本 appium 底层用的是 xcode8 的 xcunit

Wu 回复

两个版本 xcode 可以并存的,具体你查下资料。你要确保你 appium 指向 8 的 xcode 就行

山姆大叔 回复

谢谢,我也折腾了好久。好像第一次输入这个参数后,接下来就不需要再填了,你试一下。

fdeferf 回复

高!实在是高!加这两个参数真的很好使!

fdeferf 回复

果然如此!谢谢!

山姆大叔 回复

别着急,我又听说免费的 Apple ID 帐号签名后 7 天会过期

fdeferf 回复

不用担心,我找公司 iOS 开发要的公司开发账号(付费的),没用免费账号

@Lihuazhang 怎么不能发帖了? 提示没有权限或者未登录,实际是已经登录了的

macaca 的 app-inspector 对付 ios 从来没成功过,在 github 提 issue,最后是没什么下文了,现在连 android 都连不上。😂 😂 😂

恒温 回复

那这篇文章只是简单的介绍安装没有用介绍详细使用,老师您知道之前 appium 1.6.3 终端执行 问题较多有些小白同学很难理解一些错误和调试, Desktop 用的是客户端,简单明了,能整一篇 详细使用篇么, 我也是白菜 没找到录制和如何执行脚本这个功能,网上该资源也比较少😂

恒温 #107 · 2017年03月23日 Author
center_on 回复

标题写了简单使用嘛。。。

回复

右键 inspect element 里有很多工具 但是还是得研究一下 交互较为复杂😂

center_on 回复

跟之前一样可以运行脚本跟查看元素,不过速度不敢恭维,慢的跟蜗牛一样

@Lihuazhang 说白了 appium desktop 是一个什么工具? 查看 APP 元素与定位的工具 还是与 dmg 一样 还具有录制和执行脚本?

恒温 #157 · 2017年03月23日 Author
center_on 回复

可以理解为一个更加友好的 appium 管理工具吧。 整合了之前的 appium gui 等功能。

恒温 回复

我可以这么认为吗, 就是 Xcode 8 以上 appium 的客户端 不会像 1.63 那样终端执行 ,Xcode 8 以上就可以直接用它了? 或者与之前的 appium 1.53 dmg 有和优缺点

恒温 #109 · 2017年03月23日 Author
center_on 回复

不是。appium 运行在终端也可以。使用 Appium Desktop 也可以。没啥优缺点。一种新方式而已。

恒温 回复

那这东西 有录制和编辑脚本吗? 还是在会话那 输入你的执行 😂 , 我感觉并没有实际上的用途

恒温 回复

😂 运行脚本速度太慢了

center_on 回复

如果跟之前 appium 版本一样给出 xpath 就好了

回复

这样的话 元素界面里边没有 Index,那我们怎么去编写 app 里边点击事件的代码呢!Xpath 又是怎么去识别的呢

Zero.0 回复

xpath 可以用 name 这种元素属性去写

回复

appium 现在不是不支持 name 的属性了吗

Zero.0 回复

😂 //a[name=] 这种样式去写 xpath 啊

回复

试过的,但是并不好用, 我在 // 前写的是 " 我在想是不是要改成 ’ ,这个需要改吗

Zero.0 回复

没看懂,name 是不好用,妈的元素点击都无法识别,新版本的定位跟运行都不太行😂

回复

是啊😂 这个执行起来太费劲了,如果之后万一 app 作修改了,js 维护起来也特别的费劲,整不好还要重新编译。

Zero.0 回复

是的,这个版本速度太慢了

Zero.0 回复

不利于自动化,这个版本,我之前版本 appium 还能跑跑出个报告。这个版本的速度实在太慢了

回复

我是拿着 Appium1.5.3 录制的 js,放到这个环境下去执行。js 基本上改了一个整遍,元素全部从 UIA 变成 XCUI 了😂 并且没有 Index,没办法我就根据 inspector 中的元素树状图,去查每个元素的 Index,贼麻烦。

回复

应该不能 我是研究了很久,因为两个版本的测试框架变了。我觉得这个版本不好用的原因还是因为没有 Xpath,导致编写测试脚本的时候,元素的位置不太好判断。效率大大的降低了

Zero.0 回复

这个版本的工具你运行过脚本么,我感觉速度不是一般的慢啊

回复

只是单纯的几个 app 中的点击操作的话 我觉得还可以 复杂的动作(画线,拖动)我没试

Zero.0 回复

脚本能看下么

Zero.0 回复

你这 xpath 写的要累死啊。。。我主要看你的 xpath

Zero.0 回复

是的,很揪心啊。这个版本不好用,总有一天,你的心上人会身披黑胡椒披萨,脚踩草莓棉花糖,手持油炸大鸡腿找到你,你要等。

Zero.0 回复

1.5.3 可以测 10 以上的 ios 版本么

回复

我之前用的是 Xcode7.3 的 instruments 中的 AUtomation,那个相对来说要快捷一些,但是那个没法查看元素,只能利用坐标去定位,之后 IOS 升级到 10 之后 Xcode8 删除了 AUtomation,然后就尝试 appium1.5.3,没想到支持 IOS10 以上版本的,要升级到 1.6.0—+Xcode8 以上,但是 appium-desktop 之前都没有 GUI 界面,还好现在这个版本不管怎么麻烦吧,至少有个解决方法了。等以后有更快捷的方法时候再分享吧。

回复
"use strict";

var wd = require("wd");
var chai = require("chai");
var chaiAsPromised = require("chai-as-promised");

chai.use(chaiAsPromised);
chai.should();
chaiAsPromised.transferPromiseness = wd.transferPromiseness;


var  desired = {
  "appium-version": "1.0.0-beta.2",
  "platformName": "iOS",
  "automationName": "XCUITest",
  "platformVersion": "10.2.1",
  "deviceName": "iPad Air",
  "app": "appPATH",
  "udid": "自己输入",
  "noReset": true,
  "bundleId": "apple的证书"
};

var browser = wd.promiseChainRemote("127.0.0.1", 4723);
browser.init(desired).then(function() {
    return browser
       .elementByXPath('//XCUIElementTypeApplication[1]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[1]/XCUIElementTypeCollectionView[1]/XCUIElementTypeCell[1]/XCUIElementTypeOther[1]/XCUIElementTypeStaticText[1]')
       .sleep(5000)
       .click()
        .sleep(5000)
        .elementByXPath('//XCUIElementTypeApplication[1]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[2]/XCUIElementTypeOther[1]/XCUIElementTypeOther[2]/XCUIElementTypeButton[1]')
        .sleep(5000)
        .click()
        .sleep(5000)
        .elementByXPath('//XCUIElementTypeApplication[1]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeButton[1]')
        .sleep(5000)
        .click()
        .sleep(5000)
        .elementByXPath('//XCUIElementTypeApplication[1]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[2]/XCUIElementTypeOther[3]/XCUIElementTypeOther[2]/XCUIElementTypeTable[1]/XCUIElementTypeCell[1]/XCUIElementTypeStaticText[1]')
        .sleep(5000)
        .click()
        .sleep(5000)
        .elementByXPath('//XCUIElementTypeApplication[1]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeButton[4]')
        .sleep(5000)
        .click()
        .sleep(5000)
        .elementByXPath('//XCUIElementTypeApplication[1]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeButton[4]')
        .sleep(5000)
        .click()
        .sleep(5000)
        .elementByXPath('//XCUIElementTypeApplication[1]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[2]/XCUIElementTypeOther[3]/XCUIElementTypeOther[2]/XCUIElementTypeOther[1]/XCUIElementTypeTable[1]/XCUIElementTypeCell[1]/XCUIElementTypeStaticText[1]')
        .sleep(5000)
        .click()
       //.elementByXPath('//XCUIElementTypeApplication[1]/XCUIElementTypeWindow[1]/XCUIElementTypeOther[1]/XCUIElementTypeOther[1]/XCUIElementTypeSegmentedControl[1]/XCUIElementTypeButton[2]')
       //.click()
       .sleep(5000)
        .fin(function() {
            return browser.quit();
        });
}).done();

回复

"app" "udid" "bundleId"是自己的 我这边不方便给你展示

回复

暂时没想起来好的方法,先用笨办法试试能不能进行 app 的自动化测试。之后再去考虑更加简便的方法!😀

Zero.0 回复

想到了可以分享一下,不过你这等待时间太长了

试了,不行,依然报 code65 的错

[MJSONWP] Encountered internal error running command: Error: Unable to launch WebDriverAgent because of xcodebuild failure: xcodebuild failed with code 65
at XCUITestDriver.quitAndUninstall$ (/Applications/Appium.app/Contents/Resources/app/node_modules/appium-xcuitest-driver/lib/driver.js:368:15)
at tryCatch (/Applications/Appium.app/Contents/Resources/app/node_modules/appium-xcuitest-driver/node_modules/babel-runtime/regenerator/runtime.js:67:40)
at GeneratorFunctionPrototype.invoke as _invoke
at GeneratorFunctionPrototype.prototype.(anonymous function) as next
at GeneratorFunctionPrototype.invoke (/Applications/Appium.app/Contents/Resources/app/node_modules/appium-xcuitest-driver/node_modules/babel-runtime/regenerator/runtime.js:136:37)
at process._tickCallback (internal/process/next_tick.js:103:7)
[HTTP] <-- POST /wd/hub/session 500 39859 ms - 230 这是报错信息

congcong 回复

应该是 WebDriverAgent 签名的问题,后来重新安装了 Appium 1.6.3,重新签名编译 WebDriverAgent,就好了,或者可以参考https://testerhome.com/topics/6636

回复

测试了一下 macaca 模拟器 和真机的 findelement + click 的速度 ,全部通过 name 查找。
模拟器比真机快很多,分别点击 4 个 button ,分别耗时为 1.5 秒 5 秒 2 秒 2 秒

但是奇怪的是 以第一个 1.5 秒为例 模拟器上 findelement 只需要 0.5 秒 ,click 要 1 秒
真机分别为 9.5 秒 40 秒 12 秒 12 秒 ,真机上 find 和 click 时间基本对半

恒温 回复

感觉 desktop 集成的 appium 1.6.4beta 版本有问题,用 desktop,tap 有问题,换用 cli 1.6.4beta 版本就没问题

回复

你有用 macaca 跑 ios 吗 我今天费了好大劲,搞好了,不过发现 太慢了 findelement 再 click 一下要 9 秒多?

回复

macaca 模拟器器 跑官方的例子不算太慢 查找点击下 2 秒多

云霄 回复

没,我用 appium

云霄 回复

macaca 也这么慢,那 ios 自动化没必要跑了,一个 case 跑个半天,还不如点点点

回复

我再试试 跑真机 和 模拟器 的速度对比

云霄 回复

ok

云霄 回复

能不能 By.name 这个方式来查找元素

恒温 回复

搞不明白, 更完 ios10.3 好想就这样了 ,一运行 desktop 我的 WebDriverAgent 就会崩掉

恒温 #56 · 2017年04月11日 Author
xiao 回复

我只遇到 build 65 的问题。其他没有遇到过。 大家在做的时候 对 xcode build 项目还是要熟悉一点。

不能 github 上查查么。。把工程里三个 target version 相关的地方都改成 10.3 wda 就不会报错了

center_on 回复

我是根据你贴的 log 回复的,没必要嘲讽我把?

songz 回复

是你脑子 (想的) 那么简单 就好了,自己已经解决了啊 是修改 WebDriverAgent 文件

恒温 #60 · 2017年04月11日 Author
center_on 回复

解决就好了。

songz 回复

说点题外的哈,兄弟按照新闻上的描述,你就属于那种吃瓜群众 ,没啥事瞎卖呆,说的话就跟你吃的瓜皮一样扔地下会摔到人,没啥用的话,别管我问老师啥问题,我这想得到个解决办法,而不是你这瞎嘚嘚,逛社区跟新闻抢沙发是的,哪都有你😊,话有点过,句句在理

恒温 回复

还是报错 code 65。按照你给的重新 build 了 wda,成功了。但是 UITestingUITest 中的测试用例运行失败?请教~

congcong 回复

请问你是怎么解决的呢?

center_on 回复

😳 不常看社区,也只是想回答你那个问题。也许我是没看清你的问题,但也请控制好自己的情绪。也可以 share 下你的解决方案学习下😁

恒温 #214 · 2017年04月11日 Author
songz 回复

都消消气 @visionary 大家都是比较有爱的。

songz 回复

哈哈 songz 苦逼,难得回答个问题被嘲讽

log:
File "paperang_python.py", line 17, in
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
File "/usr/local/lib/python2.7/site-packages/selenium-3.3.3-py2.7.egg/selenium/webdriver/remote/webdriver.py", line 98, in init
self.start_session(desired_capabilities, browser_profile)
File "/usr/local/lib/python2.7/site-packages/selenium-3.3.3-py2.7.egg/selenium/webdriver/remote/webdriver.py", line 185, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/usr/local/lib/python2.7/site-packages/selenium-3.3.3-py2.7.egg/selenium/webdriver/remote/webdriver.py", line 249, in execute
self.error_handler.check_response(response)
File "/usr/local/lib/python2.7/site-packages/selenium-3.3.3-py2.7.egg/selenium/webdriver/remote/errorhandler.py", line 193, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: A new session could not be created. Details: Appium's IosDriver does not support xcode version 8.3.1. Apple has deprecated UIAutomation. Use the "XCUITest" automationName capability instead.

用例:
from selenium import webdriver
from selenium.webdriver.firefox.webdriver import WebDriver
PATH = lambda p: os.path.abspath(
os.path.join(os.path.dirname(file), p)
)
desired_caps = {}
desired_caps
desired_caps['platformName']='iOS'
desired_caps['deviceName']='iPhone 6'
desired_caps['device'] = 'iOS'
desired_caps['bundleId'] = '故意不填’
desired_caps['version'] = '10.3'
desired_caps['app-package'] = '故意不填'
desired_caps['udid']='故意不填'
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

el = driver.find_element_by_name("搜索")
el.click()
driver.quit()

A new session could not be created. Details: Appium's IosDriver does not support xcode version 8.3.1. Apple has deprecated UIAutomation. Use the "XCUITest" automationName capability instead.
这个怎么解决呀

UITestingUITest 中的测试用例运行失败
加上-Wno-partial-availability

恒温 回复

谢谢!问题刚刚解决了。是 wda 的问题。只有 lib 构建成功,runner 没有成功,因为 bundleid 的问题。后改了运行成功了。之后运行 UITestingUITest 成功。而且在手机上安装了一个 webDriver*** 的 app。

恒温 #47 · 2017年04月21日 Author
nobody 回复

把英文翻译一遍

nobody 回复

automationName=XCUITest

nobody 回复

你没有指定测试的系统版本把

A new session could not be created. Details: Appium's IosDriver does not support xcode version 8.3.1. Apple has deprecated UIAutomation. Use the "XCUITest" automationName capability instead.
何解?我必须回退到 xcode8?

fdeferf 回复

我直接用的真机测试的,信息我都核对过了。

恒温 回复

看了很多啊,但是基本都过时了啊。

恒温 #44 · 2017年04月21日 Author
nobody 回复

先找个教程入门吧。

An unknown server-side error occurred while processing the command. Original error: Could not determine iOS SDK version: Command 'xcrun --sdk iphonesimulator --show-sdk-version' exited with code 1: xcrun: error: SDK "iphonesimulator" cannot be located xcrun: error: SDK "iphonesimulator" cannot be located xcrun: error: unable to lookup item 'SDKVersion' in SDK 'iphonesimulator'
这个报错怎么解决啊?

纪小莉 回复

你的问题解决了吗?我也遇到了~Use the "XCUITest" automationName capability instead

恒温 回复

用 "XCUITest" automationName 这个怎么用呢?不用 appium desktop 吗?
弄了两天了,因为没搞过自动化测试,把网上的各种文档都看了,感觉环境装好了。但是连你们说的 inseptor 都跑成功过😭 😭 😭

fdeferf 回复

我故意写错的~运行过,因为我就是写 iOS 的.我换了模拟器弄,还是不得行。😭
{
"platformName": "iOS",
"deviceName": "iPhone Simulator",
"bundleId": "com.xx.DuoJiWu",
"automationName": "XCUITest",
"platformVersion": "10.3"
}
流程是不是先用 wda test 一个 app 在模拟器上,然后在 appium 里面进行启动监听服务,最后再去写脚本传给 appium,appium 通过 bootstrap.js 下发给 app 呢?(我在各种文章中看到的,我是不是走偏了)

fdeferf 回复

重启电脑解决了~😂

fdeferf 回复

谢谢,解决了这个问题。但是 unable to lookup item 'SDKVersion' in SDK 'iphonesimulator',这个又是什么鬼啊~我按照你们说的填一直爆这个错误

nobody 回复

bundleId 错了把 , Xcode 有吗? 使用 Xcode 运行过 App 吗

nobody 回复

先打开 Appium, 执行脚本时 Appium 会替咱们提前运行 WebDriverAgent, 你这个错误我没遇到过, 你 Google 一下

纪小莉 回复

我也遇到了,"udid"保持小写,他对应的内容改为小写,比如 udid=123ABC 改为 udid=123abc 就好了。我是这样解决的


又遇到新问题了,汗,求解

fdeferf 回复

大神,Team ID 是不是只有开发者账号才有,普通的 AppleID 账号有这个吗?

这种问题有遇到的吗?我通过 xcode build,test 都成功了,真机上也有 webdriveragentrunner 了,可是运行 appium desktop 总是报这个错误。

@Lihuazhang 您好,请问一下 我的 Xcode 版本是 8.3.2 运行 appium-desktop 的时候报错 error:enotfound。之前 Xcode 版本是 8.1 的时候是能启动成功的啊。麻烦帮忙看一下,网上也没查到问题原因

恒温 回复

应该没有被占用 我换过端口了 还是这样。。。

恒温 回复

老师,之前用 appium 1.5.3 报 Parameters were incorrect
后来换成 appium desktop(1.6.4),还是报这个参数错误
WebDriverException: Message: Parameters were incorrect. We wanted {"required":["value"]} and you sent ["text","sessionId","id","value"]
这是为什么?

跟我同时用 npm 安装了 appium 1.6.4 有关系么?
期待老师解答

注:我用命令行启动 appium 服务, 是可以正常执行脚本的(sample-code-master)

jy503160 回复

已解决,selenium 版本的坑,退回到 3.0.1 即可

恒温 #21 · 2017年05月17日 Author
yefengjun 回复

你看看 是不是自己的端口被占用了啊


有哪位大神知道这个 xcode 编译 wda 时到错误是怎么回事吗?
找到问题原因了, 这个解决了可以安装到真机,又出现不断重启的问题了,真是一个坑接一个坑啊,😟 😂 😂

解决办法: 找到 WebDriverAgent/Configurations/ProjectSettings.xcconfig 文件,后面加上-Wno-partial-availability 就可以了,重新 build

这个怎么解得

小鱼 回复

用你这个方法,也不知为什么,第一次还是有问题,我又重装了一下,第二次就可以了,非常感谢

ansen 回复

朋友你 57 楼的那个错误解决了吗?

/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 /Applications/PyCharm.app/Contents/helpers/pycharm/_jb_unittest_runner.py --path /Users/shixin/zuobiao/zuobiaoCase/LoginModel.py
Testing started at 上午 10:29 ...
Launching unittests with arguments python -m unittest /Users/shixin/zuobiao/zuobiaoCase/LoginModel.py in /Users/shixin/zuobiao/zuobiaoCase

Ran 0 tests in 0.042s

FAILED (errors=1)

Failure
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/unittest/suite.py", line 163, in handleClassSetUp
setUpClass()
File "/Users/shixin/zuobiao/zuobiaoCase/LoginModel.py", line 12, in setUpClass
cls.driver=GetAppiumDriver().driver
File "/Users/shixin/zuobiao/Utills/Common.py", line 7, in singleton
instances[cls] = cls(args,*kw)
File "/Users/shixin/zuobiao/Utills/GetAppiumDriver.py", line 16, in __init

self.driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub,desired_caps")
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/appium/webdriver/webdriver.py", line 36, in init
super(WebDriver, self).init(command_executor, desired_capabilities, browser_profile, proxy, keep_alive)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 98, in init
self.start_session(desired_capabilities, browser_profile)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 188, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in execute
self.error_handler.check_response(response)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/selenium/webdriver/remote/errorhandler.py", line 165, in check_response
raise exception_class(value)
selenium.common.exceptions.WebDriverException: Message: Parameters were incorrect. We wanted {"required":["desiredCapabilities"],"optional":["requiredCapabilities","sessionId","id"]} and you sent ["desiredCapabilities","capabilities"]

Stdout:

Process finished with exit code 1
appium 1.5.2 Mac10.12.4 jdk1.7
appium-doctor

代码在 win10 上跑的同,在 mac'上总是提示 selenium.common.exceptions.WebDriverException: Message: Parameters were incorrect. We wanted {"required":["desiredCapabilities"],"optional":["requiredCapabilities","sessionId","id"]} and you sent ["desiredCapabilities","capabilities"]
困扰几天了,自己没找到问题的原因

ansen 回复

您好,打扰了,我也遇到了相同的问题 “ Original error: Sdk '10.2.1' was not in list of simctl sdks ”,想请教您是怎么解决的?感谢

挺好的,按照方法完美解决😀

ansen 回复

desired_caps['platformVersion'] = '10.1'

小鱼 回复

platformVersion 使用 10.2

cece0417 回复

是还不支持 xcode8 吗
我这边报错 Appium's IosDriver does not support xcode version 8.3.2

shishuaigang 回复

/Applications/Appium 2.app/Contents/Resources/app/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
/Applications/文件怎么进去的,sh ./Scripts/bootstrap.sh 这没机会用

回复

打开终端 (mac),cd /Applications 就进去了呀

yefengjun 回复

你的问题解决了吗?

石小朵 回复

本地 *** 了就好了..你可以百度下 google hosts 然后再试试。


有谁遇到过这个问题的么??

恒温 回复

appium 连接真机后没有 Xpath 定位是怎么回事?

已下载试用,感觉还不错。

真他妈的好用

110楼 已删除
149楼 已删除
114楼 已删除
152楼 已删除

是不是这个 appium beta 版本不稳定的缘故

123楼 已删除
146楼 已删除
恒温 #202 · 2017年04月11日 Author

那就自己想办法解决呗。

204楼 已删除
67楼 已删除
50楼 已删除
ls 回复

普通的没有,需要手动的进行签名

fdeferf 回复

好的,感谢

请问下,装 WebDriverAgent 时提示输入 keychain,这个 keychain 密码是什么?

我查找了很多情况,都试过了还是不行;重装了系统, 试过多个版本,依旧出现这个问题。(win10)。 有人能知道解决情况吗?

恒温 #28 · 2017年03月08日 Author
shishuaigang 回复

安卓没试过。

加精理由: 介绍详细丰富.

这个 inspector 没有元素的 xpath 属性

自从把截图和定位做到 uiautomatorviewer 中后,再也不用这个界面了 🚕

恒温 #264 · 2017年03月08日 Author
bauul 回复

老司机

恒温 #263 · 2017年03月08日 Author
bauul 回复

uiautomatorviewer 自动生成 xpath (兼容 android 和 iOS) · TesterHome
https://testerhome.com/topics/7404

恒温 #260 · 2017年03月08日 Author

完美

deviceName 真机怎么填

我安装的是最后一个,然后运行出错了,显示是设备未找到,我用的模拟器,adb devices 上也是显示有设备的,换用老版本的 appium 也能跑
[ADB] Error: Error getting device platform version. Original error: Error executing adbExec. Original error: 'Command 'C:\Users\shishuaigang\AppData\Local\Android\sdk\platform-tools\adb.exe -P 5037 -s 192.168.86.101:5555 shell getprop ro.build.version.release' exited with code 4294967295'; Stderr: 'error: device '192.168.86.101:5555' not found'; Code: '4294967295'
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '5.1'
desired_caps['deviceName'] = '192.168.86.101:5555'
desired_caps['appPackage'] =xxxxx
desired_caps['appActivity'] = '.loginregister.LanuchSetActivity'
desired_caps['unicodeKeyboard'] = True
desired_caps['resetKeyboard'] = True

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