Sha256: 5c4616af3a9daedc21f118a38785e0b34e65fc7436ed8f6c1fee5d6a505f2424

Contents?: true

Size: 1.97 KB

Versions: 19

Compression:

Stored size: 1.97 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
    # 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
    
    def locate
      if @how == :xpath
        @o = @container.element_by_xpath(@what)
      elsif @how == :css
        @o = @container.element_by_css(@what)
      else
        begin
          @o = @container.locate_tagged_element('A', @how, @what)
        rescue UnknownObjectException
          @o = nil
        end
      end
    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
  end
  
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
watir-1.9.2 lib/watir/link.rb
watir-1.9.2.rc1 lib/watir/link.rb
watir-1.9.1 lib/watir/link.rb
watir-1.9.1.rc1 lib/watir/link.rb
watir-1.9.0 lib/watir/link.rb
watir-1.9.0.rc7 lib/watir/link.rb
watir-1.9.0.rc6 lib/watir/link.rb
watir-1.9.0.rc5 lib/watir/link.rb
watir-1.9.0.rc4 lib/watir/link.rb
watir-1.9.0.rc3 lib/watir/link.rb
watir-1.9.0.rc2 lib/watir/link.rb
watir-1.9.0.rc1 lib/watir/link.rb
watir-1.8.1 lib/watir/link.rb
watir-1.8.1.rc1 lib/watir/link.rb
watir-1.8.0 lib/watir/link.rb
watir-1.8.0.rc1 lib/watir/link.rb
watir-1.7.1 lib/watir/link.rb
watir-1.7.0 lib/watir/link.rb
watir-1.7.0.rc1 lib/watir/link.rb