aidy schrieb:
> I am iterating through a collection and using Test::Unit assertations
> on each object
> 
>    begin
>      search.each {|@x|
>      assert($ie.contains_text(@x))  }
>    rescue => e
>      puts "#{@x} does not exist in HTML"
>    end
> 
> However, the problem is that if the first assertation is false, an
> exception is thrown and my loop terminates. I would like to continue
> the loop after an exception is thrown. I have tried 'retry', but I find
> myself in an infinite loop.

Aidy, are you using this code in a unit test, or are you using the 
assertions as part of your normal code? If this is normal code, see 
David's answer how to catch the error inside the loop.

If this is part of a unit test, and you want to report every false 
element, take a look at the code in

   http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/138320

With this module, your test could look like:

   class MyTestCase < Test::Unit::TestCase

     include ErrorCollector

     def test_search_screen
       ...
       collecting_errors do
         search.each do |@x|
           assert($ie.contains_text(@x), "#{@x} does not exist in HTML")
         end
       end
     end

   end

Regards,
Pit