watir-webdriver 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -2
  3. data/.travis.yml +2 -3
  4. data/CHANGES.md +10 -1
  5. data/Gemfile +1 -1
  6. data/README.md +22 -17
  7. data/Rakefile +55 -52
  8. data/lib/watir-webdriver.rb +3 -2
  9. data/lib/watir-webdriver/alert.rb +0 -1
  10. data/lib/watir-webdriver/atoms/README +1 -1
  11. data/lib/watir-webdriver/browser.rb +4 -5
  12. data/lib/watir-webdriver/cell_container.rb +2 -2
  13. data/lib/watir-webdriver/container.rb +2 -3
  14. data/lib/watir-webdriver/cookies.rb +8 -8
  15. data/lib/watir-webdriver/element_collection.rb +3 -4
  16. data/lib/watir-webdriver/elements/area.rb +0 -1
  17. data/lib/watir-webdriver/elements/button.rb +0 -1
  18. data/lib/watir-webdriver/elements/checkbox.rb +2 -4
  19. data/lib/watir-webdriver/elements/element.rb +69 -45
  20. data/lib/watir-webdriver/elements/file_field.rb +2 -3
  21. data/lib/watir-webdriver/elements/font.rb +2 -2
  22. data/lib/watir-webdriver/elements/form.rb +0 -1
  23. data/lib/watir-webdriver/elements/hidden.rb +2 -3
  24. data/lib/watir-webdriver/elements/html_elements.rb +2282 -0
  25. data/lib/watir-webdriver/elements/iframe.rb +6 -7
  26. data/lib/watir-webdriver/elements/image.rb +0 -1
  27. data/lib/watir-webdriver/elements/input.rb +0 -1
  28. data/lib/watir-webdriver/elements/link.rb +0 -1
  29. data/lib/watir-webdriver/elements/option.rb +3 -4
  30. data/lib/watir-webdriver/elements/radio.rb +2 -3
  31. data/lib/watir-webdriver/elements/select.rb +0 -1
  32. data/lib/watir-webdriver/elements/svg_elements.rb +787 -0
  33. data/lib/watir-webdriver/elements/table.rb +0 -2
  34. data/lib/watir-webdriver/elements/table_section.rb +1 -1
  35. data/lib/watir-webdriver/elements/text_field.rb +2 -3
  36. data/lib/watir-webdriver/exception.rb +0 -2
  37. data/lib/watir-webdriver/extensions/nokogiri.rb +1 -1
  38. data/lib/watir-webdriver/generator.rb +3 -0
  39. data/lib/watir-webdriver/generator/base.rb +11 -0
  40. data/lib/watir-webdriver/{html → generator/base}/generator.rb +23 -33
  41. data/lib/watir-webdriver/{html → generator/base}/idl_sorter.rb +3 -5
  42. data/lib/watir-webdriver/{html → generator/base}/spec_extractor.rb +15 -41
  43. data/lib/watir-webdriver/generator/base/util.rb +21 -0
  44. data/lib/watir-webdriver/{html → generator/base}/visitor.rb +15 -15
  45. data/lib/watir-webdriver/{html.rb → generator/html.rb} +3 -11
  46. data/lib/watir-webdriver/generator/html/generator.rb +36 -0
  47. data/lib/watir-webdriver/generator/html/spec_extractor.rb +50 -0
  48. data/lib/watir-webdriver/generator/html/visitor.rb +21 -0
  49. data/lib/watir-webdriver/generator/svg.rb +7 -0
  50. data/lib/watir-webdriver/generator/svg/generator.rb +38 -0
  51. data/lib/watir-webdriver/generator/svg/spec_extractor.rb +46 -0
  52. data/lib/watir-webdriver/generator/svg/visitor.rb +21 -0
  53. data/lib/watir-webdriver/has_window.rb +3 -3
  54. data/lib/watir-webdriver/locators/button_locator.rb +7 -2
  55. data/lib/watir-webdriver/locators/child_cell_locator.rb +1 -1
  56. data/lib/watir-webdriver/locators/child_row_locator.rb +1 -1
  57. data/lib/watir-webdriver/locators/element_locator.rb +44 -9
  58. data/lib/watir-webdriver/locators/text_area_locator.rb +4 -0
  59. data/lib/watir-webdriver/locators/text_field_locator.rb +7 -2
  60. data/lib/watir-webdriver/screenshot.rb +0 -1
  61. data/lib/watir-webdriver/version.rb +1 -1
  62. data/lib/watir-webdriver/wait.rb +10 -11
  63. data/lib/watir-webdriver/window.rb +5 -5
  64. data/lib/watir-webdriver/xpath_support.rb +0 -1
  65. data/spec/always_locate_spec.rb +4 -4
  66. data/spec/browser_spec.rb +3 -3
  67. data/spec/click_spec.rb +11 -4
  68. data/spec/container_spec.rb +2 -2
  69. data/spec/element_locator_spec.rb +145 -84
  70. data/spec/element_spec.rb +29 -16
  71. data/spec/html/clicks.html +3 -0
  72. data/spec/html/removed_element.html +7 -0
  73. data/spec/implementation.rb +5 -5
  74. data/spec/input_spec.rb +1 -1
  75. data/spec/spec_helper.rb +1 -2
  76. data/spec/special_chars_spec.rb +2 -2
  77. data/support/doctest_helper.rb +4 -4
  78. data/support/version_differ.rb +2 -2
  79. data/watir-webdriver.gemspec +3 -3
  80. metadata +27 -17
  81. data/lib/watir-webdriver/elements/generated.rb +0 -3106
  82. data/lib/watir-webdriver/html/util.rb +0 -22
@@ -1,4 +1,3 @@
1
- # encoding: utf-8
2
1
  module Watir
3
2
 
4
3
  #
@@ -17,7 +16,7 @@ module Watir
17
16
  # Yields each element in collection.
18
17
  #
19
18
  # @example
20
- # divs = browser.divs(:class => 'kls')
19
+ # divs = browser.divs(class: 'kls')
21
20
  # divs.each do |div|
22
21
  # puts div.text
23
22
  # end
@@ -51,7 +50,7 @@ module Watir
51
50
  #
52
51
 
53
52
  def [](idx)
54
- to_a[idx] || element_class.new(@parent, @selector.merge(:index => idx))
53
+ to_a[idx] || element_class.new(@parent, @selector.merge(index: idx))
55
54
  end
56
55
 
57
56
  #
@@ -82,7 +81,7 @@ module Watir
82
81
 
83
82
  def to_a
84
83
  # TODO: optimize - lazy element_class instance?
85
- @to_a ||= elements.map { |e| element_class.new(@parent, :element => e) }
84
+ @to_a ||= elements.map { |e| element_class.new(@parent, element: e) }
86
85
  end
87
86
 
88
87
  private
@@ -1,4 +1,3 @@
1
- # encoding: utf-8
2
1
  module Watir
3
2
  class Area < HTMLElement
4
3
 
@@ -1,4 +1,3 @@
1
- # encoding: utf-8
2
1
  module Watir
3
2
 
4
3
  #
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  module Watir
4
2
  class CheckBox < Input
5
3
 
@@ -42,11 +40,11 @@ module Watir
42
40
 
43
41
  module Container
44
42
  def checkbox(*args)
45
- CheckBox.new(self, extract_selector(args).merge(:tag_name => "input", :type => "checkbox"))
43
+ CheckBox.new(self, extract_selector(args).merge(tag_name: "input", type: "checkbox"))
46
44
  end
47
45
 
48
46
  def checkboxes(*args)
49
- CheckBoxCollection.new(self, extract_selector(args).merge(:tag_name => "input", :type => "checkbox"))
47
+ CheckBoxCollection.new(self, extract_selector(args).merge(tag_name: "input", type: "checkbox"))
50
48
  end
51
49
  end # Container
52
50
 
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  module Watir
4
2
 
5
3
  #
@@ -49,8 +47,8 @@ module Watir
49
47
  alias_method :exist?, :exists?
50
48
 
51
49
  def inspect
52
- if @selector.has_key?(:element)
53
- '#<%s:0x%x located=%s selector=%s>' % [self.class, hash*2, !!@element, '{:element=>(webdriver element)}']
50
+ if @selector.key?(:element)
51
+ '#<%s:0x%x located=%s selector=%s>' % [self.class, hash*2, !!@element, '{element: (webdriver element)}']
54
52
  else
55
53
  '#<%s:0x%x located=%s selector=%s>' % [self.class, hash*2, !!@element, selector_string]
56
54
  end
@@ -60,12 +58,12 @@ module Watir
60
58
  # Returns true if two elements are equal.
61
59
  #
62
60
  # @example
63
- # browser.text_field(:name => "new_user_first_name") == browser.text_field(:name => "new_user_first_name")
61
+ # browser.text_field(name: "new_user_first_name") == browser.text_field(name: "new_user_first_name")
64
62
  # #=> true
65
63
  #
66
64
 
67
65
  def ==(other)
68
- other.kind_of?(self.class) && wd == other.wd
66
+ other.is_a?(self.class) && wd == other.wd
69
67
  end
70
68
  alias_method :eql?, :==
71
69
 
@@ -101,13 +99,13 @@ module Watir
101
99
  # and may not work at all.
102
100
  #
103
101
  # @example Click an element
104
- # browser.element(:name => "new_user_button").click
102
+ # browser.element(name: "new_user_button").click
105
103
  #
106
104
  # @example Click an element with shift key pressed
107
- # browser.element(:name => "new_user_button").click(:shift)
105
+ # browser.element(name: "new_user_button").click(:shift)
108
106
  #
109
107
  # @example Click an element with several modifier keys pressed
110
- # browser.element(:name => "new_user_button").click(:shift, :control)
108
+ # browser.element(name: "new_user_button").click(:shift, :control)
111
109
  #
112
110
  # @param [:shift, :alt, :control, :command, :meta] Modifier key(s) to press while clicking.
113
111
  #
@@ -139,7 +137,7 @@ module Watir
139
137
  # Note that browser support may vary.
140
138
  #
141
139
  # @example
142
- # browser.element(:name => "new_user_button").double_click
140
+ # browser.element(name: "new_user_button").double_click
143
141
  #
144
142
 
145
143
  def double_click
@@ -155,7 +153,7 @@ module Watir
155
153
  # Note that browser support may vary.
156
154
  #
157
155
  # @example
158
- # browser.element(:name => "new_user_button").right_click
156
+ # browser.element(name: "new_user_button").right_click
159
157
  #
160
158
 
161
159
  def right_click
@@ -171,7 +169,7 @@ module Watir
171
169
  # Note that browser support may vary.
172
170
  #
173
171
  # @example
174
- # browser.element(:name => "new_user_button").hover
172
+ # browser.element(name: "new_user_button").hover
175
173
  #
176
174
 
177
175
  def hover
@@ -186,8 +184,8 @@ module Watir
186
184
  # Note that browser support may vary.
187
185
  #
188
186
  # @example
189
- # a = browser.div(:id => "draggable")
190
- # b = browser.div(:id => "droppable")
187
+ # a = browser.div(id: "draggable")
188
+ # b = browser.div(id: "droppable")
191
189
  # a.drag_and_drop_on b
192
190
  #
193
191
 
@@ -208,7 +206,7 @@ module Watir
208
206
  # Note that browser support may vary.
209
207
  #
210
208
  # @example
211
- # browser.div(:id => "draggable").drag_and_drop_by 100, -200
209
+ # browser.div(id: "draggable").drag_and_drop_by 100, -200
212
210
  #
213
211
  # @param [Fixnum] right_by
214
212
  # @param [Fixnum] down_by
@@ -229,7 +227,7 @@ module Watir
229
227
  # Flashes (change background color far a moment) element.
230
228
  #
231
229
  # @example
232
- # browser.text_field(:name => "new_user_first_name").flash
230
+ # browser.text_field(name: "new_user_first_name").flash
233
231
  #
234
232
 
235
233
  def flash
@@ -262,7 +260,7 @@ module Watir
262
260
  # Returns given attribute value of element.
263
261
  #
264
262
  # @example
265
- # browser.a(:id => "link_2").attribute_value "title"
263
+ # browser.a(id: "link_2").attribute_value "title"
266
264
  # #=> "link_title_2"
267
265
  #
268
266
  # @param [String] attribute_name
@@ -278,7 +276,7 @@ module Watir
278
276
  # Returns outer (inner + element itself) HTML code of element.
279
277
  #
280
278
  # @example
281
- # browser.div(:id => 'foo').outer_html
279
+ # browser.div(id: 'foo').outer_html
282
280
  # #=> "<div id=\"foo\"><a href=\"#\">hello</a></div>"
283
281
  #
284
282
  # @return [String]
@@ -295,7 +293,7 @@ module Watir
295
293
  # Returns inner HTML code of element.
296
294
  #
297
295
  # @example
298
- # browser.div(:id => 'foo').inner_html
296
+ # browser.div(id: 'foo').inner_html
299
297
  # #=> "<a href=\"#\">hello</a>"
300
298
  #
301
299
  # @return [String]
@@ -310,7 +308,7 @@ module Watir
310
308
  # Sends sequence of keystrokes to element.
311
309
  #
312
310
  # @example
313
- # browser.text_field(:name => "new_user_first_name").send_keys "Watir", :return
311
+ # browser.text_field(name: "new_user_first_name").send_keys "Watir", :return
314
312
  #
315
313
  # @param [String, Symbol] *args
316
314
  #
@@ -349,9 +347,9 @@ module Watir
349
347
  # Note that you may omit "on" from event name.
350
348
  #
351
349
  # @example
