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

Lihuazhang · 发布于 2017年03月08日 · 最后由 nianyuzui 回复于 2017年06月27日 · 11847 次阅读
本帖已被设为精华帖!

遇到这种问题:

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 还是得好好看看源码,了解下原理。

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

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

2562

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

110
2562carl 回复

老司机

110
2562carl 回复

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

15271

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

110

完美

110
15271iSteven 回复

看我的gif图

10515

deviceName 真机怎么填

15271
110Lihuazhang 回复

nice

2113

支持ios 10.0以上了么?

110
Lihuazhang · #13 · 2017年03月08日 作者
2113testly 回复

支持

110
Lihuazhang · #14 · 2017年03月08日 作者
10515itboystsb 回复

设备的udid

960b2a

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

960b2a

还有是否支持xcode 8呢?

110
Lihuazhang · #17 · 2017年03月08日 作者
960b2alrw3716740 回复

直接用 release 不要用源代码啊

Db42eb

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

15271

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

110
Lihuazhang · #21 · 2017年03月08日 作者
15271iSteven 回复

的确

960b2a

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

110
Lihuazhang · #23 · 2017年03月08日 作者
960b2alrw3716740 回复

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

Db42eb
110Lihuazhang 回复

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

97969f

windows是安装最后的那个吧?

97969f

我安装的是最后一个,然后运行出错了,显示是设备未找到,我用的模拟器,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

A663fa

终于出来了,赞

110
Lihuazhang · #28 · 2017年03月08日 作者
97969fjiaoluo 回复

安卓没试过。

97969f
110Lihuazhang 回复

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

104 seveniruby 将本帖设为了精华贴 03月08日 12:02
104

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

110
Lihuazhang · #32 · 2017年03月08日 作者
97969fjiaoluo 回复

理论上应该都支持。

10515

模拟器启动报错

13536

这个inspector没有元素的xpath属性

110
10515itboystsb 回复

brew install carthage

A663fa

没有xpath 什么套路

C872bc

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

12000

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

13536
12000cece0417 回复

没错

12000

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

110
Lihuazhang · #42 · 2017年03月08日 作者
12000cece0417 回复

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

12000

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

110
Lihuazhang · #44 · 2017年03月08日 作者
12000cece0417 回复

你udid是怎么拿到的?

12000
110Lihuazhang 回复

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

12000
110Lihuazhang 回复

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

Db42eb
12000cece0417 回复

在么,你qq多少

12000
Db42ebmads 回复

😀

Db42eb
12000cece0417 回复

要知道你的名字,尴尬了

10129

这个工具给的xpath是不准的

110
12000cece0417 回复

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

10515
12000cece0417 回复

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

12000
10515itboystsb 回复

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

12000
110Lihuazhang 回复

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

10515
12000cece0417 回复

能加我qq448529606帮我看下吗?

9167

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

96
12000cece0417 回复

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

110
Lihuazhang · #58 · 2017年03月09日 作者
32ansen 回复

你系统是啥版本的?

96
110Lihuazhang 回复

OS 10.11 Xcode8.2 IOS10.1.1

110
Lihuazhang · #60 · 2017年03月09日 作者
32ansen 回复

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

在命令行运行:

xcrun simctl list

96
110Lihuazhang 回复

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

Db42eb

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

110
Lihuazhang · #63 · 2017年03月09日 作者
Db42ebmads 回复

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

Db42eb
110Lihuazhang 回复

把73删了

96

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

Db42eb
12000cece0417 回复


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

110
Lihuazhang · #67 · 2017年03月10日 作者
Db42ebmads 回复

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

6853

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

6853

真他妈的好用

648
6853codeskyblue 回复

我用起来怎么很卡

1317
6853codeskyblue 回复

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

6853
648xinxjxjxj 回复

卡卡的,但是不影响使用

10174

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

110
Lihuazhang · #75 · 2017年03月13日 作者
10174f_si 回复

是的

110

遇到这种问题:

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

重新在你的真机上编译WebDriverAgent

13736

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

97969f

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

2106

学习了

110

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

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

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

110
Lihuazhang · #83 · 2017年03月15日 作者
13536wxlsh114 回复

给个百度云的下载地址?

110
Lihuazhang · #85 · 2017年03月15日 作者
32ansen 回复

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

