客户: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说没有真正的区别。我只能怀疑肮脏的身材。
答案 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提供了更好的通知。