当Calabash iOS在结果中向我发送*****时,这意味着什么?

时间:2015-10-13 15:21:50

标签: ios ruby calabash

客户:ruby-2.1.5 / gems / calabash-cucumber-0.16.3 服务器:“版本”:“0.16.2”

我在map()附近添加了一些调试。普通查询返回:

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

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

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

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

这样的内容

Oct 12 17:37:57 TimBs-MacBook-Pro.local [36121]: - [__ NSCFString objectForKey:]:无法识别的选择器发送到实例0x7f7f6fe4f730 10月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说没有真正的区别。我只能怀疑肮脏的身材。

1 个答案:

答案 0 :(得分:0)

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

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

是吗:

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

如果有,那么问题是NSButton没有回复isEnabled:(请注意尾随:)。那是访问者。 setter是:setEnabled:

如果您尝试使用enabled-ness进行过滤:

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

如果您尝试设置启用状态:

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

为什么他们真的选择了那些没有信息的东西,并且难以进行网络搜索?

很难改变,因为Calabash停留在0.x并使用语义版本控制,因此在1.x版本之前不能更改API。我相信(但我不记得)Calabash 2.0提供了更好的通知。