当Calabash iOS向我发送*****结果时,这是什么意思?

问题描述:

客户端:红宝石2.1.5 /宝石/葫芦,黄瓜0.16.3 服务器: “版本”: “0.16.2”当Calabash iOS向我发送*****结果时,这是什么意思?

我周围添加一些地图调试()。正常的查询返回:

{:query =>“标记为'其他选项'的按钮”,:method =>:query,:args => [{:isEnabled => 1}],:r => {“status_bar_orientation”=>“down”,“results”=> [“*****”],“outcome”=>“SUCCESS”}}

我不知道如何解释*** **。

在map.rb的assert_map_results中,“*****”是一个失败的案例,所以它显然很糟糕。

在模拟器日志中,我看到的东西像

10月12日17点37分57秒廷布斯-的MacBook,Pro.local [36121]: - [__ NSCFString objectForKey:]:无法识别的选择发送到实例0x7f7f6fe4f730 十月12 17:37:57 TimBs-MacBook-Pro.local [36121]:***由于未捕获的异常'NSInvalidArgumentException',原因:' - [__ NSCFString objectForKey:]:无法识别的选择器发送到实例0x7f7f6fe4f730'

我认为它试图决定它是否可以将isEnabled应用于字符串“*****”,而不是像地图那样行为的对象。

为什么地球上他们选择了一些不具信息性的东西,并且很难进行网络搜索?


更新:我原本

element = "button marked:'game hot icon norm'" 
element_exists(element) && query(element, :isEnabled).first.eql?(1) 

但发现一个参考

query("button isEnabled:1") 

我误读,并适于作为查询( “键”,的IsEnabled:1)。这没有帮助,但不是“*****”结果的原因。不幸的是,回到已知的良好状态,并逐渐回到问题状态,从来没有导致问题重新出现,尽管git说没有真正的区别。我只能怀疑一个肮脏的构建。

这意味着您尝试调用Objective-C对象上的未知选择器。 在这种情况下,在NSString的实例上正在调用objectForKey:

什么是您试图运行的查询或手势?

它是:

query("button marked:'Other options'", [{:isEnabled => 1}]) 

如果是这样,那么问题是,NSButton并不isEnabled:响应(注意尾随:)。这是访问者。制定者是:setEnabled:

如果您正在试图通过启用岬过滤:

query("button marked:'Other options'", :isEnabled) 

如果你试图设置启用状态:

query("button marked:'Other options'", [{:setEnabled => 1}]) 

你到底为什么他们选择的东西,所以不提供信息并难以搜索网络?

它很难改变,因为Calabash卡在0.x中,并且使用语义版本控制,因此直到1.x版本才能更改API。我相信(但我不记得)瓢虫2.0提供了一个更好的通知。