Sha256: 08e8f27ed62a63981a57a4262ee7c172c0f0ff29afdb356e4788e8683f3abdc4

Contents?: true

Size: 1.57 KB

Versions: 9

Compression:

Stored size: 1.57 KB

Contents

# encoding: utf-8
module Watir

  #
  # Class representing button elements.
  #
  # This class covers both <button> and <input type="submit|reset|image|button" /> elements.
  #

  class Button < HTMLElement

    # add the attributes from <input>
    attributes Watir::Input.typed_attributes

    VALID_TYPES = %w[button reset submit image]

    def self.from(parent, element)
      if element.tag_name == "button" ||
         element.tag_name == "input" && VALID_TYPES.include?(element.attribute(:type))
        Button.new(parent, :element => element)
      else
        raise TypeError, "expected button or input[@type=#{VALID_TYPES.join("|")}] for #{element.inspect}"
      end
    end

    #
    # Returns the text of the button.
    #
    # For input elements, returns the "value" attribute.
    # For button elements, returns the inner text.
    #

    def text
      assert_exists
      case @element.tag_name
      when 'input'
        @element.attribute(:value)
      when 'button'
        @element.text
      else
        raise Exception::Error, "unknown tag name for button: #{@element.tag_name}"
      end
    end

    #
    # Returns true if this element is enabled
    #
    # @return [Boolean]
    #

    def enabled?
      !disabled?
    end

    private

    def locate
      @parent.assert_exists
      ButtonLocator.new(@parent.wd, @selector, self.class.attribute_list).locate
    end

  end # Button

  class ButtonCollection < ElementCollection
    private

    def locator_class
      ButtonLocator
    end

    def element_class
      Button
    end
  end # ButtonsCollection
end # Watir

Version data entries

9 entries across 9 versions & 2 rubygems

Version Path
watir-webdriver-0.1.7 lib/watir-webdriver/elements/button.rb
watir-webdriver-0.1.6 lib/watir-webdriver/elements/button.rb
watir-webdriver-0.1.5 lib/watir-webdriver/elements/button.rb
watir-webdriver-0.1.4 lib/watir-webdriver/elements/button.rb
watir-webdriver-0.1.3 lib/watir-webdriver/elements/button.rb
watir-webdriver-0.1.2 lib/watir-webdriver/elements/button.rb
ayanko-watir-webdriver-0.1.1.1 lib/watir-webdriver/elements/button.rb
watir-webdriver-0.1.1 lib/watir-webdriver/elements/button.rb
watir-webdriver-0.1.0 lib/watir-webdriver/elements/button.rb