Your problem is that unlike the Watir::IE objects, the objects returned 
by Watir::IE::Frame are short lived. You are using your reference for 
too long. Specifically a page refresh invalidates the object. Details below.

Bret

  # return a current, valid reference to the frame.
  def content_frame
    @ie.frame("ifr_content")
  end

  # Don't change the @ie object to be the frame!
  def setup
      @ie = getIEinstance
      set_environment(@ie)
      login(@ie, "radmin", "radmin747") # Calls the Login Method which 
intoduces the wrapper that is
  end  
 
  # Use the new content_frame method
  def test_RuleTemplateWithRule 
    content_frame.link(:text,'Update the Information).click

etc...

Ajitesh Srinetra wrote:
> Hi Bret
> This is one sample testcase
>
>
>
> require File.dirname(__FILE__) + '/../../../test_helper'
> require File.dirname(__FILE__) + '/../../../Methods/ProcessRecords'
> require File.dirname (__FILE__) + '/../../../Methods/RuleCreation'
>
> class RuleTemplateWithRule_test < Test::Unit::TestCase
>  
>   def setup
>       @ie = getIEinstance
>       set_environment(@ie)
>       @ie=login(@ie, "radmin", "radmin747") # Calls the Login Method 
> which intoduces the wrapper that is
>   end
>     
>   def teardown
> closeIE(@ie)
>   end
>     
>   def test_RuleTemplateWithRule
>  
>  @ie.link(:text,'Update the Information).click
>
>  #Here the Refresh is happening
>
>     assert(@ie.contains_text('Another Rule is added'))
>
>    # The TestCase starts failing from here as it is not able to find 
> the next link as the object ie= ie.frame("ifr_content") is lost
>
>     @ie.link(:text, 'View Templates').click
>     assert_equal("enable", (@ie.image(:name, 
> 'show_CumulativeUsageForIMSI').id))
>     assert_equal("disable", (@ ie.image(:name, 
> 'editCumulativeUsageForIMSI').id))
>     assert_equal("disable", (@ie.image(:name, 
> 'deleteCumulativeUsageForIMSI').id))
>   end
>   end
>  
>
> The Login method used earlier in the testcase is writeen below
>  def login(ie,username,password)
>        ie.text_field(:name, "ranger_user[name]").set(username)
>          ie.text_field(:name, "ranger_user[password]").set(password)
>          ie.button(:name, "commit").click
>        sleep 2
>        return ie.frame("ifr_content") #returns the iframe object
>   end
>
> I am also using @ie.refresh in some testcases.So I think the method 
> also needs to be modified .
>
> Thanks and Regards
> Ajitesh
> ------------------------------------------------------------------------
>
> _______________________________________________
> Wtr-general mailing list
> Wtr-general@rubyforge.org
> http://rubyforge.org/mailman/listinfo/wtr-general

_______________________________________________
Wtr-general mailing list
Wtr-general@rubyforge.org
http://rubyforge.org/mailman/listinfo/wtr-general

Reply via email to