2011-02-03 1 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? Кроме того, вы не упомянули, как вы хотите обрабатывать несколько ячеек, если они разные. –

ответ

0

Не ясно, своим примером, что клетки и где информация для статуса. Так как это так, я предполагаю, что вы можете получить доступ к статусу в строке [0], а текст фильтра находится в переменной var , и вы намерены пропустить отображение всей строки.

Так с этим предположением, в моей голове ваши данные выглядит следующим образом:

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() 
Смежные вопросы