2011-03-24 47 views
1

我需要比較內部「每個」條件數組元素內條件:紅寶石:如果如下所示各條件

a = ["config_left","mon_left","acc_left",lg_left..] 
a.each { |x| 
    ff.div(:id, x).fireEvent("onmouseup") 
    if x == 1 ##<<<<<<<<<<<<is this right? 
    Watir::Waiter::wait_until{ff.button(:id, "add").enabled?} 
    else 
    sleep 7 
end 

x == 1正確?試過x == "mon_left",但即使這樣也行不通。請幫忙。

+3

身份文明。 – 2011-03-24 13:47:05

+1

這是一個非常糟糕的問題。語法錯了,問題不清楚。許多變量/方法在沒有通知的情況下給出 – sawa 2011-03-24 14:34:33

回答

5

首先,你應該發佈一個完整的例子 - 我不得不在你的問題中修復至少3個語法錯誤。

二,你是什麼意思的「它不工作」?這個工作對我來說:

a = ["config_left","mon_left","acc_left","lg_left"] 
a.each_with_index do |x,i| 
    puts i if x == "mon_left" 
end 

第三,你可能想使用a.detect ...而不是每個/如果

0

看起來你是在談論指數:

some_array.each{ | element, index| 
    do_something if index == 1 
} 

所以在你的情況下

a = ["config_left","mon_left","acc_left", "lg_left"] 
a.each { |x, i| 
    ff.div(:id, x).fireEvent("onmouseup") 
    if i == 1 
     Watir::Waiter::wait_until{ff.button(:id, "add").enabled?} 
    else 
     sleep 7 
    end 
} 
+0

你需要'each_with_index',而不是'each'在塊內取'i'。 – sawa 2011-03-24 14:31:07

+0

嗨, 試圖按照你的建議,但其 – vinay 2011-03-24 16:43:40

+0

嗨,試圖按你的建議,但沒有得到所需的輸出。 a.each {| x,i | Watir :: Wait.wait_until {ff.button(:id,「ify == 1」){「ifm ==」){0121} JID-GEN-btnTbarAdd按鈕「)。啓用?} 其他 睡眠7 結束 } 隨着放我的輸出是零,並與看跌期權 」#{I}「 輸出是空白:( 我是很新的紅寶石如此後悔的麻煩! – vinay 2011-03-24 16:45:25