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 collapse

VALID_TYPES =
%w[button reset submit image]

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, #to_subtype, #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, #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, #element, #elements, #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, #rp, #rps, #rt, #rts, #rubies, #ruby, #s, #samp, #samps, #script, #scripts, #section, #sections, #select, #select_list, #select_lists, #selects, #small, #smalls, #source, #sources, #span, #spans, #ss, #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



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

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

Instance Method Details

#enabled?Boolean

Returns true if this element is enabled

Returns:

  • (Boolean)


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

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.



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

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