Sha256: e9047e20a5e5c2129b1cde7effd44faa9880aa2723e2a35c0622cef7203ae458

Contents?: true

Size: 1.75 KB

Versions: 9

Compression:

Stored size: 1.75 KB

Contents

module Watir  
  
  # This class is the means of accessing a link on a page
  # Normally a user would not need to create this object as it is returned by the Watir::Container#link method
  # many of the methods available to this object are inherited from the Element class
  #
  class Link < Element
    TAG = "A"

    # Returns an initialized instance of a link object
    #   * container  - an instance of a container
    #   * how         - symbol - how we access the link
    #   * what         - what we use to access the link, text, url, index etc
    def initialize(container, how, what)
      set_container container
      @how = how
      @what = what
      super(nil)
    end
    
    # if an image is used as part of the link, this will return true
    def link_has_image
      assert_exists
      return true if @o.getElementsByTagName("IMG").length > 0
      return false
    end
    
    # this method returns the src of an image, if an image is used as part of the link
    def src # BUG?
      assert_exists
      if @o.getElementsByTagName("IMG").length > 0
        return @o.getElementsByTagName("IMG")[0.to_s].src
      else
        return ""
      end
    end
    
    def link_string_creator
      n = []
      n <<   "href:".ljust(TO_S_SIZE) + self.href
      n <<   "inner text:".ljust(TO_S_SIZE) + self.text
      n <<   "img src:".ljust(TO_S_SIZE) + self.src if self.link_has_image
      return n
    end
    
    # returns a textual description of the link
    def to_s
      assert_exists
      r = string_creator
      r = r + link_string_creator
      return r.join("\n")
    end

    Watir::Container.module_eval do
      alias_method :a, :link
      alias_method :as, :links
    end    

  end
  
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
watir-3.0.0.rc2 lib/watir/link.rb
watir-3.0.0.rc1 lib/watir/link.rb
watir-2.0.4 lib/watir/link.rb
watir-2.0.3 lib/watir/link.rb
watir-2.0.2 lib/watir/link.rb
watir-2.0.2.rc1 lib/watir/link.rb
watir-2.0.1 lib/watir/link.rb
watir-2.0.0 lib/watir/link.rb
watir-2.0.0.rc3 lib/watir/link.rb