97969f

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

110
Lihuazhang · #87 · 2017年03月15日 作者
97969fjiaoluo 回复

换了就要重新编译啊。。

97969f
110Lihuazhang 回复

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

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

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

13536
110Lihuazhang 回复

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

110
Lihuazhang · #90 · 2017年03月15日 作者
97969fjiaoluo 回复

嗯 我就是这样成功的

97969f
110Lihuazhang 回复

我这还是失败,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"}}

110
Lihuazhang · #92 · 2017年03月15日 作者
97969fjiaoluo 回复

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

110
Lihuazhang · #93 · 2017年03月15日 作者
97969fjiaoluo 回复

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

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

Db42eb
110Lihuazhang 回复

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

96
110Lihuazhang 回复

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

97969f
110Lihuazhang 回复

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

110
Lihuazhang · #97 · 2017年03月15日 作者
32ansen 回复

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

97969f
110Lihuazhang 回复

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

110
Lihuazhang · #99 · 2017年03月15日 作者
97969fjiaoluo 回复

xcode的日志呢?

96
110Lihuazhang 回复

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

97969f
110Lihuazhang 回复

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

110
Lihuazhang · #102 · 2017年03月15日 作者
97969fjiaoluo 回复

😎 😎

Db42eb
110Lihuazhang 回复

😍 😍 😍 😍

Db42eb

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

Db42eb

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

110
Lihuazhang · #107 · 2017年03月16日 作者
Db42ebmads 回复

这么神奇?

Db42eb
110Lihuazhang 回复

是的,我刚刚试验过了

Db42eb
110Lihuazhang 回复

写在udid前面,你试试

110楼 已删除
15931


真机跑不成功

15931

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

114楼 已删除
15931
Db42ebmads 回复

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

116楼 已删除
Db42eb
15931lily241 回复

要装appium的wda这是大前提

Db42eb

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

119楼 已删除
Db42eb

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

Db42eb

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

122楼 已删除
123楼 已删除
15931

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

Db42eb
15931lily241 回复

不是/inspector么

Db42eb
15931lily241 回复

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

97969f
110Lihuazhang 回复

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

15931
Db42ebmads 回复


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

Db42eb
15931lily241 回复

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

15931
Db42ebmads 回复


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

15931
Db42ebmads 回复

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

Db42eb
15931lily241 回复

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

Db42eb
15931lily241 回复

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

15931
Db42ebmads 回复


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

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

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

110
Lihuazhang · #137 · 2017年03月18日 作者
15498mamian 回复

这两个分别是啥值呀?

15498
110Lihuazhang 回复

不好意思,没说清楚
刚刚我跑了下,不需要这两个值也可以
之前参考的这个链接 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"
}
110
Lihuazhang · #139 · 2017年03月19日 作者
15498mamian 回复

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

Db42eb
110Lihuazhang 回复

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

3908
110Lihuazhang 回复

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

Db42eb
3908arvin 回复

截图看看

3908
Db42ebmads 回复


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

Db42eb
3908arvin 回复

没遇过,配置看看

3908
Db42ebmads 回复

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

Db42eb
3908arvin 回复

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

3908
Db42ebmads 回复

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

Db42eb
3908arvin 回复

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

13536
15498mamian 回复

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

15498
13536wxlsh114 回复

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

13536
15498mamian 回复

果然如此!谢谢!

15498
13536wxlsh114 回复

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

13536
15498mamian 回复

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

155

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

15271

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

C872bc

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

110
Lihuazhang · #157 · 2017年03月23日 作者
C872bcvisionary 回复

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

C872bc
110Lihuazhang 回复

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

110
Lihuazhang · #159 · 2017年03月23日 作者
C872bcvisionary 回复

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

C872bc
110Lihuazhang 回复

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

110
Lihuazhang · #161 · 2017年03月23日 作者
C872bcvisionary 回复

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

C872bc
110Lihuazhang 回复

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

Db42eb
C872bcvisionary 回复

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

Db42eb
110Lihuazhang 回复

😂 运行脚本速度太慢了

C872bc
Db42ebmads 回复

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

Db42eb
C872bcvisionary 回复

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

15891
Db42ebmads 回复

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

Db42eb
15891Zero.0 回复

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

15891
Db42ebmads 回复

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

Db42eb
15891Zero.0 回复

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

