Boolean bool = my_driver.findElements(By.id("my element id")).size()>0;
это тебе поможет.
Как люди сказали, можно использовать
each_with_index
, но если Вы хотите индексы с итератором, отличающимся от "каждого" (например, если Вы хотите отобразиться с индексом или чем-то как этот), можно связать перечислители с each_with_index методом или просто использовать with_index:
blahs.each_with_index.map { |blah, index| something(blah, index)}
blahs.map.with_index { |blah, index| something(blah, index) }
Это - что-то, что можно сделать от рубиновых 1.8.7 и 1.9.
[:a, :b, :c].each_with_index do |item, i|
puts "index: #{i}, item: #{item}"
end
Вы не можете сделать этого с для. Мне обычно нравится более декларативный вызов каждому лично так или иначе. Частично, потому что его легкое для перехода к другим формам, когда Вы поражаете предел для синтаксиса.
Да, это collection.each
, чтобы сделать циклы, и затем each_with_index
для получения индекса.
, вероятно, необходимо прочитать книгу Ruby, потому что это - фундаментальный Ruby и если Вы не знаете это, Вы собираетесь быть в большой проблеме (попытка: http://poignantguide.net/ruby/ ).
Взятый от исходного кода Ruby:
hash = Hash.new
%w(cat dog wombat).each_with_index {|item, index|
hash[item] = index
}
hash #=> {"cat"=>0, "wombat"=>2, "dog"=>1}
Относительно Вашего вопроса о выполнении i++
, ну, в общем, Вы не можете сделать этого в Ruby. i += 1
оператор, который Вы имели, точно, как Вы, как предполагается, делаете это.
Если blahs
класс, который смешивается в Счетном, необходимо смочь сделать это:
blahs.each_with_index do |blah, i|
puts("#{i} #{blah}")
end
Если у вас нет новой версии each_with_index
, вы можете использовать метод zip
для объединения индексов с элементами:
blahs = %w{one two three four five}
puts (1..blahs.length).zip(blahs).map{|pair|'%s %s' % pair}
которые производит:
1 one
2 two
3 three
4 four
5 five