2015-10-13 36 views
0

客戶端:紅寶石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說沒有真正的區別。我只能懷疑一個骯髒的構建。

回答

0

這意味着您嘗試調用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提供了一個更好的通知。