List Info

Thread: Re: Problem with wrapper created around Watir.rb




Re: Problem with wrapper created around Watir.rb
user name
2007-02-22 07:30:14
Hi Bret
Sorry I missed the wrapper code that i have written

require 'watir'
include Watir
include SupportsSubElements

module SupportsSubElements

  ;    def _getNikiraLink(links, how, what)
      ;      link = nil
   ;         case how
   ;         when :index
        ;        begin
          ;          link = links[ (what-1).to_s ]
       ;         rescue
        ;           ; link=nil
    ;           ; end
          ;     
         ;   when :url
 ;           ;    links.each do |thisLink|
           ;         if what.matches(thisLink.href)
         ;           ;    link = thisLink if link == nil
   ;           ;      end
          ;      end
   ;           
         ;   when :text
          ;      links.each do |thisLink|
           ;         if what.matches(thisLink.innerText.strip)
         ;           ;    link = thisLink if link == nil
          ;          end
   ;           ;  end
   ;           
         ;   when :id
   ;           ;  links.each do |thisLink|
           ;         if what.matches(thisLink.invoke("id"))
       ;           ;      link = thisLink if link == nil
          ;          end
   ;           ;  end
   ;         when :name
          ;      links.each do |thisLink|
           ;         if what.matches(thisLink.invoke("name"))
   ;           ;          link = thisLink if link == nil
          ;          end
   ;           ;  end

 ;           when :title
        ;        links.each do |thisLink|
           ;         if what.matches(thisLink.invoke("title"))
 ;           ;           ; link = thisLink if link == nil
          ;          end
   ;           ;  end
   ;           
         ;   when :beforeText
         ;       links.each do |thisLink|
           ;         if what.matches(thisLink.getAdjacentText(";afterEnd").strip)
     ;           ;        link = thisLink if link == nil
   ;           ;      end
   ;           ;  end

 ;           when :afterText
           ;     links.each do |thisLink|
           ;         if what.matches (thisLink.getAdjacentText("beforeBegin").strip)
          ;           ;   link = thisLink if link == nil
   ;           ;      end
   ;           ;  end
   ;         else
 ;           ;    raise MissingWayOfFindingObjectException, "#{ how.inspect} is an unknown way of finding a link ( # )"
      ;      end
   ;     return link
 ;     end

 ;       def getLink( how, what )
        links = Array.new
  ;          links = document.all.tags ("A";)
       ;    
         ;   # Guard ensures watir won't crash if somehow the list of links is nil
   ;         if (links == nil)
 ;           ;    raise UnknownObjectException, "Unknown Object in getLink: attempted to click a link when no links present"
 ;           end
   ;     link = _getNikiraLink(links, how, what)
          
         ;   # Guard ensures watir won't crash if somehow the list of links is nil
   ;         if (link == nil)
 ;              ; links = document.frames[9;ifr_content'].document.all.tags("A")
               ; if (links == nil)
 ;                   raise UnknownObjectException, "Unknown Object in getLink: attempted to click a link when no links present"
 ;               end
   ;         link = _getNikiraLink(links, how, what)
              if (link == nil)
 ;                   raise UnknownObjectException.new(";Unable to locate object, using # and # inside getLink")
            end
   ;         end     ;      
         ;   # if no link found, link will be a nil.  This is OK.  Actions taken on links (e.g. "click") should rescue
         ;   # the nil-related exceptions and provide useful information to the user.
      ;      return link
 ;       end
end


class Watir::SpanDivCommon < Watir::Element
   ; &nbsp; &nbsp; def initialize( ieController,  how , what )
 &nbsp; &nbsp;   ; &nbsp; &nbsp; ieController = ieController
 &nbsp; &nbsp;   ; &nbsp; &nbsp; how = how
&nbsp; &nbsp; &nbsp; &nbsp;   what = what
 ; &nbsp; &nbsp; &nbsp; &nbsp;   o = ieController.getNonControlObject(tag , how, what )
 &nbsp;   &nbsp;  unless o
 &nbsp;   &nbsp; &nbsp; &nbsp; &nbsp;   ; o = ieController.getContainer.getNonControlObject(tag , how, what ) &nbsp; 
 &nbsp;   &nbsp;  end
   ; &nbsp; &nbsp; &nbsp; &nbsp; super( o )
 &nbsp; &nbsp;   ; &nbsp; &nbsp; typingspeed = ieController.typingspeed &nbsp; &nbsp; 
 &nbsp; &nbsp; &nbsp;   ; &nbsp; activeObjectHighLightColor = ieController.activeObjectHighLightColor&nbsp; &nbsp; &nbsp;
 &nbsp; &nbsp; &nbsp;  end
end

class Watir::Link < Watir::Element
   ; &nbsp; &nbsp; # Returns an initialized instance of a link object
&nbsp; &nbsp; &nbsp;   # &nbsp; * ieController  - an instance of an IEController
 &nbsp; &nbsp;   ; # &nbsp; * how &nbsp;   ; &nbsp;  - symbol - how we access the link
&nbsp; &nbsp; &nbsp;   # &nbsp; * what   ; &nbsp; &nbsp;  - what we use to access the link, text, url, index etc
   ; def initialize( ieController,  how , what )
 &nbsp; &nbsp;   ;  &nbsp;  ieController = ieController
 &nbsp;   &nbsp; &nbsp;  how = how
   ; &nbsp; &nbsp;  &nbsp;  what = what
&nbsp; &nbsp;  &nbsp; &nbsp;  begin
&nbsp; &nbsp; &nbsp; &nbsp;  &nbsp;   &nbsp; &nbsp;  &nbsp;  o = ieController.getLink( how, what )
 &nbsp;   &nbsp; &nbsp;  rescue
&nbsp; &nbsp;  &nbsp;   &nbsp;  begin ; &nbsp;
 &nbsp;   &nbsp;   &nbsp;   &nbsp;  o = ieController.getContainer.getLink( how, what )
 &nbsp;   &nbsp;   &nbsp;  rescue
 &nbsp;   &nbsp;   &nbsp;   &nbsp;  o = nil
   ;  &nbsp;   &nbsp;  end
   ;  &nbsp;  end &nbsp; 
 &nbsp;   &nbsp;  super( o )
 &nbsp;  end
end

class Watir::Label < Watir::Element
   ; &nbsp; &nbsp; def initialize( ieController , how, what)
&nbsp; &nbsp; &nbsp; &nbsp;   ieController = ieController
   ; &nbsp; &nbsp; &nbsp; &nbsp; how = how
   ; &nbsp; &nbsp; &nbsp; &nbsp; what = what
 ; &nbsp; &nbsp; &nbsp; &nbsp;   o = ieController.getNonControlObject("LABEL" , how, what )
 &nbsp;   &nbsp;  unless o
 &nbsp;   &nbsp; &nbsp; &nbsp; &nbsp;   ; o = ieController.getContainer.getNonControlObject ("LABEL" , how, what ) &nbsp; 
 &nbsp;   &nbsp;  end
   ; &nbsp; &nbsp; &nbsp; &nbsp; super( o )
 &nbsp; &nbsp;   ; end
end

class Watir::Table < Watir::Element
   ; &nbsp; &nbsp; def get_table
  ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; allTables = ieController.document.getElementsByTagName ("TABLE")
&nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; ieController.log "There are #{ allTables.length } tables&quot;
 &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp; tableIndex = 1
 &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp; table=nil
  ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; allTables.each do |t|
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp;  next  unless table == nil
&nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;  case how
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;  when :id
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;  if what.matches( t.invoke(&quot;id&quot;).to_s )
 &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;  table = t
 &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp;  end
&nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; when :index
&nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; if tableIndex == what.to_i
  ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp;  table = t
 &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp;  end
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp;  end
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp;  tableIndex = tableIndex + 1
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ;  end
   ;  &nbsp;  unless table
&nbsp; &nbsp;  &nbsp;   &nbsp;  allTables = ieController.getContainer.document.getElementsByTagName("TABLE")
&nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; tableIndex = 1
 &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp; table=nil
  ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; allTables.each do |t|
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp;  next  unless table == nil
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp;  case how
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;  when :id
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;  if what.matches( t.invoke(&quot;id&quot;).to_s )
 &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;  table = t
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;  end
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;  when :index
&nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; if tableIndex == what.to_i
  ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp;  table = t
 &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp;  end
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp;  end
&nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;  tableIndex = tableIndex + 1
 &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp; end
   ;  &nbsp;  end
   ; &nbsp; &nbsp; &nbsp; &nbsp; return table
&nbsp; &nbsp; &nbsp; &nbsp; end
end

class Watir::TableRow < Watir::Element
   ; &nbsp; &nbsp; def initialize(ieController , how, what)
&nbsp; &nbsp;   ; &nbsp; &nbsp;  ieController = ieController
 &nbsp; &nbsp;   ; &nbsp; &nbsp; how = how &nbsp;
 &nbsp; &nbsp; &nbsp;   ; &nbsp; what = what  
 &nbsp; &nbsp; &nbsp;   ; &nbsp; o=nil
&nbsp; &nbsp; &nbsp; &nbsp;   ;  if how == :direct
&nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;  o = what
 ; &nbsp; &nbsp; &nbsp; &nbsp;   else
 ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp;  o = ieController.getTablePart( "TR&quot; , how , what ) &nbsp;
 &nbsp; &nbsp; &nbsp;   ; &nbsp; end
   ;  &nbsp;  unless o
 &nbsp;   &nbsp;   &nbsp;  o = ieController.getContainer.getTablePart( "TR&quot; , how , what ) &nbsp;
 &nbsp;   &nbsp;  end
   ; &nbsp; &nbsp; &nbsp; &nbsp; update_row_cells
&nbsp; &nbsp;   ; &nbsp; &nbsp;  super( o ) &nbsp;
 &nbsp; &nbsp; &nbsp;  end
end

class Watir::Button < Watir::Element
   ; &nbsp; &nbsp; def initialize( ieController,  how , what )
 &nbsp; &nbsp;   ; &nbsp; &nbsp; ieController = ieController
 &nbsp; &nbsp;   ; &nbsp; &nbsp; how = how
&nbsp; &nbsp; &nbsp; &nbsp;   what = what
 ; &nbsp; &nbsp; &nbsp; &nbsp;   if(how == :from_object) then
 ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp;  o = what
 ; &nbsp; &nbsp; &nbsp; &nbsp;   else
 ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp;  o = ieController.getContainer.getObject( how, what , object_types)
 &nbsp;   ; &nbsp; &nbsp; &nbsp; end &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;
 &nbsp;   &nbsp;  unless o
 &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; o = ieController.getObject( how, what , object_types)
 &nbsp;   &nbsp;  end
   ; &nbsp; &nbsp; &nbsp; &nbsp; super( o )
 &nbsp; &nbsp;   ; end

 ; &nbsp; &nbsp; &nbsp; def object_types
 &nbsp; &nbsp;   ; &nbsp; &nbsp; return ["button" , "submit" , "image" , "reset" ]
 &nbsp;   ; &nbsp; end

end

class Watir::TableCell < Watir::Element

 ; &nbsp; &nbsp; &nbsp; def initialize( ieController,  how , what ) &nbsp;
 &nbsp; &nbsp; &nbsp;   ; &nbsp; ieController = ieController &nbsp; 
 &nbsp; &nbsp; &nbsp;   ; &nbsp; #puts "How = #&quot;
   ; &nbsp; &nbsp; &nbsp; &nbsp;  if how == :direct
&nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   o = what
 ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; #puts " o.class=#{o.class">o.class=#{o.class}&quot;
 ; &nbsp; &nbsp; &nbsp; &nbsp;   ; else
 ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; o = ieController.getTablePart ( "TD&quot; , how , what ) &nbsp;
 &nbsp; &nbsp; &nbsp;   ; &nbsp;  end
   ;  &nbsp;  unless o
 &nbsp;   &nbsp;   &nbsp;  o = ieController.getContainer.getTablePart( "TD&quot; , how , what ) &nbsp;
 &nbsp;   &nbsp;  end
   ; &nbsp; &nbsp; &nbsp; &nbsp;  super( o ) &nbsp;
 &nbsp; &nbsp; &nbsp;   ; &nbsp;  how = how &nbsp;
 &nbsp;   ; &nbsp; &nbsp; &nbsp;  what = what  
 &nbsp; &nbsp; &nbsp;   ; &nbsp;  typingspeed = ieController.typingspeed &nbsp; &nbsp; 
 &nbsp; &nbsp; &nbsp;   ; &nbsp;  activeObjectHighLightColor = ieController.activeObjectHighLightColor&nbsp; &nbsp; &nbsp;
 &nbsp; &nbsp; &nbsp;   end
end

class Watir::Image < Watir::Element
&nbsp; &nbsp; &nbsp; &nbsp; def initialize( ieController,  how , what )
 &nbsp; &nbsp;   ; &nbsp; &nbsp; ieController = ieController
 &nbsp; &nbsp;   ; &nbsp; &nbsp; how = how
   ; &nbsp; &nbsp; &nbsp; &nbsp; what = what
 ; &nbsp; &nbsp; &nbsp; &nbsp;   o = ieController.getImage(how, what)
&nbsp; &nbsp;  &nbsp;  unless o
   ;  &nbsp;   &nbsp; &nbsp;  o = ieController.getContainer.getImage(how, what)
&nbsp; &nbsp;  &nbsp;  end
   ; &nbsp; &nbsp; &nbsp; &nbsp; super( o )
 &nbsp; &nbsp;   ; end
end

class Watir::SelectList < Watir::Element
   ; &nbsp; &nbsp; def initialize( ieController,  how , what )
   ; &nbsp; &nbsp; &nbsp; &nbsp; ieController = ieController
 &nbsp; &nbsp;   ; &nbsp; &nbsp; how = how
   ; &nbsp; &nbsp; &nbsp; &nbsp; what = what
 ; &nbsp; &nbsp; &nbsp; &nbsp;   o = ieController.getContainer.getObject(how, what, ["select-one&quot;, "select-multiple"])
  ;   &nbsp;  unless o
 &nbsp;   &nbsp; &nbsp; &nbsp; &nbsp;   ; o = ieController.getObject(how, what, ["select-one&quot;, "select-multiple"])
&nbsp; &nbsp;  &nbsp;  end
   ; &nbsp; &nbsp; &nbsp; &nbsp; super( o )
 &nbsp; &nbsp;   ; end
end

class Watir::RadioCheckCommon < Watir::Element
&nbsp; &nbsp; &nbsp; &nbsp; def initialize( ieController,  how , what , type, value=nil )
 &nbsp; &nbsp;   ; &nbsp; &nbsp; ieController = ieController
 &nbsp; &nbsp;   ; &nbsp; &nbsp; how = how
   ; &nbsp; &nbsp; &nbsp; &nbsp; what = what
 ; &nbsp; &nbsp; &nbsp; &nbsp;   type = type
 ; &nbsp; &nbsp; &nbsp; &nbsp;   value = value
&nbsp; &nbsp;   ; &nbsp; &nbsp;  o = ieController.getContainer.getObject(how, what, type, value)
&nbsp; &nbsp;  &nbsp;  unless o
 &nbsp;   &nbsp; &nbsp; &nbsp; &nbsp;   ; o = ieController.getObject(how, what, type, value)&nbsp; &nbsp;
 &nbsp;   &nbsp;  end
   ; &nbsp; &nbsp; &nbsp; &nbsp; super( o )
   ; &nbsp; &nbsp; end
end

class Watir::TextField < Watir::Element &nbsp;   ; &nbsp;
 &nbsp; &nbsp; &nbsp;  def initialize( ieController,  how , what )
 &nbsp; &nbsp;   ; &nbsp; &nbsp; ieController = ieController
 &nbsp; &nbsp;   ; &nbsp; &nbsp; how = how
   ; &nbsp; &nbsp; &nbsp; &nbsp; what = what

&nbsp; &nbsp;  &nbsp; &nbsp;  if(how != :from_object) then
 ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp;  o = ieController.getContainer.getObject(how, what, supported_types)
&nbsp; &nbsp;  &nbsp; &nbsp;  else
 ; &nbsp;  &nbsp;   &nbsp;  o = what
 ; &nbsp;  &nbsp; &nbsp;  end
   ;  &nbsp;  unless o
   ; &nbsp; &nbsp; &nbsp; &nbsp;   o = ieController.getObject(how, what, supported_types)
&nbsp; &nbsp;  &nbsp;  end
   ; &nbsp; &nbsp; &nbsp; &nbsp; super( o )
 &nbsp; &nbsp;   ; end
end

class Watir::Frame < Watir::IE
  
 &nbsp;  def initialize(container, how, what)
&nbsp; &nbsp;   ; &nbsp; &nbsp;  container = container
  ; &nbsp; &nbsp; &nbsp; &nbsp;  frame = nil

 ; &nbsp; &nbsp; &nbsp; &nbsp;   frames = container.document.frames

 ; &nbsp; &nbsp; &nbsp; &nbsp;   for i in 0 .. frames.length-1
 ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp;  next unless frame == nil
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ;  this_frame = frames.item(i)
&nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp;  if how == :index
 &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   if i+1 == what
 ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; frame = this_frame
 &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp; end
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ;  elsif how == :name
&nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;  begin
&nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; if what.matches(this_frame.name)
&nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   frame = this_frame
 &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ;  end
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp;  rescue # access denied?
&nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; end
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ;  elsif how == :id
&nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;  # BUG: Won't work for IFRAMES
&nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; if what.matches(container.document.getElementsByTagName(&quot;FRAME&quot;).item(i).invoke(&quot;id";))
 &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp;  frame = this_frame
 &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ;  end
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ;  else
 ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp;  raise ArgumentError, "Argument # not supported&quot;
 ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp;  end
   ; &nbsp; &nbsp; &nbsp; &nbsp; end
   ; &nbsp; &nbsp; &nbsp; &nbsp;
 &nbsp; &nbsp; &nbsp;   ; &nbsp; unless frame
&nbsp; &nbsp;  &nbsp;   &nbsp;  frames = container.getContainer.document.frames ; &nbsp;
 &nbsp; &nbsp; &nbsp;   ; &nbsp; for i in 0 .. frames.length-1
 ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp;  next unless frame == nil
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ;  this_frame = frames.item(i)
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ;  if how == :index
 &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp;  if i+1 == what
 ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; frame = this_frame
 &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp; end
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ;  elsif how == :name
&nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;  begin
&nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; if what.matches (this_frame.name)
  ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp;  frame = this_frame
 &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ;  end
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp;  rescue # access denied?
&nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; end
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ;  elsif how == :id
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp;  # BUG: Won't work for IFRAMES
  ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; if what.matches(container.document.getElementsByTagName(&quot;FRAME&quot;).item(i).invoke(&quot;id";))
 &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp;  frame = this_frame
 &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp; end
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ;  else
&nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; &nbsp; &nbsp;   ; raise ArgumentError, "Argument # not supported&quot;
 ; &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp;  end
   ; &nbsp; &nbsp; &nbsp; &nbsp; end
   ; &nbsp; &nbsp; &nbsp; &nbsp;   ;  unless frame
&nbsp; &nbsp;  &nbsp; &nbsp; &nbsp; &nbsp;   ; &nbsp; &nbsp; raise UnknownFrameException , "Unable to locate a frame with name # "
 &nbsp;   &nbsp;   &nbsp;  end
   ; &nbsp; &nbsp; &nbsp; &nbsp; end

 ; &nbsp; &nbsp; &nbsp; &nbsp;   typingspeed = container.typingspeed  ; &nbsp; 
 &nbsp; &nbsp; &nbsp;   ; &nbsp; activeObjectHighLightColor = container.activeObjectHighLightColor &nbsp;   ;
 &nbsp; &nbsp; &nbsp;  end
   ;
 &nbsp; &nbsp; &nbsp;  def ie
 ; &nbsp; &nbsp; &nbsp; &nbsp;   return frame
&nbsp; &nbsp; &nbsp; &nbsp; end

 ; &nbsp; &nbsp; &nbsp; def document
&nbsp;   ; &nbsp; &nbsp; &nbsp;  frame.document
   ; &nbsp; &nbsp; end

 ; &nbsp; &nbsp; &nbsp; def wait(no_sleep = false)
&nbsp; &nbsp; &nbsp;   ; &nbsp;  container.wait(no_sleep)
 &nbsp;   ; &nbsp; end

&nbsp; &nbsp;   # IE methods
&nbsp; &nbsp;   def refresh
&nbsp; &nbsp;  &nbsp;  container.refresh
&nbsp; &nbsp;   end &nbsp; 

 &nbsp;    def close
&nbsp; &nbsp;  &nbsp;  container.close
 ; &nbsp;   end

 ; &nbsp;   def getContainer
 &nbsp;   &nbsp;  return container
  ;    end

&nbsp; &nbsp; &nbsp;   def dir
   ; &nbsp; &nbsp; &nbsp; &nbsp; return Watir::IE.new.dir
&nbsp; &nbsp; end
   ;
 &nbsp;  def contains_text(text)
&nbsp;    &nbsp;  return container.contains_text(text)
&nbsp; &nbsp; end
end

[1]

about | contact  Other archives ( Real Estate discussion Medical topics )