352
- # browser.button(:name => "new_user_button").fire_event :click
353
- # browser.button(:name => "new_user_button").fire_event "mousemove"
354
- # browser.button(:name => "new_user_button").fire_event "onmouseover"
350
+ # browser.button(name: "new_user_button").fire_event :click
351
+ # browser.button(name: "new_user_button").fire_event "mousemove"
352
+ # browser.button(name: "new_user_button").fire_event "onmouseover"
355
353
  #
356
354
  # @param [String, Symbol] event_name
357
355
  #
@@ -373,7 +371,7 @@ module Watir
373
371
  e = element_call { execute_atom :getParentElement, @element }
374
372
 
375
373
  if e.kind_of?(Selenium::WebDriver::Element)
376
- Watir.element_class_for(e.tag_name.downcase).new(@parent, :element => e)
374
+ Watir.element_class_for(e.tag_name.downcase).new(@parent, element: e)
377
375
  end
378
376
  end
379
377
 
@@ -424,8 +422,8 @@ module Watir
424
422
  # Returns given style property of this element.
425
423
  #
426
424
  # @example
427
- # browser.button(:value => "Delete").style #=> "border: 4px solid red;"
428
- # browser.button(:value => "Delete").style("border") #=> "4px solid red"
425
+ # browser.button(value: "Delete").style #=> "border: 4px solid red;"
426
+ # browser.button(value: "Delete").style("border") #=> "4px solid red"
429
427
  #
430
428
  # @param [String] property
431
429
  # @return [String]
@@ -452,7 +450,7 @@ module Watir
452
450
  # Cast this Element instance to a more specific subtype.
453
451
  #
454
452
  # @example
455
- # browser.element(:xpath => "//input[@type='submit']").to_subtype
453
+ # browser.element(xpath: "//input[@type='submit']").to_subtype
456
454
  # #=> #<Watir::Button>
457
455
  #
458
456
 
@@ -479,7 +477,7 @@ module Watir
479
477
  klass = Watir.element_class_for(tag_name)
480
478
  end
481
479
 
482
- klass.new(@parent, :element => elem)
480
+ klass.new(@parent, element: elem)
483
481
  end
484
482
 
485
483
  #
@@ -494,28 +492,46 @@ module Watir
494
492
 
495
493
  protected
496
494
 
495
+ # Ensure that the element exists, making sure that it is not stale and located if necessary
497
496
  def assert_exists
498
- begin
499
- assert_not_stale if @element ||= @selector[:element]
500
- rescue UnknownObjectException => ex
501
- raise ex if @selector[:element] || !Watir.always_locate?
497
+ @element ||= @selector[:element]
498
+
499
+ if @element
500
+ ensure_not_stale # ensure not stale
501
+ else
502
+ @element = locate
502
503
  end
503
504
 
504
- @element ||= locate
505
+ assert_element_found
506
+ end
505
507
 
506
- unless @element
507
- raise UnknownObjectException, "unable to locate element, using #{selector_string}"
508
+ # Ensure that the element isn't stale, by relocating if it is (unless always_locate = false)
509
+ def ensure_not_stale
510
+ # Performance shortcut; only need recursive call to ensure context if stale in current context
511
+ return unless stale?
512
+
513
+ ensure_context
514
+ if stale?
515
+ if Watir.always_locate? && !@selector[:element]
516
+ @element = locate
517
+ else
518
+ reset!
519
+ end
508
520
  end
521
+ assert_element_found
522
+ end
523
+
524
+ def stale?
525
+ @element.enabled? # any wire call will check for staleness
526
+ false
527
+ rescue Selenium::WebDriver::Error::ObsoleteElementError
528
+ true
509
529
  end
510
530
 
511
- def assert_not_stale
512
- @parent.assert_not_stale
513
- @parent.switch_to! if @parent.is_a? IFrame
514
- @element.enabled? # do a staleness check - any wire call will do.
515
- rescue Selenium::WebDriver::Error::ObsoleteElementError => ex
516
- # don't cache a stale element - it will never come back
517
- reset!
518
- raise UnknownObjectException, "#{ex.message} - #{selector_string}"
531
+ def assert_element_found
532
+ unless @element
533
+ raise UnknownObjectException, "unable to locate element, using #{selector_string}"
534
+ end
519
535
  end
520
536
 
521
537
  def reset!
@@ -523,7 +539,7 @@ module Watir
523
539
  end
524
540
 
525
541
  def locate
526
- @parent.is_a?(IFrame) ? @parent.switch_to! : @parent.assert_exists
542
+ ensure_context
527
543
  locator_class.new(@parent.wd, @selector, self.class.attribute_list).locate
528
544
  end
529
545
 
@@ -537,6 +553,11 @@ module Watir
537
553
  @selector.inspect
538
554
  end
539
555
 
556
+ # Ensure the driver is in the desired browser context
557
+ def ensure_context
558
+ @parent.is_a?(IFrame) ? @parent.switch_to! : @parent.assert_exists
559
+ end
560
+
540
561
  def attribute?(attribute)
541
562
  assert_exists
542
563
  element_call do
@@ -574,7 +595,6 @@ module Watir
574
595
  yield
575
596
  rescue Selenium::WebDriver::Error::StaleElementReferenceError
576
597
  raise unless Watir.always_locate?
577
- reset!
578
598
  assert_exists
579
599
  retry
580
600
  end
@@ -588,5 +608,9 @@ module Watir
588
608
  end
589
609
  end
590
610
 
611
+ def respond_to_missing?(meth, *)
612
+ ElementLocator::WILDCARD_ATTRIBUTE === meth.to_s || super
613
+ end
614
+
591
615
  end # Element
592
616
  end # Watir
@@ -1,4 +1,3 @@
1
- # encoding: utf-8
2
1
  module Watir
3
2
  class FileField < Input
4
3
 
@@ -29,11 +28,11 @@ module Watir
29
28
 
30
29
  module Container
31
30
  def file_field(*args)
32
- FileField.new(self, extract_selector(args).merge(:tag_name => "input", :type => "file"))
31
+ FileField.new(self, extract_selector(args).merge(tag_name: "input", type: "file"))
33
32
  end
34
33
 
35
34
  def file_fields(*args)
36
- FileFieldCollection.new(self, extract_selector(args).merge(:tag_name => "input", :type => "file"))
35
+ FileFieldCollection.new(self, extract_selector(args).merge(tag_name: "input", type: "file"))
37
36
  end
38
37
  end # Container
39
38
 
@@ -1,11 +1,11 @@
1
1
  module Watir
2
2
  module Container
3
3
  def font(*args)
4
- Font.new(self, extract_selector(args).merge(:tag_name => "font"))
4
+ Font.new(self, extract_selector(args).merge(tag_name: "font"))
5
5
  end
6
6
 
7
7
  def fonts(*args)
8
- FontCollection.new(self, extract_selector(args).merge(:tag_name => "font"))
8
+ FontCollection.new(self, extract_selector(args).merge(tag_name: "font"))
9
9
  end
10
10
  end # Container
11
11
  end # Watir
@@ -1,4 +1,3 @@
1
- # encoding: utf-8
2
1
  module Watir
3
2
  class Form < HTMLElement
4
3
 
@@ -1,4 +1,3 @@
1
- # encoding: utf-8
2
1
  module Watir
3
2
  class Hidden < Input
4
3
  def visible?
@@ -8,11 +7,11 @@ module Watir
8
7
 
9
8
  module Container
10
9
  def hidden(*args)
11
- Hidden.new(self, extract_selector(args).merge(:tag_name => "input", :type => "hidden"))
10
+ Hidden.new(self, extract_selector(args).merge(tag_name: "input", type: "hidden"))
12
11
  end
13
12
 
14
13
  def hiddens(*args)
15
- HiddenCollection.new(self, extract_selector(args).merge(:tag_name => "input", :type => "hidden"))
14
+ HiddenCollection.new(self, extract_selector(args).merge(tag_name: "input", type: "hidden"))
16
15
  end
17
16
  end # Container
18
17
 
