Class: Watir::Button

Inherits:
HTMLElement show all
Defined in:
lib/watir-webdriver/elements/button.rb,
lib/watir-webdriver/elements/generated.rb

Overview

Class representing button elements.

This class covers both <button> and <input type=“submit|reset|image|button” /> elements.

Constant Summary

Constants included from AttributeHelper

AttributeHelper::IGNORED_ATTRIBUTES

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Element

#==, #attribute_value, #click, #double_click, #driver, #element, #exists?, #fire_event, #flash, #focus, #hash, #html, #initialize, #inspect, #parent, #present?, #right_click, #run_checkers, #send_keys, #style, #tag_name, #value, #visible?, #wait_until_present, #wait_while_present, #when_present

Methods included from AttributeHelper

#attribute_list, #attributes, #typed_attributes

Methods included from Container

#a, #abbr, #abbrs, #address, #addresses, #area, #areas, #article, #articles, #as, #aside, #asides, #audio, #audios, #b, #base, #bases, #bdo, #bdos, #blockquote, #blockquotes, #body, #bodys, #br, #brs, #bs, #button, #buttons, #canvas, #canvases, #caption, #captions, #cell, #cells, #checkbox, #checkboxes, #cite, #cites, #code, #codes, #col, #colgroup, #colgroups, #cols, #command, #commands, #datalist, #datalists, #dd, #dds, #del, #dels, #details, #dfn, #dfns, #div, #divs, #dl, #dls, #dt, #dts, #em, #embed, #embeds, #ems, #fieldset, #fieldsets, #figcaption, #figcaptions, #figure, #figures, #file_field, #file_fields, #font, #fonts, #footer, #footers, #form, #forms, #frame, #frames, #h1, #h1s, #h2, #h2s, #h3, #h3s, #h4, #h4s, #h5, #h5s, #h6, #h6s, #head, #header, #headers, #heads, #hgroup, #hgroups, #hidden, #hiddens, #hr, #hrs, #html, #htmls, #i, #iframe, #iframes, #image, #images, #img, #imgs, #input, #inputs, #ins, #inses, #is, #kbd, #kbds, #keygen, #keygens, #label, #labels, #legend, #legends, #li, #link, #links, #lis, #map, #maps, #mark, #marks, #menu, #menus, #meta, #metas, #meter, #meters, #nav, #navs, #noscript, #noscripts, #object, #objects, #ol, #ols, #optgroup, #optgroups, #option, #options, #output, #outputs, #p, #param, #params, #pre, #pres, #progress, #progresses, #ps, #q, #qs, #radio, #radios, #row, #rows, #rp, #rps, #rt, #rts, #rubies, #ruby, #samp, #samps, #script, #scripts, #section, #sections, #select, #select_list, #select_lists, #selects, #small, #smalls, #source, #sources, #span, #spans, #strong, #strongs, #style, #styles, #sub, #subs, #summaries, #summary, #sup, #sups, #table, #tables, #tbody, #tbodys, #td, #tds, #text_field, #text_fields, #textarea, #textareas, #tfoot, #tfoots, #th, #thead, #theads, #ths, #time, #times, #title, #titles, #tr, #track, #tracks, #trs, #ul, #uls, #var, #vars, #video, #videos, #wbr, #wbrs

Methods included from XpathSupport

#element_by_xpath, #elements_by_xpath

Constructor Details

This class inherits a constructor from Watir::Element

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Watir::Element

Class Method Details

.from(parent, element) ⇒ Object


16
17
18
19
20
21
22
23
# File 'lib/watir-webdriver/elements/button.rb', line 16

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

Instance Method Details

#enabled?Boolean

Returns true if this element is enabled

Returns:

  • (Boolean)

50
51
52
# File 'lib/watir-webdriver/elements/button.rb', line 50

def enabled?
  !disabled?
end

#textObject

Returns the text of the button.

For input elements, returns the “value” attribute. For button elements, returns the inner text.


32
33
34
35
36
37
38
39
40
41
42
# File 'lib/watir-webdriver/elements/button.rb', line 32

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