2011-02-03 34 views
0

在網頁上,您可以根據狀態(活動,未激活或已刪除)過濾顯示哪些應用程序。在表格中循環,如果該行具有正確的文本則通過

當選擇「全部顯示」時,應顯示狀態爲「活動」,「非活動」或「已刪除」的應用程序。

我它得到循環通過使用此代碼細胞的文字:

 $ie.table.each do | row | 
      row.each do | cell | 
      puts cell.text() 
      # Passes if the text is either Active, Inactive or Deleted. 
      end 
     end 

如果它遍歷該行的文本或者是活動,不活動,或刪除的測試應該通過。

+0

什麼樣的對象是$ ie?似乎你使用的不止是rspec - 是Watir嗎?另外,你還沒有提到你想如何處理多個單元格,如果他們不同。 – 2011-02-03 21:04:28

回答

0

你的例子並不清楚什麼是細胞和信息的狀態。因爲這種情況下,我會假設你可以訪問行[0]中的狀態,並且過濾器文本位於名爲過濾器的變量中,並且您打算忽略顯示整行。

因此,與這樣的假設,在我的腦海您的數據是這樣的:

Status | Name 
-------------------- 
Active | Foo App 
Inactive | Bar App 
Active | Baz App 
Deleted | Blam App 

如果是這樣的話:

$ie.table.each do | row | 
    if filter == 'All' 
    next unless %w(Active Inactive Deleted).include?(row[0]) 
    else 
    next unless row[0] == filter 
    end 

    row.each do | cell | 
    puts cell.text() 
    end 
end 

而且,如果假設,即不能有任何狀態除了(Active Inactive Deleted),我們可以簡化它:

$ie.table.each do | row | 
    unless filter == 'All' 
    next unless row[0] == filter 
    end 

    row.each do | cell | 
    puts cell.text() 
    end 
end 
1

你的問題會從一個例子中受益。但我猜你正在尋找類似的東西:

puts cell.text() if ["Active", "Inactive", "Deleted"].include? cell.text() 
相關問題