@@ -0,0 +1,2282 @@
1
+ # Autogenerated from HTML specification. Edits may be lost.
2
+ module Watir
3
+ class HTMLElement < Element
4
+ attribute(String, :title, :title)
5
+ attribute(String, :lang, :lang)
6
+ attribute("Boolean", :translate?, :translate)
7
+ attribute(String, :dir, :dir)
8
+ attribute(String, :dataset, :dataset)
9
+ attribute("Boolean", :item_scope?, :itemScope)
10
+ attribute(String, :item_type, :itemType)
11
+ attribute(String, :item_id, :itemId)
12
+ attribute(String, :item_ref, :itemRef)
13
+ attribute(String, :item_prop, :itemProp)
14
+ attribute(String, :properties, :properties)
15
+ attribute(String, :item_value, :itemValue)
16
+ attribute("Boolean", :hidden?, :hidden)
17
+ attribute(Fixnum, :tab_index, :tabIndex)
18
+ attribute(String, :access_key, :accessKey)
19
+ attribute(String, :access_key_label, :accessKeyLabel)
20
+ attribute("Boolean", :draggable?, :draggable)
21
+ attribute(String, :dropzone, :dropzone)
22
+ attribute(String, :context_menu, :contextMenu)
23
+ attribute("Boolean", :spellcheck?, :spellcheck)
24
+ attribute(String, :command_type, :commandType)
25
+ attribute(String, :command_label, :commandLabel)
26
+ attribute(String, :command_icon, :commandIcon)
27
+ attribute("Boolean", :command_hidden?, :commandHidden)
28
+ attribute("Boolean", :command_disabled?, :commandDisabled)
29
+ attribute("Boolean", :command_checked?, :commandChecked)
30
+ attribute(String, :onabort, :onabort)
31
+ attribute(String, :onautocomplete, :onautocomplete)
32
+ attribute(String, :onautocompleteerror, :onautocompleteerror)
33
+ attribute(String, :onblur, :onblur)
34
+ attribute(String, :oncancel, :oncancel)
35
+ attribute(String, :oncanplay, :oncanplay)
36
+ attribute(String, :oncanplaythrough, :oncanplaythrough)
37
+ attribute(String, :onchange, :onchange)
38
+ attribute(String, :onclick, :onclick)
39
+ attribute(String, :onclose, :onclose)
40
+ attribute(String, :oncontextmenu, :oncontextmenu)
41
+ attribute(String, :oncuechange, :oncuechange)
42
+ attribute(String, :ondblclick, :ondblclick)
43
+ attribute(String, :ondrag, :ondrag)
44
+ attribute(String, :ondragend, :ondragend)
45
+ attribute(String, :ondragenter, :ondragenter)
46
+ attribute(String, :ondragexit, :ondragexit)
47
+ attribute(String, :ondragleave, :ondragleave)
48
+ attribute(String, :ondragover, :ondragover)
49
+ attribute(String, :ondragstart, :ondragstart)
50
+ attribute(String, :ondrop, :ondrop)
51
+ attribute(String, :ondurationchange, :ondurationchange)
52
+ attribute(String, :onemptied, :onemptied)
53
+ attribute(String, :onended, :onended)
54
+ attribute(String, :onerror, :onerror)
55
+ attribute(String, :onfocus, :onfocus)
56
+ attribute(String, :oninput, :oninput)
57
+ attribute(String, :oninvalid, :oninvalid)
58
+ attribute(String, :onkeydown, :onkeydown)
59
+ attribute(String, :onkeypress, :onkeypress)
60
+ attribute(String, :onkeyup, :onkeyup)
61
+ attribute(String, :onload, :onload)
62
+ attribute(String, :onloadeddata, :onloadeddata)
63
+ attribute(String, :onloadedmetadata, :onloadedmetadata)
64
+ attribute(String, :onloadstart, :onloadstart)
65
+ attribute(String, :onmousedown, :onmousedown)
66
+ attribute(String, :onmouseenter, :onmouseenter)
67
+ attribute(String, :onmouseleave, :onmouseleave)
68
+ attribute(String, :onmousemove, :onmousemove)
69
+ attribute(String, :onmouseout, :onmouseout)
70
+ attribute(String, :onmouseover, :onmouseover)
71
+ attribute(String, :onmouseup, :onmouseup)
72
+ attribute(String, :onmousewheel, :onmousewheel)
73
+ attribute(String, :onpause, :onpause)
74
+ attribute(String, :onplay, :onplay)
75
+ attribute(String, :onplaying, :onplaying)
76
+ attribute(String, :onprogress, :onprogress)
77
+ attribute(String, :onratechange, :onratechange)
78
+ attribute(String, :onreset, :onreset)
79
+ attribute(String, :onresize, :onresize)
80
+ attribute(String, :onscroll, :onscroll)
81
+ attribute(String, :onseeked, :onseeked)
82
+ attribute(String, :onseeking, :onseeking)
83
+ attribute(String, :onselect, :onselect)
84
+ attribute(String, :onshow, :onshow)
85
+ attribute(String, :onsort, :onsort)
86
+ attribute(String, :onstalled, :onstalled)
87
+ attribute(String, :onsubmit, :onsubmit)
88
+ attribute(String, :onsuspend, :onsuspend)
89
+ attribute(String, :ontimeupdate, :ontimeupdate)
90
+ attribute(String, :ontoggle, :ontoggle)
91
+ attribute(String, :onvolumechange, :onvolumechange)
92
+ attribute(String, :onwaiting, :onwaiting)
93
+ attribute(String, :content_editable, :contentEditable)
94
+ attribute("Boolean", :content_editable?, :isContentEditable)
95
+ end
96
+ class HTMLElementCollection < ElementCollection
97
+ def element_class
98
+ HTMLElement
99
+ end
100
+ end
101
+
102
+ class Font < HTMLElement
103
+ attribute(String, :color, :color)
104
+ attribute(String, :face, :face)
105
+ attribute(String, :size, :size)
106
+ end
107
+ class FontCollection < ElementCollection
108
+ def element_class
109
+ Font
110
+ end
111
+ end
112
+
113
+ class Directory < HTMLElement
114
+ attribute("Boolean", :compact?, :compact)
115
+ end
116
+ class DirectoryCollection < ElementCollection
117
+ def element_class
118
+ Directory
119
+ end
120
+ end
121
+
122
+ class FrameSet < HTMLElement
123
+ attribute(String, :cols, :cols)
124
+ attribute(String, :onafterprint, :onafterprint)
125
+ attribute(String, :onbeforeprint, :onbeforeprint)
126
+ attribute(String, :onbeforeunload, :onbeforeunload)
127
+ attribute(String, :onhashchange, :onhashchange)
128
+ attribute(String, :onlanguagechange, :onlanguagechange)
129
+ attribute(String, :onmessage, :onmessage)
130
+ attribute(String, :onoffline, :onoffline)
131
+ attribute(String, :ononline, :ononline)
132
+ attribute(String, :onpagehide, :onpagehide)
133
+ attribute(String, :onpageshow, :onpageshow)
134
+ attribute(String, :onpopstate, :onpopstate)
135
+ attribute(String, :onstorage, :onstorage)
136
+ attribute(String, :onunload, :onunload)
137
+ end
138
+ class FrameSetCollection < ElementCollection
139
+ def element_class
140
+ FrameSet
141
+ end
142
+ end
143
+
144
+ class Marquee < HTMLElement
145
+ attribute(String, :behavior, :behavior)
146
+ attribute(String, :bg_color, :bgColor)
147
+ attribute(String, :direction, :direction)
148
+ attribute(String, :height, :height)
149
+ attribute(Fixnum, :hspace, :hspace)
150
+ attribute(Fixnum, :loop, :loop)
151
+ attribute(Fixnum, :scroll_amount, :scrollAmount)
152
+ attribute(Fixnum, :scroll_delay, :scrollDelay)
153
+ attribute("Boolean", :true_speed?, :trueSpeed)
154
+ attribute(Fixnum, :vspace, :vspace)
155
+ attribute(String, :width, :width)
156
+ attribute(String, :onbounce, :onbounce)
157
+ attribute(String, :onfinish, :onfinish)
158
+ attribute(String, :onstart, :onstart)
159
+ end
160
+ class MarqueeCollection < ElementCollection
161
+ def element_class
162
+ Marquee
163
+ end
164
+ end
165
+
166
+ class Applet < HTMLElement
167
+ attribute(String, :align, :align)
168
+ attribute(String, :alt, :alt)
169
+ attribute(String, :archive, :archive)
170
+ attribute(String, :code, :code)
171
+ attribute(String, :code_base, :codeBase)
172
+ attribute(String, :height, :height)
173
+ attribute(Fixnum, :hspace, :hspace)
174
+ attribute(String, :name, :name)
175
+ attribute(String, :object, :object)
176
+ attribute(Fixnum, :vspace, :vspace)
177
+ attribute(String, :width, :width)
178
+ end
179
+ class AppletCollection < ElementCollection
180
+ def element_class
181
+ Applet
182
+ end
183
+ end
184
+
185
+ class Canvas < HTMLElement
186
+ attribute(Fixnum, :width, :width)
187
+ attribute(Fixnum, :height, :height)
188
+ end
189
+ class CanvasCollection < ElementCollection
190
+ def element_class
191
+ Canvas
192
+ end
193
+ end
194
+
195
+ class Template < HTMLElement
196
+ attribute(String, :content, :content)
197
+ end
198
+ class TemplateCollection < ElementCollection
199
+ def element_class
200
+ Template
201
+ end
202
+ end
203
+
204
+ class Script < HTMLElement
205
+ attribute(String, :src, :src)
206
+ attribute(String, :type, :type)
207
+ attribute(String, :charset, :charset)
208
+ attribute("Boolean", :async?, :async)
209
+ attribute("Boolean", :defer?, :defer)
210
+ attribute(String, :cross_origin, :crossOrigin)
211
+ attribute(String, :event, :event)
212
+ attribute(String, :for, :htmlFor)
213
+ end
214
+ class ScriptCollection < ElementCollection
215
+ def element_class
216
+ Script
217
+ end
218
+ end
219
+
220
+ class Dialog < HTMLElement
221
+ attribute("Boolean", :open?, :open)
222
+ attribute(String, :return_value, :returnValue)
223
+ end
224
+ class DialogCollection < ElementCollection
225
+ def element_class
226
+ Dialog
227
+ end
228
+ end
229
+
230
+ class MenuItem < HTMLElement
231
+ attribute(String, :type, :type)
232
+ attribute(String, :label, :label)
233
+ attribute(String, :icon, :icon)
234
+ attribute("Boolean", :disabled?, :disabled)
235
+ attribute("Boolean", :checked?, :checked)
236
+ attribute(String, :radiogroup, :radiogroup)
237
+ attribute("Boolean", :default?, :default)
238
+ attribute(String, :command, :command)
239
+ end
240
+ class MenuItemCollection < ElementCollection
241
+ def element_class
242
+ MenuItem
243
+ end
244
+ end
245
+
246
+ class Menu < HTMLElement
247
+ attribute(String, :type, :type)
248
+ attribute(String, :label, :label)
249
+ attribute("Boolean", :compact?, :compact)
250
+ end
251
+ class MenuCollection < ElementCollection
252
+ def element_class
253
+ Menu
254
+ end
255
+ end
256
+
257
+ class Details < HTMLElement
258
+ attribute("Boolean", :open?, :open)
259
+ end
260
+ class DetailsCollection < ElementCollection
261
+ def element_class
262
+ Details
263
+ end
264
+ end
265
+
266
+ class Legend < HTMLElement
267
+ attribute(String, :form, :form)
268
+ attribute(String, :align, :align)
269
+ end
270
+ class LegendCollection < ElementCollection
271
+ def element_class
272
+ Legend
273
+ end
274
+ end
275
+
276
+ class FieldSet < HTMLElement
277
+ attribute("Boolean", :disabled?, :disabled)
278
+ attribute(String, :form, :form)
279
+ attribute(String, :name, :name)
280
+ attribute(String, :type, :type)
281
+ attribute("Boolean", :will_validate?, :willValidate)
282
+ attribute(String, :validity, :validity)
283
+ attribute(String, :validation_message, :validationMessage)
284
+ end
285
+ class FieldSetCollection < ElementCollection
286
+ def element_class
287
+ FieldSet
288
+ end
289
+ end
290
+
291
+ class Meter < HTMLElement
292
+ attribute(Float, :value, :value)
293
+ attribute(Float, :min, :min)
294
+ attribute(Float, :max, :max)
295
+ attribute(Float, :low, :low)
296
+ attribute(Float, :high, :high)
297
+ attribute(Float, :optimum, :optimum)
298
+ attribute(String, :labels, :labels)
299
+ end
300
+ class MeterCollection < ElementCollection
301
+ def element_class
302
+ Meter
303
+ end
304
+ end
305
+
306
+ class Progress < HTMLElement
307
+ attribute(Float, :value, :value)
308
+ attribute(Float, :max, :max)
309
+ attribute(Float, :position, :position)
310
+ attribute(String, :labels, :labels)
311
+ end
312
+ class ProgressCollection < ElementCollection
313
+ def element_class
314
+ Progress
315
+ end
316
+ end
317
+
318
+ class Output < HTMLElement
319
+ attribute(String, :for, :htmlFor)
320
+ attribute(String, :form, :form)
321
+ attribute(String, :name, :name)
322
+ attribute(String, :type, :type)
323
+ attribute(String, :default_value, :defaultValue)
324
+ attribute(String, :value, :value)
325
+ attribute("Boolean", :will_validate?, :willValidate)
326
+ attribute(String, :validity, :validity)
327
+ attribute(String, :validation_message, :validationMessage)
328
+ attribute(String, :labels, :labels)
329
+ end
330
+ class OutputCollection < ElementCollection
331
+ def element_class
332
+ Output
333
+ end
334
+ end
335
+
336
+ class Keygen < HTMLElement
337
+ attribute("Boolean", :autofocus?, :autofocus)
338
+ attribute(String, :challenge, :challenge)
339
+ attribute("Boolean", :disabled?, :disabled)
340
+ attribute(String, :form, :form)
341
+ attribute(String, :keytype, :keytype)
342
+ attribute(String, :name, :name)
343
+ attribute(String, :type, :type)
344
+ attribute("Boolean", :will_validate?, :willValidate)
345
+ attribute(String, :validity, :validity)
346
+ attribute(String, :validation_message, :validationMessage)
347
+ attribute(String, :labels, :labels)
348
+ end
349
+ class KeygenCollection < ElementCollection
350
+ def element_class
351
+ Keygen
352
+ end
353
+ end
354
+
355
+ class TextArea < HTMLElement
356
+ attribute(String, :autocomplete, :autocomplete)
357
+ attribute("Boolean", :autofocus?, :autofocus)
358
+ attribute(Fixnum, :cols, :cols)
359
+ attribute(String, :dir_name, :dirName)
360
+ attribute("Boolean", :disabled?, :disabled)
361
+ attribute(String, :form, :form)
362
+ attribute(String, :input_mode, :inputMode)
363
+ attribute(Fixnum, :max_length, :maxLength)
364
+ attribute(Fixnum, :min_length, :minLength)
365
+ attribute(String, :name, :name)
366
+ attribute(String, :placeholder, :placeholder)
367
+ attribute("Boolean", :read_only?, :readOnly)
368
+ attribute("Boolean", :required?, :required)
369
+ attribute(String, :wrap, :wrap)
370
+ attribute(String, :type, :type)
371
+ attribute(String, :default_value, :defaultValue)
372
+ attribute(String, :value, :value)
373
+ attribute(Fixnum, :text_length, :textLength)
374
+ attribute("Boolean", :will_validate?, :willValidate)
375
+ attribute(String, :validity, :validity)
376
+ attribute(String, :validation_message, :validationMessage)
377
+ attribute(String, :labels, :labels)
378
+ attribute(Fixnum, :selection_start, :selectionStart)
379
+ attribute(Fixnum, :selection_end, :selectionEnd)
380
+ attribute(String, :selection_direction, :selectionDirection)
381
+ end
382
+ class TextAreaCollection < ElementCollection
383
+ def element_class
384
+ TextArea
385
+ end
386
+ end
387
+
388
+ class Option < HTMLElement
389
+ attribute("Boolean", :disabled?, :disabled)
390
+ attribute(String, :form, :form)
391
+ attribute(String, :label, :label)
392
+ attribute("Boolean", :default_selected?, :defaultSelected)
393
+ attribute("Boolean", :selected?, :selected)
394
+ attribute(String, :value, :value)
395
+ attribute(Fixnum, :index, :index)
396
+ end
397
+ class OptionCollection < ElementCollection
398
+ def element_class
399
+ Option
400
+ end
401
+ end
402
+
403
+ class OptGroup < HTMLElement
404
+ attribute("Boolean", :disabled?, :disabled)
405
+ attribute(String, :label, :label)
406
+ end
407
+ class OptGroupCollection < ElementCollection
408
+ def element_class
409
+ OptGroup
410
+ end
411
+ end
412
+
413
+ class DataList < HTMLElement
414
+ attribute(String, :options, :options)
415
+ end
416
+ class DataListCollection < ElementCollection
417
+ def element_class
418
+ DataList
419
+ end
420
+ end
421
+
422
+ class Select < HTMLElement
423
+ attribute(String, :autocomplete, :autocomplete)
424
+ attribute("Boolean", :autofocus?, :autofocus)
425
+ attribute("Boolean", :disabled?, :disabled)
426
+ attribute(String, :form, :form)
427
+ attribute("Boolean", :multiple?, :multiple)
428
+ attribute(String, :name, :name)
429
+ attribute("Boolean", :required?, :required)
430
+ attribute(Fixnum, :size, :size)
431
+ attribute(String, :type, :type)
432
+ attribute(String, :options, :options)
433
+ attribute(Fixnum, :length, :length)
434
+ attribute(String, :selected_options, :selectedOptions)
435
+ attribute(Fixnum, :selected_index, :selectedIndex)
436
+ attribute(String, :value, :value)
437
+ attribute("Boolean", :will_validate?, :willValidate)
438
+ attribute(String, :validity, :validity)
439
+ attribute(String, :validation_message, :validationMessage)
440
+ attribute(String, :labels, :labels)
441
+ end
442
+ class SelectCollection < ElementCollection
443
+ def element_class
444
+ Select
445
+ end
446
+ end
447
+
448
+ class Button < HTMLElement
449
+ attribute("Boolean", :autofocus?, :autofocus)
450
+ attribute("Boolean", :disabled?, :disabled)
451
+ attribute(String, :form, :form)
452
+ attribute(String, :form_action, :formAction)
453
+ attribute(String, :form_enctype, :formEnctype)
454
+ attribute(String, :form_method, :formMethod)
455
+ attribute("Boolean", :form_no_validate?, :formNoValidate)
456
+ attribute(String, :form_target, :formTarget)
457
+ attribute(String, :name, :name)
458
+ attribute(String, :type, :type)
459
+ attribute(String, :value, :value)
460
+ attribute(String, :menu, :menu)
461
+ attribute("Boolean", :will_validate?, :willValidate)
462
+ attribute(String, :validity, :validity)
463
+ attribute(String, :validation_message, :validationMessage)
464
+ attribute(String, :labels, :labels)
465
+ end
466
+ class ButtonCollection < ElementCollection
467
+ def element_class
468
+ Button
469
+ end
470
+ end
471
+
472
+ class Input < HTMLElement
473
+ attribute(String, :accept, :accept)
474
+ attribute(String, :alt, :alt)
475
+ attribute(String, :autocomplete, :autocomplete)
476
+ attribute("Boolean", :autofocus?, :autofocus)
477
+ attribute("Boolean", :default_checked?, :defaultChecked)
478
+ attribute("Boolean", :checked?, :checked)
479
+ attribute(String, :dir_name, :dirName)
480
+ attribute("Boolean", :disabled?, :disabled)
481
+ attribute(String, :form, :form)
482
+ attribute(String, :files, :files)
483
+ attribute(String, :form_action, :formAction)
484
+ attribute(String, :form_enctype, :formEnctype)
485
+ attribute(String, :form_method, :formMethod)
486
+ attribute("Boolean", :form_no_validate?, :formNoValidate)
487
+ attribute(String, :form_target, :formTarget)
488
+ attribute(Fixnum, :height, :height)
489
+ attribute("Boolean", :indeterminate?, :indeterminate)
490
+ attribute(String, :input_mode, :inputMode)
491
+ attribute(String, :list, :list)
492
+ attribute(String, :max, :max)
493
+ attribute(Fixnum, :max_length, :maxLength)
494
+ attribute(String, :min, :min)
495
+ attribute(Fixnum, :min_length, :minLength)
496
+ attribute("Boolean", :multiple?, :multiple)
497
+ attribute(String, :name, :name)
498
+ attribute(String, :pattern, :pattern)
499
+ attribute(String, :placeholder, :placeholder)
500
+ attribute("Boolean", :read_only?, :readOnly)
501
+ attribute("Boolean", :required?, :required)
502
+ attribute(Fixnum, :size, :size)
503
+ attribute(String, :src, :src)
504
+ attribute(String, :step, :step)
505
+ attribute(String, :type, :type)
506
+ attribute(String, :default_value, :defaultValue)
507
+ attribute(String, :value, :value)
508
+ attribute(String, :value_as_date, :valueAsDate)
509
+ attribute(Float, :value_as_number, :valueAsNumber)
510
+ attribute(Float, :value_low, :valueLow)
511
+ attribute(Float, :value_high, :valueHigh)
512
+ attribute(Fixnum, :width, :width)
513
+ attribute("Boolean", :will_validate?, :willValidate)
514
+ attribute(String, :validity, :validity)
515
+ attribute(String, :validation_message, :validationMessage)
516
+ attribute(String, :labels, :labels)
517
+ attribute(Fixnum, :selection_start, :selectionStart)
518
+ attribute(Fixnum, :selection_end, :selectionEnd)
519
+ attribute(String, :selection_direction, :selectionDirection)
520
+ attribute(String, :align, :align)
521
+ attribute(String, :use_map, :useMap)
522
+ end
523
+ class InputCollection < ElementCollection
524
+ def element_class
525
+ Input
526
+ end
527
+ end
528
+
529
+ class Label < HTMLElement
530
+ attribute(String, :form, :form)
531
+ attribute(String, :for, :htmlFor)
532
+ attribute(String, :control, :control)
533
+ end
534
+ class LabelCollection < ElementCollection
535
+ def element_class
536
+ Label
537
+ end
538
+ end
539
+
540
+ class Form < HTMLElement
541
+ attribute(String, :accept_charset, :acceptCharset)
542
+ attribute(String, :action, :action)
543
+ attribute(String, :autocomplete, :autocomplete)
544
+ attribute(String, :enctype, :enctype)
545
+ attribute(String, :encoding, :encoding)
546
+ attribute(String, :method, :method)
547
+ attribute(String, :name, :name)
548
+ attribute("Boolean", :no_validate?, :noValidate)
549
+ attribute(String, :target, :target)
550
+ attribute(Fixnum, :length, :length)
551
+ end
552
+ class FormCollection < ElementCollection
553
+ def element_class
554
+ Form
555
+ end
556
+ end
557
+
558
+ class TableCell < HTMLElement
559
+ attribute(Fixnum, :col_span, :colSpan)
560
+ attribute(Fixnum, :row_span, :rowSpan)
561
+ attribute(String, :headers, :headers)
562
+ attribute(Fixnum, :cell_index, :cellIndex)
563
+ attribute(String, :align, :align)
564
+ attribute(String, :axis, :axis)
565
+ attribute(String, :height, :height)
566
+ attribute(String, :width, :width)
567
+ attribute(String, :ch, :ch)
568
+ attribute(String, :ch_off, :chOff)
569
+ attribute("Boolean", :no_wrap?, :noWrap)
570
+ attribute(String, :v_align, :vAlign)
571
+ attribute(String, :bg_color, :bgColor)
572
+ end
573
+ class TableCellCollection < ElementCollection
574
+ def element_class
575
+ TableCell
576
+ end
577
+ end
578
+
579
+ class TableHeaderCell < TableCell
580
+ attribute(String, :scope, :scope)
581
+ attribute(String, :abbr, :abbr)
582
+ attribute(String, :sorted, :sorted)
583
+ end
584
+ class TableHeaderCellCollection < ElementCollection
585
+ def element_class
586
+ TableHeaderCell
587
+ end
588
+ end
589
+
590
+ class TableDataCell < TableCell
591
+ attribute(String, :abbr, :abbr)
592
+ end
593
+ class TableDataCellCollection < ElementCollection
594
+ def element_class
595
+ TableDataCell
596
+ end
597
+ end
598
+
599
+ class TableRow < HTMLElement
600
+ attribute(Fixnum, :row_index, :rowIndex)
601
+ attribute(Fixnum, :section_row_index, :sectionRowIndex)
602
+ attribute(String, :align, :align)
603
+ attribute(String, :ch, :ch)
604
+ attribute(String, :ch_off, :chOff)
605
+ attribute(String, :v_align, :vAlign)
606
+ attribute(String, :bg_color, :bgColor)
607
+ end
608
+ class TableRowCollection < ElementCollection
609
+ def element_class
610
+ TableRow
611
+ end
612
+ end
613
+
614
+ class TableSection < HTMLElement
615
+ attribute(String, :align, :align)
616
+ attribute(String, :ch, :ch)
617
+ attribute(String, :ch_off, :chOff)
618
+ attribute(String, :v_align, :vAlign)
619
+ end
620
+ class TableSectionCollection < ElementCollection
621
+ def element_class
622
+ TableSection
623
+ end
624
+ end
625
+
626
+ class TableCol < HTMLElement
627
+ attribute(String, :align, :align)
628
+ attribute(String, :ch, :ch)
629
+ attribute(String, :ch_off, :chOff)
630
+ attribute(String, :v_align, :vAlign)
631
+ attribute(String, :width, :width)
632
+ end
633
+ class TableColCollection < ElementCollection
634
+ def element_class
635
+ TableCol
636
+ end
637
+ end
638
+
639
+ class TableCaption < HTMLElement
640
+ attribute(String, :align, :align)
641
+ end
642
+ class TableCaptionCollection < ElementCollection
643
+ def element_class
644
+ TableCaption
645
+ end
646
+ end
647
+
648
+ class Table < HTMLElement
649
+ attribute(String, :caption, :caption)
650
+ attribute(String, :t_head, :tHead)
651
+ attribute(String, :t_foot, :tFoot)
652
+ attribute(String, :t_bodies, :tBodies)
653
+ attribute("Boolean", :sortable?, :sortable)
654
+ attribute(String, :align, :align)
655
+ attribute(String, :border, :border)
656
+ attribute(String, :frame, :frame)
657
+ attribute(String, :rules, :rules)
658
+ attribute(String, :summary, :summary)
659
+ attribute(String, :width, :width)
660
+ attribute(String, :bg_color, :bgColor)
661
+ attribute(String, :cell_padding, :cellPadding)
662
+ attribute(String, :cell_spacing, :cellSpacing)
663
+ end
664
+ class TableCollection < ElementCollection
665
+ def element_class
666
+ Table
667
+ end
668
+ end
669
+
670
+ class Area < HTMLElement
671
+ attribute(String, :alt, :alt)
672
+ attribute(String, :coords, :coords)
673
+ attribute(String, :shape, :shape)
674
+ attribute(String, :target, :target)
675
+ attribute(String, :download, :download)
676
+ attribute(String, :ping, :ping)
677
+ attribute(String, :rel, :rel)
678
+ attribute(String, :rel_list, :relList)
679
+ attribute(String, :hreflang, :hreflang)
680
+ attribute(String, :type, :type)
681
+ attribute("Boolean", :no_href?, :noHref)
682
+ end
683
+ class AreaCollection < ElementCollection
684
+ def element_class
685
+ Area
686
+ end
687
+ end
688
+
689
+ class Map < HTMLElement
690
+ attribute(String, :name, :name)
691
+ attribute(String, :areas, :areas)
692
+ attribute(String, :images, :images)
693
+ end
694
+ class MapCollection < ElementCollection
695
+ def element_class
696
+ Map
697
+ end
698
+ end
699
+
700
+ class Media < HTMLElement
701
+ attribute(String, :error, :error)
702
+ attribute(String, :src, :src)
703
+ attribute(String, :src_object, :srcObject)
704
+ attribute(String, :current_src, :currentSrc)
705
+ attribute(String, :cross_origin, :crossOrigin)
706
+ attribute(Fixnum, :network_state, :networkState)
707
+ attribute(String, :preload, :preload)
708
+ attribute(String, :buffered, :buffered)
709
+ attribute(Fixnum, :ready_state, :readyState)
710
+ attribute("Boolean", :seeking?, :seeking)
711
+ attribute(Float, :current_time, :currentTime)
712
+ attribute(Float, :duration, :duration)
713
+ attribute("Boolean", :paused?, :paused)
714
+ attribute(Float, :default_playback_rate, :defaultPlaybackRate)
715
+ attribute(Float, :playback_rate, :playbackRate)
716
+ attribute(String, :played, :played)
717
+ attribute(String, :seekable, :seekable)
718
+ attribute("Boolean", :ended?, :ended)
719
+ attribute("Boolean", :autoplay?, :autoplay)
720
+ attribute("Boolean", :loop?, :loop)
721
+ attribute(String, :media_group, :mediaGroup)
722
+ attribute(String, :controller, :controller)
723
+ attribute("Boolean", :controls?, :controls)
724
+ attribute(Float, :volume, :volume)
725
+ attribute("Boolean", :muted?, :muted)
726
+ attribute("Boolean", :default_muted?, :defaultMuted)
727
+ attribute(String, :audio_tracks, :audioTracks)
728
+ attribute(String, :video_tracks, :videoTracks)
729
+ attribute(String, :text_tracks, :textTracks)
730
+ end
731
+ class MediaCollection < ElementCollection
732
+ def element_class
733
+ Media
734
+ end
735
+ end
736
+
737
+ class Audio < Media
738
+ end
739
+ class AudioCollection < ElementCollection
740
+ def element_class
741
+ Audio
742
+ end
743
+ end
744
+
745
+ class Video < Media
746
+ attribute(Fixnum, :width, :width)
747
+ attribute(Fixnum, :height, :height)
748
+ attribute(Fixnum, :video_width, :videoWidth)
749
+ attribute(Fixnum, :video_height, :videoHeight)
750
+ attribute(String, :poster, :poster)
751
+ end
752
+ class VideoCollection < ElementCollection
753
+ def element_class
754
+ Video
755
+ end
756
+ end
757
+
758
+ class Track < HTMLElement
759
+ attribute(String, :kind, :kind)
760
+ attribute(String, :src, :src)
761
+ attribute(String, :srclang, :srclang)
762
+ attribute(String, :label, :label)
763
+ attribute("Boolean", :default?, :default)
764
+ attribute(Fixnum, :ready_state, :readyState)
765
+ attribute(String, :track, :track)
766
+ end
767
+ class TrackCollection < ElementCollection
768
+ def element_class
769
+ Track
770
+ end
771
+ end
772
+
773
+ class Param < HTMLElement
774
+ attribute(String, :name, :name)
775
+ attribute(String, :value, :value)
776
+ attribute(String, :type, :type)
777
+ attribute(String, :value_type, :valueType)
778
+ end
779
+ class ParamCollection < ElementCollection
780
+ def element_class
781
+ Param
782
+ end
783
+ end
784
+
785
+ class Object < HTMLElement
786
+ attribute(String, :data, :data)
787
+ attribute(String, :type, :type)
788
+ attribute("Boolean", :type_must_match?, :typeMustMatch)
789
+ attribute(String, :name, :name)
790
+ attribute(String, :use_map, :useMap)
791
+ attribute(String, :form, :form)
792
+ attribute(String, :width, :width)
793
+ attribute(String, :height, :height)
794
+ attribute(String, :content_document, :contentDocument)
795
+ attribute(String, :content_window, :contentWindow)
796
+ attribute("Boolean", :will_validate?, :willValidate)
797
+ attribute(String, :validity, :validity)
798
+ attribute(String, :validation_message, :validationMessage)
799
+ attribute(String, :align, :align)
800
+ attribute(String, :archive, :archive)
801
+ attribute(String, :code, :code)
802
+ attribute("Boolean", :declare?, :declare)
803
+ attribute(Fixnum, :hspace, :hspace)
804
+ attribute(String, :standby, :standby)
805
+ attribute(Fixnum, :vspace, :vspace)
806
+ attribute(String, :code_base, :codeBase)
807
+ attribute(String, :code_type, :codeType)
808
+ attribute(String, :border, :border)
809
+ end
810
+ class ObjectCollection < ElementCollection
811
+ def element_class
812
+ Object
813
+ end
814
+ end
815
+
816
+ class Embed < HTMLElement
817
+ attribute(String, :src, :src)
818
+ attribute(String, :type, :type)
819
+ attribute(String, :width, :width)
820
+ attribute(String, :height, :height)
821
+ attribute(String, :align, :align)
822
+ attribute(String, :name, :name)
823
+ end
824
+ class EmbedCollection < ElementCollection
825
+ def element_class
826
+ Embed
827
+ end
828
+ end
829
+
830
+ class IFrame < HTMLElement
831
+ attribute(String, :src, :src)
832
+ attribute(String, :srcdoc, :srcdoc)
833
+ attribute(String, :name, :name)
834
+ attribute(String, :sandbox, :sandbox)
835
+ attribute("Boolean", :seamless?, :seamless)
836
+ attribute("Boolean", :allow_fullscreen?, :allowFullscreen)
837
+ attribute(String, :width, :width)
838
+ attribute(String, :height, :height)
839
+ attribute(String, :content_document, :contentDocument)
840
+ attribute(String, :content_window, :contentWindow)
841
+ attribute(String, :align, :align)
842
+ attribute(String, :scrolling, :scrolling)
843
+ attribute(String, :frame_border, :frameBorder)
844
+ attribute(String, :long_desc, :longDesc)
845
+ attribute(String, :margin_height, :marginHeight)
846
+ attribute(String, :margin_width, :marginWidth)
847
+ end
848
+ class IFrameCollection < ElementCollection
849
+ def element_class
850
+ IFrame
851
+ end
852
+ end
853
+
854
+ class Image < HTMLElement
855
+ attribute(String, :alt, :alt)
856
+ attribute(String, :src, :src)
857
+ attribute(String, :srcset, :srcset)
858
+ attribute(String, :sizes, :sizes)
859
+ attribute(String, :cross_origin, :crossOrigin)
860
+ attribute(String, :use_map, :useMap)
861
+ attribute("Boolean", :map?, :isMap)
862
+ attribute(Fixnum, :width, :width)
863
+ attribute(Fixnum, :height, :height)
864
+ attribute(Fixnum, :natural_width, :naturalWidth)
865
+ attribute(Fixnum, :natural_height, :naturalHeight)
866
+ attribute("Boolean", :complete?, :complete)
867
+ attribute(String, :current_src, :currentSrc)
868
+ attribute(String, :name, :name)
869
+ attribute(String, :lowsrc, :lowsrc)
870
+ attribute(String, :align, :align)
871
+ attribute(Fixnum, :hspace, :hspace)
872
+ attribute(Fixnum, :vspace, :vspace)
873
+ attribute(String, :long_desc, :longDesc)
874
+ attribute(String, :border, :border)
875
+ end
876
+ class ImageCollection < ElementCollection
877
+ def element_class
878
+ Image
879
+ end
880
+ end
881
+
882
+ class Source < HTMLElement
883
+ attribute(String, :srcset, :srcset)
884
+ attribute(String, :sizes, :sizes)
885
+ attribute(String, :media, :media)
886
+ attribute(String, :src, :src)
887
+ attribute(String, :type, :type)
888
+ end
889
+ class SourceCollection < ElementCollection
890
+ def element_class
891
+ Source
892
+ end
893
+ end
894
+
895
+ class Picture < HTMLElement
896
+ end
897
+ class PictureCollection < ElementCollection
898
+ def element_class
899
+ Picture
900
+ end
901
+ end
902
+
903
+ class Mod < HTMLElement
904
+ attribute(String, :cite, :cite)
905
+ attribute(String, :date_time, :dateTime)
906
+ end
907
+ class ModCollection < ElementCollection
908
+ def element_class
909
+ Mod
910
+ end
911
+ end
912
+
913
+ class BR < HTMLElement
914
+ attribute(String, :clear, :clear)
915
+ end
916
+ class BRCollection < ElementCollection
917
+ def element_class
918
+ BR
919
+ end
920
+ end
921
+
922
+ class Span < HTMLElement
923
+ end
924
+ class SpanCollection < ElementCollection
925
+ def element_class
926
+ Span
927
+ end
928
+ end
929
+
930
+ class Time < HTMLElement
931
+ attribute(String, :date_time, :dateTime)
932
+ end
933
+ class TimeCollection < ElementCollection
934
+ def element_class
935
+ Time
936
+ end
937
+ end
938
+
939
+ class Data < HTMLElement
940
+ attribute(String, :value, :value)
941
+ end
942
+ class DataCollection < ElementCollection
943
+ def element_class
944
+ Data
945
+ end
946
+ end
947
+
948
+ class Anchor < HTMLElement
949
+ attribute(String, :target, :target)
950
+ attribute(String, :download, :download)
951
+ attribute(String, :ping, :ping)
952
+ attribute(String, :rel, :rel)
953
+ attribute(String, :rel_list, :relList)
954
+ attribute(String, :hreflang, :hreflang)
955
+ attribute(String, :type, :type)
956
+ attribute(String, :coords, :coords)
957
+ attribute(String, :charset, :charset)
958
+ attribute(String, :name, :name)
959
+ attribute(String, :rev, :rev)
960
+ attribute(String, :shape, :shape)
961
+ end
962
+ class AnchorCollection < ElementCollection
963
+ def element_class
964
+ Anchor
965
+ end
966
+ end
967
+
968
+ class Div < HTMLElement
969
+ attribute(String, :align, :align)
970
+ end
971
+ class DivCollection < ElementCollection
972
+ def element_class
973
+ Div
974
+ end
975
+ end
976
+
977
+ class DList < HTMLElement
978
+ attribute("Boolean", :compact?, :compact)
979
+ end
980
+ class DListCollection < ElementCollection
981
+ def element_class
982
+ DList
983
+ end
984
+ end
985
+
986
+ class LI < HTMLElement
987
+ attribute(Fixnum, :value, :value)
988
+ attribute(String, :type, :type)
989
+ end
990
+ class LICollection < ElementCollection
991
+ def element_class
992
+ LI
993
+ end
994
+ end
995
+
996
+ class UList < HTMLElement
997
+ attribute("Boolean", :compact?, :compact)
998
+ attribute(String, :type, :type)
999
+ end
1000
+ class UListCollection < ElementCollection
1001
+ def element_class
1002
+ UList
1003
+ end
1004
+ end
1005
+
1006
+ class OList < HTMLElement
1007
+ attribute("Boolean", :reversed?, :reversed)
1008
+ attribute(Fixnum, :start, :start)
1009
+ attribute(String, :type, :type)
1010
+ attribute("Boolean", :compact?, :compact)
1011
+ end
1012
+ class OListCollection < ElementCollection
1013
+ def element_class
1014
+ OList
1015
+ end
1016
+ end
1017
+
1018
+ class Quote < HTMLElement
1019
+ attribute(String, :cite, :cite)
1020
+ end
1021
+ class QuoteCollection < ElementCollection
1022
+ def element_class
1023
+ Quote
1024
+ end
1025
+ end
1026
+
1027
+ class Pre < HTMLElement
1028
+ attribute(Fixnum, :width, :width)
1029
+ end
1030
+ class PreCollection < ElementCollection
1031
+ def element_class
1032
+ Pre
1033
+ end
1034
+ end
1035
+
1036
+ class HR < HTMLElement
1037
+ attribute(String, :align, :align)
1038
+ attribute(String, :color, :color)
1039
+ attribute("Boolean", :no_shade?, :noShade)
1040
+ attribute(String, :size, :size)
1041
+ attribute(String, :width, :width)
1042
+ end
1043
+ class HRCollection < ElementCollection
1044
+ def element_class
1045
+ HR
1046
+ end
1047
+ end
1048
+
1049
+ class Paragraph < HTMLElement
1050
+ attribute(String, :align, :align)
1051
+ end
1052
+ class ParagraphCollection < ElementCollection
1053
+ def element_class
1054
+ Paragraph
1055
+ end
1056
+ end
1057
+
1058
+ class Heading < HTMLElement
1059
+ attribute(String, :align, :align)
1060
+ end
1061
+ class HeadingCollection < ElementCollection
1062
+ def element_class
1063
+ Heading
1064
+ end
1065
+ end
1066
+
1067
+ class Body < HTMLElement
1068
+ attribute(String, :link, :link)
1069
+ attribute(String, :v_link, :vLink)
1070
+ attribute(String, :a_link, :aLink)
1071
+ attribute(String, :bg_color, :bgColor)
1072
+ attribute(String, :background, :background)
1073
+ attribute(String, :onafterprint, :onafterprint)
1074
+ attribute(String, :onbeforeprint, :onbeforeprint)
1075
+ attribute(String, :onbeforeunload, :onbeforeunload)
1076
+ attribute(String, :onhashchange, :onhashchange)
1077
+ attribute(String, :onlanguagechange, :onlanguagechange)
1078
+ attribute(String, :onmessage, :onmessage)
1079
+ attribute(String, :onoffline, :onoffline)
1080
+ attribute(String, :ononline, :ononline)
1081
+ attribute(String, :onpagehide, :onpagehide)
1082
+ attribute(String, :onpageshow, :onpageshow)
1083
+ attribute(String, :onpopstate, :onpopstate)
1084
+ attribute(String, :onstorage, :onstorage)
1085
+ attribute(String, :onunload, :onunload)
1086
+ end
1087
+ class BodyCollection < ElementCollection
1088
+ def element_class
1089
+ Body
1090
+ end
1091
+ end
1092
+
1093
+ class Style < HTMLElement
1094
+ attribute(String, :media, :media)
1095
+ attribute(String, :type, :type)
1096
+ attribute("Boolean", :scoped?, :scoped)
1097
+ end
1098
+ class StyleCollection < ElementCollection
1099
+ def element_class
1100
+ Style
1101
+ end
1102
+ end
1103
+
1104
+ class Meta < HTMLElement
1105
+ attribute(String, :name, :name)
1106
+ attribute(String, :http_equiv, :httpEquiv)
1107
+ attribute(String, :content, :content)
1108
+ attribute(String, :scheme, :scheme)
1109
+ end
1110
+ class MetaCollection < ElementCollection
1111
+ def element_class
1112
+ Meta
1113
+ end
1114
+ end
1115
+
1116
+ class Base < HTMLElement
1117
+ attribute(String, :href, :href)
1118
+ attribute(String, :target, :target)
1119
+ end
1120
+ class BaseCollection < ElementCollection
1121
+ def element_class
1122
+ Base
1123
+ end
1124
+ end
1125
+
1126
+ class Title < HTMLElement
1127
+ end
1128
+ class TitleCollection < ElementCollection
1129
+ def element_class
1130
+ Title
1131
+ end
1132
+ end
1133
+
1134
+ class Head < HTMLElement
1135
+ end
1136
+ class HeadCollection < ElementCollection
1137
+ def element_class
1138
+ Head
1139
+ end
1140
+ end
1141
+
1142
+ class Html < HTMLElement
1143
+ attribute(String, :version, :version)
1144
+ end
1145
+ class HtmlCollection < ElementCollection
1146
+ def element_class
1147
+ Html
1148
+ end
1149
+ end
1150
+
1151
+ class Unknown < HTMLElement
1152
+ end
1153
+ class UnknownCollection < ElementCollection
1154
+ def element_class
1155
+ Unknown
1156
+ end
1157
+ end
1158
+
1159
+
1160
+ module Container
1161
+
1162
+ # @return [Anchor]
1163
+ def a(*args)
1164
+ Anchor.new(self, extract_selector(args).merge(tag_name: "a"))
1165
+ end
1166
+ # @return [AnchorCollection]
1167
+ def as(*args)
1168
+ AnchorCollection.new(self, extract_selector(args).merge(tag_name: "a"))
1169
+ end
1170
+ Watir.tag_to_class[:a] = Anchor
1171
+
1172
+ # @return [HTMLElement]
1173
+ def abbr(*args)
1174
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "abbr"))
1175
+ end
1176
+ # @return [HTMLElementCollection]
1177
+ def abbrs(*args)
1178
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "abbr"))
1179
+ end
1180
+ Watir.tag_to_class[:abbr] = HTMLElement
1181
+
1182
+ # @return [HTMLElement]
1183
+ def address(*args)
1184
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "address"))
1185
+ end
1186
+ # @return [HTMLElementCollection]
1187
+ def addresses(*args)
1188
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "address"))
1189
+ end
1190
+ Watir.tag_to_class[:address] = HTMLElement
1191
+
1192
+ # @return [Area]
1193
+ def area(*args)
1194
+ Area.new(self, extract_selector(args).merge(tag_name: "area"))
1195
+ end
1196
+ # @return [AreaCollection]
1197
+ def areas(*args)
1198
+ AreaCollection.new(self, extract_selector(args).merge(tag_name: "area"))
1199
+ end
1200
+ Watir.tag_to_class[:area] = Area
1201
+
1202
+ # @return [HTMLElement]
1203
+ def article(*args)
1204
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "article"))
1205
+ end
1206
+ # @return [HTMLElementCollection]
1207
+ def articles(*args)
1208
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "article"))
1209
+ end
1210
+ Watir.tag_to_class[:article] = HTMLElement
1211
+
1212
+ # @return [HTMLElement]
1213
+ def aside(*args)
1214
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "aside"))
1215
+ end
1216
+ # @return [HTMLElementCollection]
1217
+ def asides(*args)
1218
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "aside"))
1219
+ end
1220
+ Watir.tag_to_class[:aside] = HTMLElement
1221
+
1222
+ # @return [Audio]
1223
+ def audio(*args)
1224
+ Audio.new(self, extract_selector(args).merge(tag_name: "audio"))
1225
+ end
1226
+ # @return [AudioCollection]
1227
+ def audios(*args)
1228
+ AudioCollection.new(self, extract_selector(args).merge(tag_name: "audio"))
1229
+ end
1230
+ Watir.tag_to_class[:audio] = Audio
1231
+
1232
+ # @return [HTMLElement]
1233
+ def b(*args)
1234
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "b"))
1235
+ end
1236
+ # @return [HTMLElementCollection]
1237
+ def bs(*args)
1238
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "b"))
1239
+ end
1240
+ Watir.tag_to_class[:b] = HTMLElement
1241
+
1242
+ # @return [Base]
1243
+ def base(*args)
1244
+ Base.new(self, extract_selector(args).merge(tag_name: "base"))
1245
+ end
1246
+ # @return [BaseCollection]
1247
+ def bases(*args)
1248
+ BaseCollection.new(self, extract_selector(args).merge(tag_name: "base"))
1249
+ end
1250
+ Watir.tag_to_class[:base] = Base
1251
+
1252
+ # @return [HTMLElement]
1253
+ def bdi(*args)
1254
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "bdi"))
1255
+ end
1256
+ # @return [HTMLElementCollection]
1257
+ def bdis(*args)
1258
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "bdi"))
1259
+ end
1260
+ Watir.tag_to_class[:bdi] = HTMLElement
1261
+
1262
+ # @return [HTMLElement]
1263
+ def bdo(*args)
1264
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "bdo"))
1265
+ end
1266
+ # @return [HTMLElementCollection]
1267
+ def bdos(*args)
1268
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "bdo"))
1269
+ end
1270
+ Watir.tag_to_class[:bdo] = HTMLElement
1271
+
1272
+ # @return [Quote]
1273
+ def blockquote(*args)
1274
+ Quote.new(self, extract_selector(args).merge(tag_name: "blockquote"))
1275
+ end
1276
+ # @return [QuoteCollection]
1277
+ def blockquotes(*args)
1278
+ QuoteCollection.new(self, extract_selector(args).merge(tag_name: "blockquote"))
1279
+ end
1280
+ Watir.tag_to_class[:blockquote] = Quote
1281
+
1282
+ # @return [Body]
1283
+ def body(*args)
1284
+ Body.new(self, extract_selector(args).merge(tag_name: "body"))
1285
+ end
1286
+ # @return [BodyCollection]
1287
+ def bodys(*args)
1288
+ BodyCollection.new(self, extract_selector(args).merge(tag_name: "body"))
1289
+ end
1290
+ Watir.tag_to_class[:body] = Body
1291
+
1292
+ # @return [BR]
1293
+ def br(*args)
1294
+ BR.new(self, extract_selector(args).merge(tag_name: "br"))
1295
+ end
1296
+ # @return [BRCollection]
1297
+ def brs(*args)
1298
+ BRCollection.new(self, extract_selector(args).merge(tag_name: "br"))
1299
+ end
1300
+ Watir.tag_to_class[:br] = BR
1301
+
1302
+ # @return [Button]
1303
+ def button(*args)
1304
+ Button.new(self, extract_selector(args).merge(tag_name: "button"))
1305
+ end
1306
+ # @return [ButtonCollection]
1307
+ def buttons(*args)
1308
+ ButtonCollection.new(self, extract_selector(args).merge(tag_name: "button"))
1309
+ end
1310
+ Watir.tag_to_class[:button] = Button
1311
+
1312
+ # @return [Canvas]
1313
+ def canvas(*args)
1314
+ Canvas.new(self, extract_selector(args).merge(tag_name: "canvas"))
1315
+ end
1316
+ # @return [CanvasCollection]
1317
+ def canvases(*args)
1318
+ CanvasCollection.new(self, extract_selector(args).merge(tag_name: "canvas"))
1319
+ end
1320
+ Watir.tag_to_class[:canvas] = Canvas
1321
+
1322
+ # @return [TableCaption]
1323
+ def caption(*args)
1324
+ TableCaption.new(self, extract_selector(args).merge(tag_name: "caption"))
1325
+ end
1326
+ # @return [TableCaptionCollection]
1327
+ def captions(*args)
1328
+ TableCaptionCollection.new(self, extract_selector(args).merge(tag_name: "caption"))
1329
+ end
1330
+ Watir.tag_to_class[:caption] = TableCaption
1331
+
1332
+ # @return [HTMLElement]
1333
+ def cite(*args)
1334
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "cite"))
1335
+ end
1336
+ # @return [HTMLElementCollection]
1337
+ def cites(*args)
1338
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "cite"))
1339
+ end
1340
+ Watir.tag_to_class[:cite] = HTMLElement
1341
+
1342
+ # @return [HTMLElement]
1343
+ def code(*args)
1344
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "code"))
1345
+ end
1346
+ # @return [HTMLElementCollection]
1347
+ def codes(*args)
1348
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "code"))
1349
+ end
1350
+ Watir.tag_to_class[:code] = HTMLElement
1351
+
1352
+ # @return [TableCol]
1353
+ def col(*args)
1354
+ TableCol.new(self, extract_selector(args).merge(tag_name: "col"))
1355
+ end
1356
+ # @return [TableColCollection]
1357
+ def cols(*args)
1358
+ TableColCollection.new(self, extract_selector(args).merge(tag_name: "col"))
1359
+ end
1360
+ Watir.tag_to_class[:col] = TableCol
1361
+
1362
+ # @return [TableCol]
1363
+ def colgroup(*args)
1364
+ TableCol.new(self, extract_selector(args).merge(tag_name: "colgroup"))
1365
+ end
1366
+ # @return [TableColCollection]
1367
+ def colgroups(*args)
1368
+ TableColCollection.new(self, extract_selector(args).merge(tag_name: "colgroup"))
1369
+ end
1370
+ Watir.tag_to_class[:colgroup] = TableCol
1371
+
1372
+ # @return [Data]
1373
+ def data(*args)
1374
+ Data.new(self, extract_selector(args).merge(tag_name: "data"))
1375
+ end
1376
+ # @return [DataCollection]
1377
+ def datas(*args)
1378
+ DataCollection.new(self, extract_selector(args).merge(tag_name: "data"))
1379
+ end
1380
+ Watir.tag_to_class[:data] = Data
1381
+
1382
+ # @return [DataList]
1383
+ def datalist(*args)
1384
+ DataList.new(self, extract_selector(args).merge(tag_name: "datalist"))
1385
+ end
1386
+ # @return [DataListCollection]
1387
+ def datalists(*args)
1388
+ DataListCollection.new(self, extract_selector(args).merge(tag_name: "datalist"))
1389
+ end
1390
+ Watir.tag_to_class[:datalist] = DataList
1391
+
1392
+ # @return [HTMLElement]
1393
+ def dd(*args)
1394
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "dd"))
1395
+ end
1396
+ # @return [HTMLElementCollection]
1397
+ def dds(*args)
1398
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "dd"))
1399
+ end
1400
+ Watir.tag_to_class[:dd] = HTMLElement
1401
+
1402
+ # @return [Mod]
1403
+ def del(*args)
1404
+ Mod.new(self, extract_selector(args).merge(tag_name: "del"))
1405
+ end
1406
+ # @return [ModCollection]
1407
+ def dels(*args)
1408
+ ModCollection.new(self, extract_selector(args).merge(tag_name: "del"))
1409
+ end
1410
+ Watir.tag_to_class[:del] = Mod
1411
+
1412
+ # @return [Details]
1413
+ def details(*args)
1414
+ Details.new(self, extract_selector(args).merge(tag_name: "details"))
1415
+ end
1416
+ # @return [DetailsCollection]
1417
+ def detailses(*args)
1418
+ DetailsCollection.new(self, extract_selector(args).merge(tag_name: "details"))
1419
+ end
1420
+ Watir.tag_to_class[:details] = Details
1421
+
1422
+ # @return [HTMLElement]
1423
+ def dfn(*args)
1424
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "dfn"))
1425
+ end
1426
+ # @return [HTMLElementCollection]
1427
+ def dfns(*args)
1428
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "dfn"))
1429
+ end
1430
+ Watir.tag_to_class[:dfn] = HTMLElement
1431
+
1432
+ # @return [Dialog]
1433
+ def dialog(*args)
1434
+ Dialog.new(self, extract_selector(args).merge(tag_name: "dialog"))
1435
+ end
1436
+ # @return [DialogCollection]
1437
+ def dialogs(*args)
1438
+ DialogCollection.new(self, extract_selector(args).merge(tag_name: "dialog"))
1439
+ end
1440
+ Watir.tag_to_class[:dialog] = Dialog
1441
+
1442
+ # @return [Div]
1443
+ def div(*args)
1444
+ Div.new(self, extract_selector(args).merge(tag_name: "div"))
1445
+ end
1446
+ # @return [DivCollection]
1447
+ def divs(*args)
1448
+ DivCollection.new(self, extract_selector(args).merge(tag_name: "div"))
1449
+ end
1450
+ Watir.tag_to_class[:div] = Div
1451
+
1452
+ # @return [DList]
1453
+ def dl(*args)
1454
+ DList.new(self, extract_selector(args).merge(tag_name: "dl"))
1455
+ end
1456
+ # @return [DListCollection]
1457
+ def dls(*args)
1458
+ DListCollection.new(self, extract_selector(args).merge(tag_name: "dl"))
1459
+ end
1460
+ Watir.tag_to_class[:dl] = DList
1461
+
1462
+ # @return [HTMLElement]
1463
+ def dt(*args)
1464
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "dt"))
1465
+ end
1466
+ # @return [HTMLElementCollection]
1467
+ def dts(*args)
1468
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "dt"))
1469
+ end
1470
+ Watir.tag_to_class[:dt] = HTMLElement
1471
+
1472
+ # @return [HTMLElement]
1473
+ def em(*args)
1474
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "em"))
1475
+ end
1476
+ # @return [HTMLElementCollection]
1477
+ def ems(*args)
1478
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "em"))
1479
+ end
1480
+ Watir.tag_to_class[:em] = HTMLElement
1481
+
1482
+ # @return [Embed]
1483
+ def embed(*args)
1484
+ Embed.new(self, extract_selector(args).merge(tag_name: "embed"))
1485
+ end
1486
+ # @return [EmbedCollection]
1487
+ def embeds(*args)
1488
+ EmbedCollection.new(self, extract_selector(args).merge(tag_name: "embed"))
1489
+ end
1490
+ Watir.tag_to_class[:embed] = Embed
1491
+
1492
+ # @return [FieldSet]
1493
+ def fieldset(*args)
1494
+ FieldSet.new(self, extract_selector(args).merge(tag_name: "fieldset"))
1495
+ end
1496
+ # @return [FieldSetCollection]
1497
+ def fieldsets(*args)
1498
+ FieldSetCollection.new(self, extract_selector(args).merge(tag_name: "fieldset"))
1499
+ end
1500
+ Watir.tag_to_class[:fieldset] = FieldSet
1501
+
1502
+ # @return [HTMLElement]
1503
+ def figcaption(*args)
1504
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "figcaption"))
1505
+ end
1506
+ # @return [HTMLElementCollection]
1507
+ def figcaptions(*args)
1508
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "figcaption"))
1509
+ end
1510
+ Watir.tag_to_class[:figcaption] = HTMLElement
1511
+
1512
+ # @return [HTMLElement]
1513
+ def figure(*args)
1514
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "figure"))
1515
+ end
1516
+ # @return [HTMLElementCollection]
1517
+ def figures(*args)
1518
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "figure"))
1519
+ end
1520
+ Watir.tag_to_class[:figure] = HTMLElement
1521
+
1522
+ # @return [HTMLElement]
1523
+ def footer(*args)
1524
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "footer"))
1525
+ end
1526
+ # @return [HTMLElementCollection]
1527
+ def footers(*args)
1528
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "footer"))
1529
+ end
1530
+ Watir.tag_to_class[:footer] = HTMLElement
1531
+
1532
+ # @return [Form]
1533
+ def form(*args)
1534
+ Form.new(self, extract_selector(args).merge(tag_name: "form"))
1535
+ end
1536
+ # @return [FormCollection]
1537
+ def forms(*args)
1538
+ FormCollection.new(self, extract_selector(args).merge(tag_name: "form"))
1539
+ end
1540
+ Watir.tag_to_class[:form] = Form
1541
+
1542
+ # @return [FrameSet]
1543
+ def frameset(*args)
1544
+ FrameSet.new(self, extract_selector(args).merge(tag_name: "frameset"))
1545
+ end
1546
+ # @return [FrameSetCollection]
1547
+ def framesets(*args)
1548
+ FrameSetCollection.new(self, extract_selector(args).merge(tag_name: "frameset"))
1549
+ end
1550
+ Watir.tag_to_class[:frameset] = FrameSet
1551
+
1552
+ # @return [Heading]
1553
+ def h1(*args)
1554
+ Heading.new(self, extract_selector(args).merge(tag_name: "h1"))
1555
+ end
1556
+ # @return [HeadingCollection]
1557
+ def h1s(*args)
1558
+ HeadingCollection.new(self, extract_selector(args).merge(tag_name: "h1"))
1559
+ end
1560
+ Watir.tag_to_class[:h1] = Heading
1561
+
1562
+ # @return [Heading]
1563
+ def h2(*args)
1564
+ Heading.new(self, extract_selector(args).merge(tag_name: "h2"))
1565
+ end
1566
+ # @return [HeadingCollection]
1567
+ def h2s(*args)
1568
+ HeadingCollection.new(self, extract_selector(args).merge(tag_name: "h2"))
1569
+ end
1570
+ Watir.tag_to_class[:h2] = Heading
1571
+
1572
+ # @return [Heading]
1573
+ def h3(*args)
1574
+ Heading.new(self, extract_selector(args).merge(tag_name: "h3"))
1575
+ end
1576
+ # @return [HeadingCollection]
1577
+ def h3s(*args)
1578
+ HeadingCollection.new(self, extract_selector(args).merge(tag_name: "h3"))
1579
+ end
1580
+ Watir.tag_to_class[:h3] = Heading
1581
+
1582
+ # @return [Heading]
1583
+ def h4(*args)
1584
+ Heading.new(self, extract_selector(args).merge(tag_name: "h4"))
1585
+ end
1586
+ # @return [HeadingCollection]
1587
+ def h4s(*args)
1588
+ HeadingCollection.new(self, extract_selector(args).merge(tag_name: "h4"))
1589
+ end
1590
+ Watir.tag_to_class[:h4] = Heading
1591
+
1592
+ # @return [Heading]
1593
+ def h5(*args)
1594
+ Heading.new(self, extract_selector(args).merge(tag_name: "h5"))
1595
+ end
1596
+ # @return [HeadingCollection]
1597
+ def h5s(*args)
1598
+ HeadingCollection.new(self, extract_selector(args).merge(tag_name: "h5"))
1599
+ end
1600
+ Watir.tag_to_class[:h5] = Heading
1601
+
1602
+ # @return [Heading]
1603
+ def h6(*args)
1604
+ Heading.new(self, extract_selector(args).merge(tag_name: "h6"))
1605
+ end
1606
+ # @return [HeadingCollection]
1607
+ def h6s(*args)
1608
+ HeadingCollection.new(self, extract_selector(args).merge(tag_name: "h6"))
1609
+ end
1610
+ Watir.tag_to_class[:h6] = Heading
1611
+
1612
+ # @return [Head]
1613
+ def head(*args)
1614
+ Head.new(self, extract_selector(args).merge(tag_name: "head"))
1615
+ end
1616
+ # @return [HeadCollection]
1617
+ def heads(*args)
1618
+ HeadCollection.new(self, extract_selector(args).merge(tag_name: "head"))
1619
+ end
1620
+ Watir.tag_to_class[:head] = Head
1621
+
1622
+ # @return [HTMLElement]
1623
+ def header(*args)
1624
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "header"))
1625
+ end
1626
+ # @return [HTMLElementCollection]
1627
+ def headers(*args)
1628
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "header"))
1629
+ end
1630
+ Watir.tag_to_class[:header] = HTMLElement
1631
+
1632
+ # @return [HTMLElement]
1633
+ def hgroup(*args)
1634
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "hgroup"))
1635
+ end
1636
+ # @return [HTMLElementCollection]
1637
+ def hgroups(*args)
1638
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "hgroup"))
1639
+ end
1640
+ Watir.tag_to_class[:hgroup] = HTMLElement
1641
+
1642
+ # @return [HR]
1643
+ def hr(*args)
1644
+ HR.new(self, extract_selector(args).merge(tag_name: "hr"))
1645
+ end
1646
+ # @return [HRCollection]
1647
+ def hrs(*args)
1648
+ HRCollection.new(self, extract_selector(args).merge(tag_name: "hr"))
1649
+ end
1650
+ Watir.tag_to_class[:hr] = HR
1651
+
1652
+ # @return [Html]
1653
+ def html(*args)
1654
+ Html.new(self, extract_selector(args).merge(tag_name: "html"))
1655
+ end
1656
+ # @return [HtmlCollection]
1657
+ def htmls(*args)
1658
+ HtmlCollection.new(self, extract_selector(args).merge(tag_name: "html"))
1659
+ end
1660
+ Watir.tag_to_class[:html] = Html
1661
+
1662
+ # @return [HTMLElement]
1663
+ def i(*args)
1664
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "i"))
1665
+ end
1666
+ # @return [HTMLElementCollection]
1667
+ def is(*args)
1668
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "i"))
1669
+ end
1670
+ Watir.tag_to_class[:i] = HTMLElement
1671
+
1672
+ # @return [IFrame]
1673
+ def iframe(*args)
1674
+ IFrame.new(self, extract_selector(args).merge(tag_name: "iframe"))
1675
+ end
1676
+ # @return [IFrameCollection]
1677
+ def iframes(*args)
1678
+ IFrameCollection.new(self, extract_selector(args).merge(tag_name: "iframe"))
1679
+ end
1680
+ Watir.tag_to_class[:iframe] = IFrame
1681
+
1682
+ # @return [Image]
1683
+ def img(*args)
1684
+ Image.new(self, extract_selector(args).merge(tag_name: "img"))
1685
+ end
1686
+ # @return [ImageCollection]
1687
+ def imgs(*args)
1688
+ ImageCollection.new(self, extract_selector(args).merge(tag_name: "img"))
1689
+ end
1690
+ Watir.tag_to_class[:img] = Image
1691
+
1692
+ # @return [Input]
1693
+ def input(*args)
1694
+ Input.new(self, extract_selector(args).merge(tag_name: "input"))
1695
+ end
1696
+ # @return [InputCollection]
1697
+ def inputs(*args)
1698
+ InputCollection.new(self, extract_selector(args).merge(tag_name: "input"))
1699
+ end
1700
+ Watir.tag_to_class[:input] = Input
1701
+
1702
+ # @return [Mod]
1703
+ def ins(*args)
1704
+ Mod.new(self, extract_selector(args).merge(tag_name: "ins"))
1705
+ end
1706
+ # @return [ModCollection]
1707
+ def inses(*args)
1708
+ ModCollection.new(self, extract_selector(args).merge(tag_name: "ins"))
1709
+ end
1710
+ Watir.tag_to_class[:ins] = Mod
1711
+
1712
+ # @return [HTMLElement]
1713
+ def kbd(*args)
1714
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "kbd"))
1715
+ end
1716
+ # @return [HTMLElementCollection]
1717
+ def kbds(*args)
1718
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "kbd"))
1719
+ end
1720
+ Watir.tag_to_class[:kbd] = HTMLElement
1721
+
1722
+ # @return [Keygen]
1723
+ def keygen(*args)
1724
+ Keygen.new(self, extract_selector(args).merge(tag_name: "keygen"))
1725
+ end
1726
+ # @return [KeygenCollection]
1727
+ def keygens(*args)
1728
+ KeygenCollection.new(self, extract_selector(args).merge(tag_name: "keygen"))
1729
+ end
1730
+ Watir.tag_to_class[:keygen] = Keygen
1731
+
1732
+ # @return [Label]
1733
+ def label(*args)
1734
+ Label.new(self, extract_selector(args).merge(tag_name: "label"))
1735
+ end
1736
+ # @return [LabelCollection]
1737
+ def labels(*args)
1738
+ LabelCollection.new(self, extract_selector(args).merge(tag_name: "label"))
1739
+ end
1740
+ Watir.tag_to_class[:label] = Label
1741
+
1742
+ # @return [Legend]
1743
+ def legend(*args)
1744
+ Legend.new(self, extract_selector(args).merge(tag_name: "legend"))
1745
+ end
1746
+ # @return [LegendCollection]
1747
+ def legends(*args)
1748
+ LegendCollection.new(self, extract_selector(args).merge(tag_name: "legend"))
1749
+ end
1750
+ Watir.tag_to_class[:legend] = Legend
1751
+
1752
+ # @return [LI]
1753
+ def li(*args)
1754
+ LI.new(self, extract_selector(args).merge(tag_name: "li"))
1755
+ end
1756
+ # @return [LICollection]
1757
+ def lis(*args)
1758
+ LICollection.new(self, extract_selector(args).merge(tag_name: "li"))
1759
+ end
1760
+ Watir.tag_to_class[:li] = LI
1761
+
1762
+ # @return [HTMLElement]
1763
+ def main(*args)
1764
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "main"))
1765
+ end
1766
+ # @return [HTMLElementCollection]
1767
+ def mains(*args)
1768
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "main"))
1769
+ end
1770
+ Watir.tag_to_class[:main] = HTMLElement
1771
+
1772
+ # @return [Map]
1773
+ def map(*args)
1774
+ Map.new(self, extract_selector(args).merge(tag_name: "map"))
1775
+ end
1776
+ # @return [MapCollection]
1777
+ def maps(*args)
1778
+ MapCollection.new(self, extract_selector(args).merge(tag_name: "map"))
1779
+ end
1780
+ Watir.tag_to_class[:map] = Map
1781
+
1782
+ # @return [HTMLElement]
1783
+ def mark(*args)
1784
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "mark"))
1785
+ end
1786
+ # @return [HTMLElementCollection]
1787
+ def marks(*args)
1788
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "mark"))
1789
+ end
1790
+ Watir.tag_to_class[:mark] = HTMLElement
1791
+
1792
+ # @return [Menu]
1793
+ def menu(*args)
1794
+ Menu.new(self, extract_selector(args).merge(tag_name: "menu"))
1795
+ end
1796
+ # @return [MenuCollection]
1797
+ def menus(*args)
1798
+ MenuCollection.new(self, extract_selector(args).merge(tag_name: "menu"))
1799
+ end
1800
+ Watir.tag_to_class[:menu] = Menu
1801
+
1802
+ # @return [MenuItem]
1803
+ def menuitem(*args)
1804
+ MenuItem.new(self, extract_selector(args).merge(tag_name: "menuitem"))
1805
+ end
1806
+ # @return [MenuItemCollection]
1807
+ def menuitems(*args)
1808
+ MenuItemCollection.new(self, extract_selector(args).merge(tag_name: "menuitem"))
1809
+ end
1810
+ Watir.tag_to_class[:menuitem] = MenuItem
1811
+
1812
+ # @return [Meta]
1813
+ def meta(*args)
1814
+ Meta.new(self, extract_selector(args).merge(tag_name: "meta"))
1815
+ end
1816
+ # @return [MetaCollection]
1817
+ def metas(*args)
1818
+ MetaCollection.new(self, extract_selector(args).merge(tag_name: "meta"))
1819
+ end
1820
+ Watir.tag_to_class[:meta] = Meta
1821
+
1822
+ # @return [Meter]
1823
+ def meter(*args)
1824
+ Meter.new(self, extract_selector(args).merge(tag_name: "meter"))
1825
+ end
1826
+ # @return [MeterCollection]
1827
+ def meters(*args)
1828
+ MeterCollection.new(self, extract_selector(args).merge(tag_name: "meter"))
1829
+ end
1830
+ Watir.tag_to_class[:meter] = Meter
1831
+
1832
+ # @return [HTMLElement]
1833
+ def nav(*args)
1834
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "nav"))
1835
+ end
1836
+ # @return [HTMLElementCollection]
1837
+ def navs(*args)
1838
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "nav"))
1839
+ end
1840
+ Watir.tag_to_class[:nav] = HTMLElement
1841
+
1842
+ # @return [HTMLElement]
1843
+ def noscript(*args)
1844
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "noscript"))
1845
+ end
1846
+ # @return [HTMLElementCollection]
1847
+ def noscripts(*args)
1848
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "noscript"))
1849
+ end
1850
+ Watir.tag_to_class[:noscript] = HTMLElement
1851
+
1852
+ # @return [Object]
1853
+ def object(*args)
1854
+ Object.new(self, extract_selector(args).merge(tag_name: "object"))
1855
+ end
1856
+ # @return [ObjectCollection]
1857
+ def objects(*args)
1858
+ ObjectCollection.new(self, extract_selector(args).merge(tag_name: "object"))
1859
+ end
1860
+ Watir.tag_to_class[:object] = Object
1861
+
1862
+ # @return [OList]
1863
+ def ol(*args)
1864
+ OList.new(self, extract_selector(args).merge(tag_name: "ol"))
1865
+ end
1866
+ # @return [OListCollection]
1867
+ def ols(*args)
1868
+ OListCollection.new(self, extract_selector(args).merge(tag_name: "ol"))
1869
+ end
1870
+ Watir.tag_to_class[:ol] = OList
1871
+
1872
+ # @return [OptGroup]
1873
+ def optgroup(*args)
1874
+ OptGroup.new(self, extract_selector(args).merge(tag_name: "optgroup"))
1875
+ end
1876
+ # @return [OptGroupCollection]
1877
+ def optgroups(*args)
1878
+ OptGroupCollection.new(self, extract_selector(args).merge(tag_name: "optgroup"))
1879
+ end
1880
+ Watir.tag_to_class[:optgroup] = OptGroup
1881
+
1882
+ # @return [Option]
1883
+ def option(*args)
1884
+ Option.new(self, extract_selector(args).merge(tag_name: "option"))
1885
+ end
1886
+ # @return [OptionCollection]
1887
+ def options(*args)
1888
+ OptionCollection.new(self, extract_selector(args).merge(tag_name: "option"))
1889
+ end
1890
+ Watir.tag_to_class[:option] = Option
1891
+
1892
+ # @return [Output]
1893
+ def output(*args)
1894
+ Output.new(self, extract_selector(args).merge(tag_name: "output"))
1895
+ end
1896
+ # @return [OutputCollection]
1897
+ def outputs(*args)
1898
+ OutputCollection.new(self, extract_selector(args).merge(tag_name: "output"))
1899
+ end
1900
+ Watir.tag_to_class[:output] = Output
1901
+
1902
+ # @return [Paragraph]
1903
+ def p(*args)
1904
+ Paragraph.new(self, extract_selector(args).merge(tag_name: "p"))
1905
+ end
1906
+ # @return [ParagraphCollection]
1907
+ def ps(*args)
1908
+ ParagraphCollection.new(self, extract_selector(args).merge(tag_name: "p"))
1909
+ end
1910
+ Watir.tag_to_class[:p] = Paragraph
1911
+
1912
+ # @return [Param]
1913
+ def param(*args)
1914
+ Param.new(self, extract_selector(args).merge(tag_name: "param"))
1915
+ end
1916
+ # @return [ParamCollection]
1917
+ def params(*args)
1918
+ ParamCollection.new(self, extract_selector(args).merge(tag_name: "param"))
1919
+ end
1920
+ Watir.tag_to_class[:param] = Param
1921
+
1922
+ # @return [Pre]
1923
+ def pre(*args)
1924
+ Pre.new(self, extract_selector(args).merge(tag_name: "pre"))
1925
+ end
1926
+ # @return [PreCollection]
1927
+ def pres(*args)
1928
+ PreCollection.new(self, extract_selector(args).merge(tag_name: "pre"))
1929
+ end
1930
+ Watir.tag_to_class[:pre] = Pre
1931
+
1932
+ # @return [Progress]
1933
+ def progress(*args)
1934
+ Progress.new(self, extract_selector(args).merge(tag_name: "progress"))
1935
+ end
1936
+ # @return [ProgressCollection]
1937
+ def progresses(*args)
1938
+ ProgressCollection.new(self, extract_selector(args).merge(tag_name: "progress"))
1939
+ end
1940
+ Watir.tag_to_class[:progress] = Progress
1941
+
1942
+ # @return [Quote]
1943
+ def q(*args)
1944
+ Quote.new(self, extract_selector(args).merge(tag_name: "q"))
1945
+ end
1946
+ # @return [QuoteCollection]
1947
+ def qs(*args)
1948
+ QuoteCollection.new(self, extract_selector(args).merge(tag_name: "q"))
1949
+ end
1950
+ Watir.tag_to_class[:q] = Quote
1951
+
1952
+ # @return [HTMLElement]
1953
+ def rp(*args)
1954
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "rp"))
1955
+ end
1956
+ # @return [HTMLElementCollection]
1957
+ def rps(*args)
1958
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "rp"))
1959
+ end
1960
+ Watir.tag_to_class[:rp] = HTMLElement
1961
+
1962
+ # @return [HTMLElement]
1963
+ def rt(*args)
1964
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "rt"))
1965
+ end
1966
+ # @return [HTMLElementCollection]
1967
+ def rts(*args)
1968
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "rt"))
1969
+ end
1970
+ Watir.tag_to_class[:rt] = HTMLElement
1971
+
1972
+ # @return [HTMLElement]
1973
+ def ruby(*args)
1974
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "ruby"))
1975
+ end
1976
+ # @return [HTMLElementCollection]
1977
+ def rubies(*args)
1978
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "ruby"))
1979
+ end
1980
+ Watir.tag_to_class[:ruby] = HTMLElement
1981
+
1982
+ # @return [HTMLElement]
1983
+ def s(*args)
1984
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "s"))
1985
+ end
1986
+ # @return [HTMLElementCollection]
1987
+ def ss(*args)
1988
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "s"))
1989
+ end
1990
+ Watir.tag_to_class[:s] = HTMLElement
1991
+
1992
+ # @return [HTMLElement]
1993
+ def samp(*args)
1994
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "samp"))
1995
+ end
1996
+ # @return [HTMLElementCollection]
1997
+ def samps(*args)
1998
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "samp"))
1999
+ end
2000
+ Watir.tag_to_class[:samp] = HTMLElement
2001
+
2002
+ # @return [Script]
2003
+ def script(*args)
2004
+ Script.new(self, extract_selector(args).merge(tag_name: "script"))
2005
+ end
2006
+ # @return [ScriptCollection]
2007
+ def scripts(*args)
2008
+ ScriptCollection.new(self, extract_selector(args).merge(tag_name: "script"))
2009
+ end
2010
+ Watir.tag_to_class[:script] = Script
2011
+
2012
+ # @return [HTMLElement]
2013
+ def section(*args)
2014
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "section"))
2015
+ end
2016
+ # @return [HTMLElementCollection]
2017
+ def sections(*args)
2018
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "section"))
2019
+ end
2020
+ Watir.tag_to_class[:section] = HTMLElement
2021
+
2022
+ # @return [Select]
2023
+ def select(*args)
2024
+ Select.new(self, extract_selector(args).merge(tag_name: "select"))
2025
+ end
2026
+ # @return [SelectCollection]
2027
+ def selects(*args)
2028
+ SelectCollection.new(self, extract_selector(args).merge(tag_name: "select"))
2029
+ end
2030
+ Watir.tag_to_class[:select] = Select
2031
+
2032
+ # @return [HTMLElement]
2033
+ def small(*args)
2034
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "small"))
2035
+ end
2036
+ # @return [HTMLElementCollection]
2037
+ def smalls(*args)
2038
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "small"))
2039
+ end
2040
+ Watir.tag_to_class[:small] = HTMLElement
2041
+
2042
+ # @return [Source]
2043
+ def source(*args)
2044
+ Source.new(self, extract_selector(args).merge(tag_name: "source"))
2045
+ end
2046
+ # @return [SourceCollection]
2047
+ def sources(*args)
2048
+ SourceCollection.new(self, extract_selector(args).merge(tag_name: "source"))
2049
+ end
2050
+ Watir.tag_to_class[:source] = Source
2051
+
2052
+ # @return [Span]
2053
+ def span(*args)
2054
+ Span.new(self, extract_selector(args).merge(tag_name: "span"))
2055
+ end
2056
+ # @return [SpanCollection]
2057
+ def spans(*args)
2058
+ SpanCollection.new(self, extract_selector(args).merge(tag_name: "span"))
2059
+ end
2060
+ Watir.tag_to_class[:span] = Span
2061
+
2062
+ # @return [HTMLElement]
2063
+ def strong(*args)
2064
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "strong"))
2065
+ end
2066
+ # @return [HTMLElementCollection]
2067
+ def strongs(*args)
2068
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "strong"))
2069
+ end
2070
+ Watir.tag_to_class[:strong] = HTMLElement
2071
+
2072
+ # @return [Style]
2073
+ def style(*args)
2074
+ Style.new(self, extract_selector(args).merge(tag_name: "style"))
2075
+ end
2076
+ # @return [StyleCollection]
2077
+ def styles(*args)
2078
+ StyleCollection.new(self, extract_selector(args).merge(tag_name: "style"))
2079
+ end
2080
+ Watir.tag_to_class[:style] = Style
2081
+
2082
+ # @return [HTMLElement]
2083
+ def sub(*args)
2084
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "sub"))
2085
+ end
2086
+ # @return [HTMLElementCollection]
2087
+ def subs(*args)
2088
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "sub"))
2089
+ end
2090
+ Watir.tag_to_class[:sub] = HTMLElement
2091
+
2092
+ # @return [HTMLElement]
2093
+ def summary(*args)
2094
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "summary"))
2095
+ end
2096
+ # @return [HTMLElementCollection]
2097
+ def summaries(*args)
2098
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "summary"))
2099
+ end
2100
+ Watir.tag_to_class[:summary] = HTMLElement
2101
+
2102
+ # @return [HTMLElement]
2103
+ def sup(*args)
2104
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "sup"))
2105
+ end
2106
+ # @return [HTMLElementCollection]
2107
+ def sups(*args)
2108
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "sup"))
2109
+ end
2110
+ Watir.tag_to_class[:sup] = HTMLElement
2111
+
2112
+ # @return [Table]
2113
+ def table(*args)
2114
+ Table.new(self, extract_selector(args).merge(tag_name: "table"))
2115
+ end
2116
+ # @return [TableCollection]
2117
+ def tables(*args)
2118
+ TableCollection.new(self, extract_selector(args).merge(tag_name: "table"))
2119
+ end
2120
+ Watir.tag_to_class[:table] = Table
2121
+
2122
+ # @return [TableSection]
2123
+ def tbody(*args)
2124
+ TableSection.new(self, extract_selector(args).merge(tag_name: "tbody"))
2125
+ end
2126
+ # @return [TableSectionCollection]
2127
+ def tbodys(*args)
2128
+ TableSectionCollection.new(self, extract_selector(args).merge(tag_name: "tbody"))
2129
+ end
2130
+ Watir.tag_to_class[:tbody] = TableSection
2131
+
2132
+ # @return [TableDataCell]
2133
+ def td(*args)
2134
+ TableDataCell.new(self, extract_selector(args).merge(tag_name: "td"))
2135
+ end
2136
+ # @return [TableDataCellCollection]
2137
+ def tds(*args)
2138
+ TableDataCellCollection.new(self, extract_selector(args).merge(tag_name: "td"))
2139
+ end
2140
+ Watir.tag_to_class[:td] = TableDataCell
2141
+
2142
+ # @return [Template]
2143
+ def template(*args)
2144
+ Template.new(self, extract_selector(args).merge(tag_name: "template"))
2145
+ end
2146
+ # @return [TemplateCollection]
2147
+ def templates(*args)
2148
+ TemplateCollection.new(self, extract_selector(args).merge(tag_name: "template"))
2149
+ end
2150
+ Watir.tag_to_class[:template] = Template
2151
+
2152
+ # @return [TextArea]
2153
+ def textarea(*args)
2154
+ TextArea.new(self, extract_selector(args).merge(tag_name: "textarea"))
2155
+ end
2156
+ # @return [TextAreaCollection]
2157
+ def textareas(*args)
2158
+ TextAreaCollection.new(self, extract_selector(args).merge(tag_name: "textarea"))
2159
+ end
2160
+ Watir.tag_to_class[:textarea] = TextArea
2161
+
2162
+ # @return [TableSection]
2163
+ def tfoot(*args)
2164
+ TableSection.new(self, extract_selector(args).merge(tag_name: "tfoot"))
2165
+ end
2166
+ # @return [TableSectionCollection]
2167
+ def tfoots(*args)
2168
+ TableSectionCollection.new(self, extract_selector(args).merge(tag_name: "tfoot"))
2169
+ end
2170
+ Watir.tag_to_class[:tfoot] = TableSection
2171
+
2172
+ # @return [TableHeaderCell]
2173
+ def th(*args)
2174
+ TableHeaderCell.new(self, extract_selector(args).merge(tag_name: "th"))
2175
+ end
2176
+ # @return [TableHeaderCellCollection]
2177
+ def ths(*args)
2178
+ TableHeaderCellCollection.new(self, extract_selector(args).merge(tag_name: "th"))
2179
+ end
2180
+ Watir.tag_to_class[:th] = TableHeaderCell
2181
+
2182
+ # @return [TableSection]
2183
+ def thead(*args)
2184
+ TableSection.new(self, extract_selector(args).merge(tag_name: "thead"))
2185
+ end
2186
+ # @return [TableSectionCollection]
2187
+ def theads(*args)
2188
+ TableSectionCollection.new(self, extract_selector(args).merge(tag_name: "thead"))
2189
+ end
2190
+ Watir.tag_to_class[:thead] = TableSection
2191
+
2192
+ # @return [Time]
2193
+ def time(*args)
2194
+ Time.new(self, extract_selector(args).merge(tag_name: "time"))
2195
+ end
2196
+ # @return [TimeCollection]
2197
+ def times(*args)
2198
+ TimeCollection.new(self, extract_selector(args).merge(tag_name: "time"))
2199
+ end
2200
+ Watir.tag_to_class[:time] = Time
2201
+
2202
+ # @return [Title]
2203
+ def title(*args)
2204
+ Title.new(self, extract_selector(args).merge(tag_name: "title"))
2205
+ end
2206
+ # @return [TitleCollection]
2207
+ def titles(*args)
2208
+ TitleCollection.new(self, extract_selector(args).merge(tag_name: "title"))
2209
+ end
2210
+ Watir.tag_to_class[:title] = Title
2211
+
2212
+ # @return [TableRow]
2213
+ def tr(*args)
2214
+ TableRow.new(self, extract_selector(args).merge(tag_name: "tr"))
2215
+ end
2216
+ # @return [TableRowCollection]
2217
+ def trs(*args)
2218
+ TableRowCollection.new(self, extract_selector(args).merge(tag_name: "tr"))
2219
+ end
2220
+ Watir.tag_to_class[:tr] = TableRow
2221
+
2222
+ # @return [Track]
2223
+ def track(*args)
2224
+ Track.new(self, extract_selector(args).merge(tag_name: "track"))
2225
+ end
2226
+ # @return [TrackCollection]
2227
+ def tracks(*args)
2228
+ TrackCollection.new(self, extract_selector(args).merge(tag_name: "track"))
2229
+ end
2230
+ Watir.tag_to_class[:track] = Track
2231
+
2232
+ # @return [HTMLElement]
2233
+ def u(*args)
2234
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "u"))
2235
+ end
2236
+ # @return [HTMLElementCollection]
2237
+ def us(*args)
2238
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "u"))
2239
+ end
2240
+ Watir.tag_to_class[:u] = HTMLElement
2241
+
2242
+ # @return [UList]
2243
+ def ul(*args)
2244
+ UList.new(self, extract_selector(args).merge(tag_name: "ul"))
2245
+ end
2246
+ # @return [UListCollection]
2247
+ def uls(*args)
2248
+ UListCollection.new(self, extract_selector(args).merge(tag_name: "ul"))
2249
+ end
2250
+ Watir.tag_to_class[:ul] = UList
2251
+
2252
+ # @return [HTMLElement]
2253
+ def var(*args)
2254
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "var"))
2255
+ end
2256
+ # @return [HTMLElementCollection]
2257
+ def vars(*args)
2258
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "var"))
2259
+ end
2260
+ Watir.tag_to_class[:var] = HTMLElement
2261
+
2262
+ # @return [Video]
2263
+ def video(*args)
2264
+ Video.new(self, extract_selector(args).merge(tag_name: "video"))
2265
+ end
2266
+ # @return [VideoCollection]
2267
+ def videos(*args)
2268
+ VideoCollection.new(self, extract_selector(args).merge(tag_name: "video"))
2269
+ end
2270
+ Watir.tag_to_class[:video] = Video
2271
+
2272
+ # @return [HTMLElement]
2273
+ def wbr(*args)
2274
+ HTMLElement.new(self, extract_selector(args).merge(tag_name: "wbr"))
2275
+ end
2276
+ # @return [HTMLElementCollection]
2277
+ def wbrs(*args)
2278
+ HTMLElementCollection.new(self, extract_selector(args).merge(tag_name: "wbr"))
2279
+ end
2280
+ Watir.tag_to_class[:wbr] = HTMLElement
2281
+ end # Container
2282
+ end # Watir