15891
Db42ebmads 回复

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

Db42eb
15891Zero.0 回复

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

15891
Db42ebmads 回复

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

Db42eb
15891Zero.0 回复

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

Db42eb
15891Zero.0 回复

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

15891
Db42ebmads 回复

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

Db42eb
15891Zero.0 回复

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

15891
Db42ebmads 回复

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

Db42eb
15891Zero.0 回复

脚本能看下么

15891
Db42ebmads 回复
"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();

15891
Db42ebmads 回复

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

Db42eb
15891Zero.0 回复

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

15891
Db42ebmads 回复

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

Db42eb
15891Zero.0 回复

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

15891
Db42ebmads 回复

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

Db42eb
15891Zero.0 回复

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

15891
Db42ebmads 回复

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

Db42eb
15891Zero.0 回复

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

96

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

96

[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 这是报错信息

13728
32congcong 回复

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

4365
110Lihuazhang 回复

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

96
Db42ebmads 回复

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

Db42eb
32ganyunxiao 回复

没,我用appium

Db42eb
32ganyunxiao 回复

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

96
Db42ebmads 回复

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

96
Db42ebmads 回复

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

Db42eb
32ganyunxiao 回复

ok

96
Db42ebmads 回复

测试了一下 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时间基本对半

Db42eb
32ganyunxiao 回复

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

201楼 已删除
110
Lihuazhang · #202 · 2017年04月11日 作者

那就自己想办法解决呗。

C872bc
110Lihuazhang 回复

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

204楼 已删除
4365

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

C872bc
4365neyo 回复

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

4365
C872bcvisionary 回复

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

110
Lihuazhang · #208 · 2017年04月11日 作者
C872bcvisionary 回复

解决就好了。

C872bc
4365neyo 回复

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

96
110Lihuazhang 回复

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

96
32congcong 回复

请问你是怎么解决的呢?

110
Lihuazhang · #212 · 2017年04月11日 作者
32xiao1900 回复

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

4365
C872bcvisionary 回复

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

110
Lihuazhang · #214 · 2017年04月11日 作者
4365neyo 回复

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

Db42eb
4365neyo 回复

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

15931

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

96
110Lihuazhang 回复

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

218楼 已删除
15931

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.
这个怎么解决呀

482497

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?

110
Lihuazhang · #221 · 2017年04月21日 作者
482497SamHongqiang 回复

把英文翻译一遍

482497
110Lihuazhang 回复

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

482497

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'
这个报错怎么解决啊?

110
Lihuazhang · #224 · 2017年04月21日 作者
482497SamHongqiang 回复

先找个教程入门吧。

482497
110Lihuazhang 回复

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

482497
15931lily241 回复

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

15498
482497SamHongqiang 回复

automationName=XCUITest

482497
15498mamian 回复

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

15498
482497SamHongqiang 回复

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

482497
15498mamian 回复

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

15498
482497SamHongqiang 回复

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

482497
15498mamian 回复

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

15498
482497SamHongqiang 回复

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

482497
15498mamian 回复

重启电脑解决了~😂

482497
15931lily241 回复

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

15931


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

96
15498mamian 回复

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

15498
32ls1509 回复

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

96
15498mamian 回复

好的,感谢

361a97

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

7ab471
110Lihuazhang 回复

老师,之前用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)

7ab471
7ab471jy503160 回复

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

13593

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

110
Lihuazhang · #247 · 2017年05月17日 作者
13593yefnegjun 回复

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

13593
110Lihuazhang 回复

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

96


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

A5848c
32heaven 回复

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

96
32heaven 回复

这个怎么解得

96
A5848cnianyuzui 回复

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

13593
32ansen 回复

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

Bd7651

/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"]
困扰几天了,自己没找到问题的原因

A5848c
32ansen 回复

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

D4b647

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

54c109
A5848cnianyuzui 回复

platformVersion 使用10.2

54c109
32ansen 回复

desired_caps['platformVersion'] = '10.1'

96
12000cece0417 回复

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

96
97969fjiaoluo 回复

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

97969f
32yufenghaihai 回复

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

361a97
13593yefnegjun 回复

你的问题解决了吗?

13593
361a97shixiaoduo 回复

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

31a663


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

A5848c
110Lihuazhang 回复

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

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