watir-webdriver 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (129) hide show
  1. data/Rakefile +53 -31
  2. data/VERSION +1 -1
  3. data/lib/watir-webdriver.rb +6 -8
  4. data/lib/watir-webdriver/attribute_helper.rb +121 -0
  5. data/lib/watir-webdriver/browser.rb +13 -6
  6. data/lib/watir-webdriver/collections/element_collection.rb +21 -15
  7. data/lib/watir-webdriver/collections/table_row_collection.rb +11 -0
  8. data/lib/watir-webdriver/container.rb +17 -11
  9. data/lib/watir-webdriver/element.rb +201 -0
  10. data/lib/watir-webdriver/elements/button.rb +19 -2
  11. data/lib/watir-webdriver/elements/checkbox.rb +24 -4
  12. data/lib/watir-webdriver/elements/file_field.rb +24 -4
  13. data/lib/watir-webdriver/elements/font.rb +10 -11
  14. data/lib/watir-webdriver/elements/frame.rb +11 -3
  15. data/lib/watir-webdriver/elements/generated.rb +2491 -1313
  16. data/lib/watir-webdriver/elements/hidden.rb +16 -5
  17. data/lib/watir-webdriver/elements/input.rb +44 -5
  18. data/lib/watir-webdriver/elements/link.rb +6 -8
  19. data/lib/watir-webdriver/elements/radio.rb +25 -6
  20. data/lib/watir-webdriver/elements/{select_list.rb → select.rb} +8 -9
  21. data/lib/watir-webdriver/elements/text_field.rb +32 -3
  22. data/lib/watir-webdriver/html.rb +18 -0
  23. data/lib/watir-webdriver/html/generator.rb +112 -0
  24. data/lib/watir-webdriver/html/idl_sorter.rb +49 -0
  25. data/lib/watir-webdriver/html/spec_extractor.rb +111 -0
  26. data/lib/watir-webdriver/html/util.rb +31 -0
  27. data/lib/watir-webdriver/html/visitor.rb +186 -0
  28. data/lib/watir-webdriver/locators/element_locator.rb +4 -0
  29. data/lib/watir-webdriver/locators/text_field_locator.rb +2 -2
  30. data/lib/watir-webdriver/xpath_support.rb +3 -5
  31. data/lib/yard/handlers/watir.rb +57 -0
  32. data/spec/{base_element_spec.rb → element_spec.rb} +3 -2
  33. data/spec/input_spec.rb +65 -0
  34. data/spec/spec_helper.rb +9 -2
  35. data/spec/watirspec/area_spec.rb +9 -13
  36. data/spec/watirspec/areas_spec.rb +7 -1
  37. data/spec/watirspec/browser_spec.rb +68 -72
  38. data/spec/watirspec/button_spec.rb +16 -9
  39. data/spec/watirspec/buttons_spec.rb +11 -9
  40. data/spec/watirspec/checkbox_spec.rb +1 -1
  41. data/spec/watirspec/checkboxes_spec.rb +7 -1
  42. data/spec/watirspec/collections_spec.rb +18 -0
  43. data/spec/watirspec/dd_spec.rb +1 -1
  44. data/spec/watirspec/dds_spec.rb +7 -1
  45. data/spec/watirspec/del_spec.rb +141 -0
  46. data/spec/watirspec/dels_spec.rb +37 -0
  47. data/spec/watirspec/div_spec.rb +6 -22
  48. data/spec/watirspec/divs_spec.rb +8 -2
  49. data/spec/watirspec/dl_spec.rb +1 -1
  50. data/spec/watirspec/dls_spec.rb +7 -1
  51. data/spec/watirspec/dt_spec.rb +1 -1
  52. data/spec/watirspec/dts_spec.rb +7 -1
  53. data/spec/watirspec/element_spec.rb +11 -20
  54. data/spec/watirspec/em_spec.rb +1 -1
  55. data/spec/watirspec/ems_spec.rb +7 -1
  56. data/spec/watirspec/filefield_spec.rb +8 -11
  57. data/spec/watirspec/filefields_spec.rb +7 -1
  58. data/spec/watirspec/font_spec.rb +2 -2
  59. data/spec/watirspec/form_spec.rb +10 -18
  60. data/spec/watirspec/forms_spec.rb +7 -1
  61. data/spec/watirspec/frame_spec.rb +69 -73
  62. data/spec/watirspec/frames_spec.rb +15 -2
  63. data/spec/watirspec/hidden_spec.rb +1 -1
  64. data/spec/watirspec/hiddens_spec.rb +7 -1
  65. data/spec/watirspec/hn_spec.rb +1 -1
  66. data/spec/watirspec/hns_spec.rb +23 -27
  67. data/spec/watirspec/image_spec.rb +9 -15
  68. data/spec/watirspec/images_spec.rb +7 -1
  69. data/spec/watirspec/ins_spec.rb +142 -0
  70. data/spec/watirspec/inses_spec.rb +37 -0
  71. data/spec/watirspec/label_spec.rb +1 -1
  72. data/spec/watirspec/labels_spec.rb +7 -1
  73. data/spec/watirspec/li_spec.rb +1 -1
  74. data/spec/watirspec/lib/guards.rb +12 -12
  75. data/spec/watirspec/lib/implementation.rb +48 -0
  76. data/spec/watirspec/lib/watirspec.rb +17 -12
  77. data/spec/watirspec/link_spec.rb +6 -11
  78. data/spec/watirspec/links_spec.rb +1 -1
  79. data/spec/watirspec/lis_spec.rb +7 -1
  80. data/spec/watirspec/map_spec.rb +1 -1
  81. data/spec/watirspec/maps_spec.rb +7 -1
  82. data/spec/watirspec/meta_spec.rb +13 -15
  83. data/spec/watirspec/metas_spec.rb +6 -1
  84. data/spec/watirspec/ol_spec.rb +57 -59
  85. data/spec/watirspec/ols_spec.rb +10 -4
  86. data/spec/watirspec/option_spec.rb +50 -83
  87. data/spec/watirspec/p_spec.rb +1 -1
  88. data/spec/watirspec/pre_spec.rb +1 -1
  89. data/spec/watirspec/pres_spec.rb +7 -1
  90. data/spec/watirspec/ps_spec.rb +7 -1
  91. data/spec/watirspec/radio_spec.rb +9 -11
  92. data/spec/watirspec/radios_spec.rb +1 -1
  93. data/spec/watirspec/select_list_spec.rb +27 -40
  94. data/spec/watirspec/select_lists_spec.rb +1 -1
  95. data/spec/watirspec/span_spec.rb +1 -1
  96. data/spec/watirspec/spans_spec.rb +7 -1
  97. data/spec/watirspec/spec_helper.rb +1 -0
  98. data/spec/watirspec/strong_spec.rb +1 -1
  99. data/spec/watirspec/strongs_spec.rb +7 -1
  100. data/spec/watirspec/table_bodies_spec.rb +22 -10
  101. data/spec/watirspec/table_body_spec.rb +33 -40
  102. data/spec/watirspec/table_cell_spec.rb +1 -1
  103. data/spec/watirspec/table_cells_spec.rb +36 -15
  104. data/spec/watirspec/table_footer_spec.rb +43 -40
  105. data/spec/watirspec/table_footers_spec.rb +35 -19
  106. data/spec/watirspec/table_header_spec.rb +44 -39
  107. data/spec/watirspec/table_headers_spec.rb +37 -19
  108. data/spec/watirspec/table_row_spec.rb +13 -9
  109. data/spec/watirspec/table_rows_spec.rb +16 -6
  110. data/spec/watirspec/table_spec.rb +83 -62
  111. data/spec/watirspec/tables_spec.rb +7 -1
  112. data/spec/watirspec/text_field_spec.rb +4 -6
  113. data/spec/watirspec/text_fields_spec.rb +1 -1
  114. data/spec/watirspec/ul_spec.rb +1 -1
  115. data/spec/watirspec/uls_spec.rb +25 -22
  116. data/support/html5.html +89235 -0
  117. data/watir-webdriver.gemspec +31 -21
  118. metadata +52 -23
  119. data/TODO +0 -15
  120. data/lib/watir-webdriver/base_element.rb +0 -361
  121. data/lib/watir-webdriver/collections/buttons_collection.rb +0 -15
  122. data/lib/watir-webdriver/collections/table_rows_collection.rb +0 -16
  123. data/lib/watir-webdriver/collections/text_fields_collection.rb +0 -15
  124. data/lib/watir-webdriver/elements/headings.rb +0 -48
  125. data/support/html5/html5.idl +0 -1274
  126. data/support/html5/old/html5.idl +0 -962
  127. data/support/html5/old/html5_extras.idl +0 -145
  128. data/support/html5/watir_visitor.rb +0 -173
  129. data/support/yard_handlers.rb +0 -87
@@ -1,17 +1,6 @@
1
1
  # encoding: utf-8
2
2
  module Watir
3
3
  module Container
4
- class << self
5
-
6
- #
7
- # @api private
8
- #
9
-
10
- def add(method, &blk)
11
- define_method(method, &blk)
12
- end
13
- end
14
-
15
4
  include XpathSupport
16
5
 
17
6
  private
@@ -25,5 +14,22 @@ module Watir
25
14
  @browserbot_script ||= File.read("#{File.dirname(__FILE__)}/browserbot.js")
26
15
  end
27
16
 
17
+ def extract_selector(selectors)
18
+ case selectors.size
19
+ when 2
20
+ { selectors[0] => selectors[1] }
21
+ when 1
22
+ unless selectors.first.kind_of? Hash
23
+ raise ArgumentError, "expected Hash or (:how, 'what')"
24
+ end
25
+
26
+ selectors.first
27
+ when 0
28
+ {}
29
+ else
30
+ raise ArgumentError, selectors.inspect
31
+ end
32
+ end
33
+
28
34
  end # Container
29
35
  end # Watir
@@ -0,0 +1,201 @@
1
+ # encoding: utf-8
2
+
3
+ module Watir
4
+ class Element
5
+ include Exception
6
+ include Container
7
+ include Selenium
8
+ extend AttributeHelper
9
+
10
+ def initialize(parent, selector)
11
+ @parent = parent
12
+ @selector = selector
13
+
14
+ unless @selector.kind_of? Hash
15
+ raise ArgumentError, "invalid argument: #{selector.inspect}"
16
+ end
17
+
18
+ if @selector.has_key?(:element)
19
+ @element = @selector[:element]
20
+ end
21
+ end
22
+
23
+ def exists?
24
+ assert_exists
25
+ true
26
+ rescue UnknownObjectException, UnknownFrameException
27
+ false
28
+ end
29
+ alias_method :exist?, :exists?
30
+
31
+ def inspect
32
+ if @selector.has_key?(:element)
33
+ '#<%s:0x%x located=%s selector=%s>' % [self.class, hash*2, !!@element, '{:element=>(webdriver element)}']
34
+ else
35
+ '#<%s:0x%x located=%s selector=%s>' % [self.class, hash*2, !!@element, selector_string]
36
+ end
37
+ end
38
+
39
+ def text
40
+ assert_exists
41
+ @element.text
42
+ end
43
+
44
+ def tag_name
45
+ assert_exists
46
+ @element.tag_name
47
+ end
48
+
49
+ def click
50
+ assert_exists
51
+ assert_enabled
52
+ @element.click
53
+ run_checkers
54
+ end
55
+
56
+ def double_click
57
+ assert_exists
58
+ raise NotImplementedError, "need support in WebDriver"
59
+
60
+ @element.double_click
61
+ run_checkers
62
+ end
63
+
64
+ def right_click
65
+ assert_exists
66
+ raise NotImplementedError, "need support in WebDriver"
67
+
68
+ @element.right_click
69
+ run_checkers
70
+ end
71
+
72
+ def flash
73
+ assert_exists
74
+ original_color = driver.execute_script("arguments[0].style.backgroundColor", @element)
75
+ 10.times do |n|
76
+ color = (n % 2 == 0) ? "red" : original_color
77
+ driver.execute_script("arguments[0].style.backgroundColor = '#{color}'", @element)
78
+ end
79
+ end
80
+
81
+ def value
82
+ assert_exists
83
+
84
+ begin
85
+ @element.value
86
+ rescue WebDriver::Error::ElementNotEnabledError
87
+ ""
88
+ end
89
+ end
90
+
91
+ def attribute_value(attribute_name)
92
+ assert_exists
93
+ @element.attribute attribute_name
94
+ end
95
+
96
+ def html
97
+ assert_exists
98
+ browserbot('getOuterHTML', @element).strip
99
+ end
100
+
101
+ def send_keys(*args)
102
+ assert_exists
103
+ @element.send_keys(*args)
104
+ end
105
+
106
+ #
107
+ # Note: Firefox queues focus events until the window actually has focus.
108
+ #
109
+ # See http://code.google.com/p/selenium/issues/detail?id=157
110
+ #
111
+
112
+ def focus
113
+ assert_exists
114
+ driver.execute_script "return arguments[0].focus()", @element
115
+ end
116
+
117
+ def fire_event(event_name, bubble = false)
118
+ assert_exists
119
+ event_name = event_name.to_s.sub(/^on/, '')
120
+ browserbot('triggerEvent', @element, event_name, bubble)
121
+ end
122
+
123
+ def parent
124
+ assert_exists
125
+
126
+ e = driver.execute_script "return arguments[0].parentNode", @element
127
+
128
+ if e.kind_of?(WebDriver::Element)
129
+ Watir.element_class_for(e.tag_name).new(@parent, :element => e)
130
+ end
131
+ end
132
+
133
+ def driver
134
+ @parent.driver
135
+ end
136
+
137
+ def element
138
+ assert_exists
139
+ @element
140
+ end
141
+ alias_method :wd, :element # ensures duck typing with Browser
142
+
143
+ def visible?
144
+ assert_exists
145
+ @element.displayed?
146
+ end
147
+
148
+ def style(property = nil)
149
+ if property
150
+ assert_exists
151
+ @element.style property
152
+ else
153
+ attribute_value "style" || ''
154
+ end
155
+ end
156
+
157
+ def run_checkers
158
+ @parent.run_checkers
159
+ end
160
+
161
+ protected
162
+
163
+ def assert_exists
164
+ @element ||= locate
165
+
166
+ unless @element
167
+ raise UnknownObjectException, "unable to locate element, using #{selector_string}"
168
+ end
169
+ end
170
+
171
+ def browser
172
+ @parent.browser
173
+ end
174
+
175
+ def locate
176
+ @parent.assert_exists
177
+ ElementLocator.new(@parent.wd, @selector, self.class.attribute_list).locate
178
+ end
179
+
180
+ private
181
+
182
+ def selector_string
183
+ @selector.inspect
184
+ end
185
+
186
+ def attribute?(attribute)
187
+ assert_exists
188
+ driver.execute_script "return !!arguments[0].getAttributeNode(arguments[1]);", @element, attribute.to_s.downcase
189
+ end
190
+
191
+ def assert_enabled
192
+ raise ObjectDisabledException, "object is disabled #{selector_string}" unless @element.enabled?
193
+ end
194
+
195
+ def assert_writable
196
+ assert_enabled
197
+ raise ObjectReadOnlyException if respond_to?(:readonly?) && readonly?
198
+ end
199
+
200
+ end # Element
201
+ end # Watir
@@ -12,6 +12,15 @@ module Watir
12
12
  # add the attributes from <input>
13
13
  attributes Watir::Input.typed_attributes
14
14
 
15
+
16
+ def self.from(parent, element)
17
+ if element.tag_name == "button" ||
18
+ element.tag_name == "input" && %w[submit reset image button].include?(element.attribute(:type))
19
+ Button.new(parent, :element => element)
20
+ else
21
+ raise TypeError, "expected button or input[@type=submit|reset|image|button] for #{element.inspect}"
22
+ end
23
+ end
15
24
  #
16
25
  # Returns the text of the button.
17
26
  #
@@ -48,5 +57,13 @@ module Watir
48
57
  ButtonLocator.new(@parent.wd, @selector, self.class.attribute_list).locate
49
58
  end
50
59
 
51
- end
52
- end
60
+ end # Button
61
+
62
+ class ButtonCollection < ElementCollection
63
+ private
64
+
65
+ def locator_class
66
+ ButtonLocator
67
+ end
68
+ end # ButtonsCollection
69
+ end # Watir
@@ -1,10 +1,14 @@
1
1
  # encoding: utf-8
2
2
  module Watir
3
3
  class CheckBox < Input
4
- identifier :type => 'checkbox'
5
4
 
6
- container_method :checkbox
7
- collection_method :checkboxes
5
+ def self.from(parent, element)
6
+ if element.attribute(:type) != "checkbox"
7
+ raise TypeError, "expected type=checkbox for #{element.inspect}"
8
+ end
9
+
10
+ super
11
+ end
8
12
 
9
13
  #
10
14
  # Set this checkbox to the given value
@@ -48,6 +52,22 @@ module Watir
48
52
  def clear
49
53
  set false
50
54
  end
55
+ end # CheckBox
51
56
 
52
- end
57
+
58
+ module Container
59
+ def checkbox(*args)
60
+ CheckBox.new(self, extract_selector(args).merge(:tag_name => "input", :type => "checkbox"))
61
+ end
62
+
63
+ def checkboxes(*args)
64
+ CheckBoxCollection.new(self, extract_selector(args).merge(:tag_name => "input", :type => "checkbox"))
65
+ end
66
+ end # Container
67
+
68
+ class CheckBoxCollection < InputCollection
69
+ def element_name
70
+ CheckBox
71
+ end
72
+ end # CheckBoxCollection
53
73
  end
@@ -1,10 +1,13 @@
1
1
  # encoding: utf-8
2
2
  module Watir
3
3
  class FileField < Input
4
- identifier :type => 'file'
4
+ def self.from(parent, element)
5
+ if element.attribute(:type) != "file"
6
+ raise TypeError, "expected type=file for #{element.inspect}"
7
+ end
5
8
 
6
- container_method :file_field
7
- collection_method :file_fields
9
+ super
10
+ end
8
11
 
9
12
  #
10
13
  # Set the file field to the given path
@@ -14,6 +17,7 @@ module Watir
14
17
 
15
18
  def set(value)
16
19
  assert_exists
20
+ value.gsub!(File::SEPARATOR, File::ALT_SEPARATOR) if File::ALT_SEPARATOR
17
21
  @element.send_keys value
18
22
  end
19
23
 
@@ -29,4 +33,20 @@ module Watir
29
33
  @element.value
30
34
  end
31
35
  end
32
- end
36
+
37
+ module Container
38
+ def file_field(*args)
39
+ FileField.new(self, extract_selector(args).merge(:tag_name => "input", :type => "file"))
40
+ end
41
+
42
+ def file_fields(*args)
43
+ FileFieldCollection.new(self, extract_selector(args).merge(:tag_name => "input", :type => "file"))
44
+ end
45
+ end # Container
46
+
47
+ class FileFieldCollection < InputCollection
48
+ def element_class
49
+ FileField
50
+ end
51
+ end # FileFieldCollection
52
+ end # Watir
@@ -1,12 +1,11 @@
1
- # encoding: utf-8
2
-
3
1
  module Watir
4
- class Font < HTMLElement
5
- identifier :tag_name => 'font'
6
- container_method :font
7
- collection_method :fonts
8
-
9
- attributes :string => [:color, :face], :int => [:size]
10
- end
11
- end
12
-
2
+ module Container
3
+ def font(*args)
4
+ Font.new(self, extract_selector(args).merge(:tag_name => "font"))
5
+ end
6
+
7
+ def fonts(*args)
8
+ FontCollection.new(self, extract_selector(args).merge(:tag_name => "font"))
9
+ end
10
+ end # Container
11
+ end # Watir
@@ -24,7 +24,6 @@ module Watir
24
24
  end
25
25
 
26
26
  def assert_exists
27
- @parent.assert_exists
28
27
  # we always run locate(), to make sure the frame is switched
29
28
  @element = locate
30
29
  end
@@ -47,7 +46,7 @@ module Watir
47
46
 
48
47
  def locate_iframe
49
48
  # hack - frame doesn't have IFrame's attributes either
50
- @iframe = IFrame.new(@parent, @selector).locate
49
+ @iframe = IFrame.new(@parent, @selector.merge(:tag_name => "iframe")).locate
51
50
 
52
51
  if @iframe
53
52
  switch_to_iframe @iframe
@@ -97,6 +96,15 @@ module Watir
97
96
 
98
97
  driver.switch_to.frame loc
99
98
  end
100
-
101
99
  end # Frame
100
+
101
+ module Container
102
+ def frame(*args)
103
+ Frame.new(self, extract_selector(args))
104
+ end
105
+
106
+ def frames(*args)
107
+ FrameCollection.new(self, extract_selector(args))
108
+ end
109
+ end
102
110
  end # Watir
@@ -1,1346 +1,2524 @@
1
1
  # Autogenerated from the HTML5 specification. Edits may be lost.
2
2
  module Watir
3
- class HTMLElement < BaseElement
4
- attributes(:token_list => ([:class_list]), :string => ([:innerhtml, :outerhtml, :id, :title, :lang, :dir, :class_name, :access_key, :access_key_label, :content_editable, :spellcheck, :command_type, :label, :icon]), :string_map => ([:dataset]), :style => ([:style]), :html_element => ([:context_menu]), :bool => ([:hidden, :draggable, :is_content_editable, :disabled, :checked]), :function => ([:onabort, :onblur, :oncanplay, :oncanplaythrough, :onchange, :onclick, :oncontextmenu, :ondblclick, :ondrag, :ondragend, :ondragenter, :ondragleave, :ondragover, :ondragstart, :ondrop, :ondurationchange, :onemptied, :onended, :onerror, :onfocus, :onformchange, :onforminput, :oninput, :oninvalid, :onkeydown, :onkeypress, :onkeyup, :onload, :onloadeddata, :onloadedmetadata, :onloadstart, :onmousedown, :onmousemove, :onmouseout, :onmouseover, :onmouseup, :onmousewheel, :onpause, :onplay, :onplaying, :onprogress, :onratechange, :onreadystatechange, :onscroll, :onseeked, :onseeking, :onselect, :onshow, :onstalled, :onsubmit, :onsuspend, :ontimeupdate, :onvolumechange, :onwaiting]), :int => ([:tab_index]))
5
- end
6
3
 
7
- class Html < HTMLElement
8
- identifier(:tag_name => "html")
9
4
 
10
- container_method(:html)
11
5
 
12
- collection_method(:htmls)
13
6
 
14
- # do nothing
15
- end
16
7
 
17
- class Head < HTMLElement
18
- identifier(:tag_name => "head")
19
8
 
20
- container_method(:head)
21
9
 
22
- collection_method(:heads)
23
10
 
24
- # do nothing
25
- end
26
11
 
27
- class Title < HTMLElement
28
- identifier(:tag_name => "title")
29
12
 
30
- container_method(:title)
31
13
 
32
- collection_method(:titles)
33
14
 
34
- attributes(:string => ([:text]))
35
- end
36
15
 
37
- class Base < HTMLElement
38
- identifier(:tag_name => "base")
39
16
 
40
- container_method(:base)
41
17
 
42
- collection_method(:bases)
43
18
 
44
- attributes(:string => ([:href, :target]))
45
- end
46
19
 
47
- # class Link < HTMLElement
48
- # identifier(:tag_name => "link")
49
- #
50
- # container_method(:link)
51
- #
52
- # collection_method(:links)
53
- #
54
- # attributes(:token_list => ([:rel_list, :sizes]), :string => ([:href, :rel, :media, :hreflang, :type]), :bool => ([:disabled]))
55
- # end
56
20
 
57
- class Meta < HTMLElement
58
- identifier(:tag_name => "meta")
59
21
 
60
- container_method(:meta)
61
22
 
62
- collection_method(:metas)
63
23
 
64
- attributes(:string => ([:name, :http_equiv, :content]))
65
- end
66
24
 
67
- class Style < HTMLElement
68
- identifier(:tag_name => "style")
69
25
 
70
- container_method(:style)
71
26
 
72
- collection_method(:styles)
73
27
 
74
- attributes(:string => ([:media, :type]), :bool => ([:disabled, :scoped]))
75
- end
76
28
 
77
- class Script < HTMLElement
78
- identifier(:tag_name => "script")
79
29
 
80
- container_method(:script)
81
30
 
82
- collection_method(:scripts)
83
31
 
84
- attributes(:string => ([:src, :type, :charset, :text]), :bool => ([:async, :defer]))
85
- end
86
32
 
87
- class Body < HTMLElement
88
- identifier(:tag_name => "body")
89
33
 
90
- container_method(:body)
91
-
92
- collection_method(:bodys)
93
-
94
- attributes(:function => ([:onafterprint, :onbeforeprint, :onbeforeunload, :onblur, :onerror, :onfocus, :onhashchange, :onload, :onmessage, :onoffline, :ononline, :onpopstate, :onpagehide, :onpageshow, :onredo, :onresize, :onstorage, :onundo, :onunload]))
95
- end
96
-
97
- class Heading < HTMLElement
98
- identifier(:tag_name => "h1")
99
-
100
- container_method(:h1)
101
-
102
- collection_method(:h1s)
103
-
104
- # do nothing
105
- end
106
-
107
- class Paragraph < HTMLElement
108
- identifier(:tag_name => "p")
109
-
110
- container_method(:p)
111
-
112
- collection_method(:ps)
113
-
114
- # do nothing
115
- end
116
-
117
- class HR < HTMLElement
118
- identifier(:tag_name => "hr")
119
-
120
- container_method(:hr)
121
-
122
- collection_method(:hrs)
123
-
124
- # do nothing
125
- end
126
-
127
- class Pre < HTMLElement
128
- identifier(:tag_name => "pre")
129
-
130
- container_method(:pre)
131
-
132
- collection_method(:pres)
133
-
134
- # do nothing
135
- end
136
-
137
- class Quote < HTMLElement
138
- identifier(:tag_name => "blockquote")
139
-
140
- container_method(:blockquote)
141
-
142
- collection_method(:blockquotes)
143
-
144
- attributes(:string => ([:cite]))
145
- end
146
-
147
- class OList < HTMLElement
148
- identifier(:tag_name => "ol")
149
-
150
- container_method(:ol)
151
-
152
- collection_method(:ols)
153
-
154
- attributes(:bool => ([:reversed]), :int => ([:start]))
155
- end
156
-
157
- class UList < HTMLElement
158
- identifier(:tag_name => "ul")
159
-
160
- container_method(:ul)
161
-
162
- collection_method(:uls)
163
-
164
- # do nothing
165
- end
166
-
167
- class LI < HTMLElement
168
- identifier(:tag_name => "li")
169
-
170
- container_method(:li)
171
-
172
- collection_method(:lis)
173
-
174
- attributes(:int => ([:value]))
175
- end
176
-
177
- class DList < HTMLElement
178
- identifier(:tag_name => "dl")
179
-
180
- container_method(:dl)
181
-
182
- collection_method(:dls)
183
-
184
- # do nothing
185
- end
186
-
187
- class Div < HTMLElement
188
- identifier(:tag_name => "div")
189
-
190
- container_method(:div)
191
-
192
- collection_method(:divs)
193
-
194
- # do nothing
195
- end
196
-
197
- class Anchor < HTMLElement
198
- identifier(:tag_name => "a")
199
-
200
- container_method(:a)
201
-
202
- collection_method(:as)
203
-
204
- attributes(:token_list => ([:rel_list]), :string => ([:href, :target, :rel, :media, :hreflang, :type, :text, :protocol, :host, :hostname, :port, :pathname, :search, :hash]))
205
- end
206
-
207
- class Time < HTMLElement
208
- identifier(:tag_name => "time")
209
-
210
- container_method(:time)
211
-
212
- collection_method(:times)
213
-
214
- attributes(:string => ([:date_time]), :date => ([:value_as_date]), :bool => ([:pub_date]))
215
- end
216
-
217
- class Span < HTMLElement
218
- identifier(:tag_name => "span")
219
-
220
- container_method(:span)
221
-
222
- collection_method(:spans)
223
-
224
- # do nothing
225
- end
226
-
227
- class BR < HTMLElement
228
- identifier(:tag_name => "br")
229
-
230
- container_method(:br)
231
-
232
- collection_method(:brs)
233
-
234
- # do nothing
235
- end
236
-
237
- class Mod < HTMLElement
238
- attributes(:string => ([:cite, :date_time]))
239
- end
240
-
241
- class Image < HTMLElement
242
- identifier(:tag_name => "img")
243
-
244
- container_method(:image)
245
-
246
- collection_method(:images)
247
-
248
- attributes(:string => ([:alt, :src, :use_map]), :bool => ([:is_map, :complete]), :int => ([:width, :height, :natural_width, :natural_height]))
249
- end
250
-
251
- class IFrame < HTMLElement
252
- identifier(:tag_name => "iframe")
253
-
254
- container_method(:iframe)
255
-
256
- collection_method(:iframes)
257
-
258
- attributes(:token_list => ([:sandbox]), :string => ([:src, :srcdoc, :name, :width, :height, :content_window]), :document => ([:content_document]), :bool => ([:seamless]))
259
- end
260
-
261
- class Embed < HTMLElement
262
- identifier(:tag_name => "embed")
263
-
264
- container_method(:embed)
265
-
266
- collection_method(:embeds)
267
-
268
- attributes(:string => ([:src, :type, :width, :height]))
269
- end
270
-
271
- class Object < HTMLElement
272
- identifier(:tag_name => "object")
273
-
274
- container_method(:object)
275
-
276
- collection_method(:objects)
277
-
278
- attributes(:string => ([:data, :type, :name, :use_map, :width, :height, :content_window, :validity, :validation_message]), :html_element => ([:form]), :bool => ([:will_validate]), :document => ([:content_document]))
279
- end
280
-
281
- class Param < HTMLElement
282
- identifier(:tag_name => "param")
283
-
284
- container_method(:param)
285
-
286
- collection_method(:params)
287
-
288
- attributes(:string => ([:name, :value]))
289
- end
290
-
291
- class Media < HTMLElement
292
- attributes(:string => ([:error, :src, :current_src, :preload, :buffered, :played, :seekable]), :float => ([:current_time, :start_time, :duration, :default_playback_rate, :playback_rate, :volume]), :bool => ([:seeking, :paused, :ended, :autoplay, :loop, :controls, :muted]), :int => ([:network_state, :ready_state]))
293
- end
294
-
295
- class Video < Media
296
- identifier(:tag_name => "video")
297
-
298
- container_method(:video)
299
-
300
- collection_method(:videos)
301
-
302
- attributes(:string => ([:width, :height, :poster]), :int => ([:video_width, :video_height]))
303
- end
304
-
305
- class Audio < Media
306
- identifier(:tag_name => "audio")
307
-
308
- container_method(:audio)
309
-
310
- collection_method(:audios)
311
-
312
- # do nothing
313
- end
314
-
315
- class Source < HTMLElement
316
- identifier(:tag_name => "source")
317
-
318
- container_method(:source)
319
-
320
- collection_method(:sources)
321
-
322
- attributes(:string => ([:src, :type, :media]))
323
- end
324
-
325
- class Canvas < HTMLElement
326
- identifier(:tag_name => "canvas")
327
-
328
- container_method(:canvas)
329
-
330
- collection_method(:canvases)
331
-
332
- attributes(:int => ([:width, :height]))
333
- end
334
-
335
- class Map < HTMLElement
336
- identifier(:tag_name => "map")
337
-
338
- container_method(:map)
339
-
340
- collection_method(:maps)
341
-
342
- attributes(:string => ([:name]), :html_collection => ([:areas, :images]))
343
- end
344
-
345
- class Area < HTMLElement
346
- attributes(:token_list => ([:rel_list]), :string => ([:alt, :coords, :shape, :href, :target, :rel, :media, :hreflang, :type, :protocol, :host, :hostname, :port, :pathname, :search, :hash]))
347
- end
348
-
349
- class Table < HTMLElement
350
- identifier(:tag_name => "table")
351
-
352
- container_method(:table)
353
-
354
- collection_method(:tables)
355
-
356
- attributes(:string => ([:summary]), :html_element => ([:caption, :t_head, :t_foot]), :html_collection => ([:t_bodies, :rows]))
357
- end
358
-
359
- class TableCaption < HTMLElement
360
- identifier(:tag_name => "caption")
361
-
362
- container_method(:caption)
363
-
364
- collection_method(:captions)
365
-
366
- # do nothing
367
- end
368
-
369
- class TableCol < HTMLElement
370
- identifier(:tag_name => "colgroup")
371
-
372
- container_method(:colgroup)
373
-
374
- collection_method(:colgroups)
375
-
376
- attributes(:int => ([:span]))
377
- end
378
-
379
- class TableSection < HTMLElement
380
- identifier(:tag_name => "tbody")
381
-
382
- container_method(:tbody)
383
-
384
- collection_method(:tbodys)
385
-
386
- attributes(:html_collection => ([:rows]))
387
- end
388
-
389
- class TableRow < HTMLElement
390
- identifier(:tag_name => "tr")
391
-
392
- container_method(:tr)
393
-
394
- collection_method(:trs)
395
-
396
- attributes(:html_collection => ([:cells]), :int => ([:row_index, :section_row_index]))
397
- end
398
-
399
- class TableCell < HTMLElement
400
- identifier(:tag_name => "td")
401
-
402
- container_method(:td)
403
-
404
- collection_method(:tds)
405
-
406
- attributes(:string => ([:abbr, :align, :axis, :bg_color, :ch, :ch_off, :height, :v_align, :width]), :bool => ([:no_wrap]))
407
- end
408
-
409
- class TableDataCell < TableCell
410
- identifier(:tag_name => "td")
411
-
412
- container_method(:td)
413
-
414
- collection_method(:tds)
415
-
416
- # do nothing
417
- end
418
-
419
- class TableHeaderCell < TableCell
420
- identifier(:tag_name => "th")
421
-
422
- container_method(:th)
423
-
424
- collection_method(:ths)
425
-
426
- attributes(:string => ([:scope]))
427
- end
428
-
429
- class TableCell < HTMLElement
430
- attributes(:token_list => ([:headers]), :int => ([:col_span, :row_span, :cell_index]))
431
- end
432
-
433
- class Form < HTMLElement
434
- identifier(:tag_name => "form")
435
-
436
- container_method(:form)
437
-
438
- collection_method(:forms)
439
-
440
- attributes(:string => ([:accept_charset, :action, :autocomplete, :enctype, :method, :name, :target]), :bool => ([:no_validate]), :html_collection => ([:elements]), :int => ([:length]))
441
- end
442
-
443
- class FieldSet < HTMLElement
444
- identifier(:tag_name => "fieldset")
445
-
446
- container_method(:fieldset)
447
-
448
- collection_method(:fieldsets)
449
-
450
- attributes(:string => ([:name, :type, :validity, :validation_message]), :html_element => ([:form]), :bool => ([:disabled, :will_validate]), :html_collection => ([:elements]))
451
- end
452
-
453
- class Legend < HTMLElement
454
- identifier(:tag_name => "legend")
455
-
456
- container_method(:legend)
457
-
458
- collection_method(:legends)
459
-
460
- attributes(:html_element => ([:form]))
461
- end
462
-
463
- class Label < HTMLElement
464
- identifier(:tag_name => "label")
465
-
466
- container_method(:label)
467
-
468
- collection_method(:labels)
469
-
470
- attributes(:string => ([:html_for]), :html_element => ([:form, :control]))
471
- end
472
-
473
- class Input < HTMLElement
474
- identifier(:tag_name => "input")
475
-
476
- container_method(:input)
477
-
478
- collection_method(:inputs)
479
-
480
- attributes(:string => ([:accept, :alt, :autocomplete, :form_action, :form_enctype, :form_method, :form_target, :height, :max, :min, :name, :pattern, :placeholder, :src, :step, :type, :default_value, :value, :width, :validity, :validation_message]), :date => ([:value_as_date]), :float => ([:value_as_number]), :list => ([:files, :labels]), :html_element => ([:form, :list, :selected_option]), :bool => ([:autofocus, :default_checked, :checked, :disabled, :form_no_validate, :indeterminate, :multiple, :read_only, :required, :will_validate]), :int => ([:max_length, :size, :selection_start, :selection_end]))
481
- end
482
-
483
- class Button < HTMLElement
484
- identifier(:tag_name => "button")
485
-
486
- container_method(:button)
487
-
488
- collection_method(:buttons)
489
-
490
- attributes(:string => ([:form_action, :form_enctype, :form_method, :form_no_validate, :form_target, :name, :type, :value, :validity, :validation_message]), :list => ([:labels]), :html_element => ([:form]), :bool => ([:autofocus, :disabled, :will_validate]))
491
- end
492
-
493
- class Select < HTMLElement
494
- identifier(:tag_name => "select")
495
-
496
- container_method(:select)
497
-
498
- collection_method(:selects)
499
-
500
- attributes(:string => ([:name, :type, :value, :validity, :validation_message]), :list => ([:labels]), :html_element => ([:form]), :bool => ([:autofocus, :disabled, :multiple, :will_validate]), :html_collection => ([:options, :selected_options]), :int => ([:size, :length, :selected_index]))
501
- end
502
-
503
- class DataList < HTMLElement
504
- identifier(:tag_name => "datalist")
505
-
506
- container_method(:datalist)
507
-
508
- collection_method(:datalists)
509
-
510
- attributes(:html_collection => ([:options]))
511
- end
512
-
513
- class OptGroup < HTMLElement
514
- identifier(:tag_name => "optgroup")
515
-
516
- container_method(:optgroup)
517
-
518
- collection_method(:optgroups)
519
-
520
- attributes(:string => ([:label]), :bool => ([:disabled]))
521
- end
522
-
523
- class Option < HTMLElement
524
- identifier(:tag_name => "option")
525
-
526
- container_method(:option)
527
-
528
- collection_method(:options)
529
-
530
- attributes(:string => ([:label, :value, :text]), :html_element => ([:form]), :bool => ([:disabled, :default_selected, :selected]), :int => ([:index]))
531
- end
532
-
533
- class TextArea < HTMLElement
534
- identifier(:tag_name => "textarea")
535
-
536
- container_method(:textarea)
537
-
538
- collection_method(:textareas)
539
-
540
- attributes(:string => ([:name, :placeholder, :wrap, :type, :default_value, :value, :validity, :validation_message]), :list => ([:labels]), :html_element => ([:form]), :bool => ([:autofocus, :disabled, :read_only, :required, :will_validate]), :int => ([:cols, :max_length, :rows, :text_length, :selection_start, :selection_end]))
541
- end
542
-
543
- class Keygen < HTMLElement
544
- identifier(:tag_name => "keygen")
545
-
546
- container_method(:keygen)
547
-
548
- collection_method(:keygens)
549
-
550
- attributes(:string => ([:challenge, :keytype, :name, :type, :validity, :validation_message]), :list => ([:labels]), :html_element => ([:form]), :bool => ([:autofocus, :disabled, :will_validate]))
551
- end
552
-
553
- class Output < HTMLElement
554
- identifier(:tag_name => "output")
555
-
556
- container_method(:output)
557
-
558
- collection_method(:outputs)
559
-
560
- attributes(:token_list => ([:html_for]), :string => ([:name, :type, :default_value, :value, :validity, :validation_message]), :list => ([:labels]), :html_element => ([:form]), :bool => ([:will_validate]))
561
- end
562
-
563
- class Progress < HTMLElement
564
- identifier(:tag_name => "progress")
565
-
566
- container_method(:progress)
567
-
568
- collection_method(:progresses)
569
-
570
- attributes(:list => ([:labels]), :float => ([:value, :max, :position]), :html_element => ([:form]))
571
- end
572
-
573
- class Meter < HTMLElement
574
- identifier(:tag_name => "meter")
575
-
576
- container_method(:meter)
577
-
578
- collection_method(:meters)
579
-
580
- attributes(:list => ([:labels]), :float => ([:value, :min, :max, :low, :high, :optimum]), :html_element => ([:form]))
581
- end
582
-
583
- class Details < HTMLElement
584
- identifier(:tag_name => "details")
585
-
586
- container_method(:details)
587
-
588
- collection_method(:details)
589
-
590
- attributes(:bool => ([:open]))
591
- end
592
-
593
- class Command < HTMLElement
594
- identifier(:tag_name => "command")
595
-
596
- container_method(:command)
597
-
598
- collection_method(:commands)
599
-
600
- attributes(:string => ([:type, :label, :icon, :radiogroup]), :bool => ([:disabled, :checked]))
601
- end
602
-
603
- class Menu < HTMLElement
604
- identifier(:tag_name => "menu")
605
-
606
- container_method(:menu)
607
-
608
- collection_method(:menus)
609
-
610
- attributes(:string => ([:type, :label]))
611
- end
612
-
613
- class Applet < HTMLElement
614
- identifier(:tag_name => "applet")
615
-
616
- container_method(:applet)
617
-
618
- collection_method(:applets)
619
-
620
- attributes(:string => ([:align, :alt, :archive, :code, :code_base, :height, :name, :object, :width]), :int => ([:hspace, :vspace]))
621
- end
622
-
623
- class Marquee < HTMLElement
624
- identifier(:tag_name => "marquee")
625
-
626
- container_method(:marquee)
627
-
628
- collection_method(:marquees)
629
-
630
- attributes(:string => ([:behavior, :bg_color, :direction, :height, :true_speed, :width]), :function => ([:onbounce, :onfinish, :onstart]), :int => ([:hspace, :loop, :scroll_amount, :scroll_delay, :vspace]))
631
- end
632
-
633
- class FrameSet < HTMLElement
634
- identifier(:tag_name => "frameset")
635
-
636
- container_method(:frameset)
637
-
638
- collection_method(:framesets)
639
-
640
- attributes(:string => ([:cols, :rows]), :function => ([:onafterprint, :onbeforeprint, :onbeforeunload, :onblur, :onerror, :onfocus, :onhashchange, :onload, :onmessage, :onoffline, :ononline, :onpagehide, :onpageshow, :onpopstate, :onredo, :onresize, :onstorage, :onundo, :onunload]))
641
- end
642
-
643
- class Frame < HTMLElement
644
- identifier(:tag_name => "frame")
645
-
646
- container_method(:frame)
647
-
648
- collection_method(:frames)
649
-
650
- attributes(:string => ([:frame_border, :long_desc, :margin_height, :margin_width, :name, :scrolling, :src]), :document => ([:content_document]), :bool => ([:no_resize]))
651
- end
652
-
653
- class Anchor < HTMLElement
654
- identifier(:tag_name => "a")
655
-
656
- container_method(:a)
657
-
658
- collection_method(:as)
659
-
660
- attributes(:string => ([:coords, :charset, :name, :rev, :shape]))
661
- end
662
-
663
- class Area < HTMLElement
664
- identifier(:tag_name => "area")
665
-
666
- container_method(:area)
667
-
668
- collection_method(:areas)
669
-
670
- attributes(:bool => ([:no_href]))
671
- end
672
-
673
- class BaseFont < HTMLElement
674
- identifier(:tag_name => "basefont")
675
-
676
- container_method(:basefont)
677
-
678
- collection_method(:basefonts)
679
-
680
- attributes(:string => ([:color, :face]), :int => ([:size]))
681
- end
682
-
683
- class Body < HTMLElement
684
- identifier(:tag_name => "body")
685
-
686
- container_method(:body)
687
-
688
- collection_method(:bodys)
689
-
690
- attributes(:string => ([:text, :bg_color, :background, :link, :v_link, :a_link]))
691
- end
692
-
693
- class BR < HTMLElement
694
- identifier(:tag_name => "br")
695
-
696
- container_method(:br)
697
-
698
- collection_method(:brs)
699
-
700
- attributes(:string => ([:clear]))
701
- end
702
-
703
- class TableCaption < HTMLElement
704
- identifier(:tag_name => "caption")
705
-
706
- container_method(:caption)
707
-
708
- collection_method(:captions)
709
-
710
- attributes(:string => ([:align]))
711
- end
712
-
713
- class TableCol < HTMLElement
714
- identifier(:tag_name => "col")
715
-
716
- container_method(:col)
717
-
718
- collection_method(:cols)
719
-
720
- attributes(:string => ([:align, :ch, :ch_off, :v_align, :width]))
721
- end
722
-
723
- class Directory < HTMLElement
724
- attributes(:bool => ([:compact]))
725
- end
726
-
727
- class Div < HTMLElement
728
- identifier(:tag_name => "div")
729
-
730
- container_method(:div)
731
-
732
- collection_method(:divs)
733
-
734
- attributes(:string => ([:align]))
735
- end
736
-
737
- class DList < HTMLElement
738
- identifier(:tag_name => "dl")
739
-
740
- container_method(:dl)
741
-
742
- collection_method(:dls)
743
-
744
- attributes(:bool => ([:compact]))
745
- end
746
-
747
- class Embed < HTMLElement
748
- identifier(:tag_name => "embed")
749
-
750
- container_method(:embed)
751
-
752
- collection_method(:embeds)
753
-
754
- attributes(:string => ([:align, :name]))
755
- end
756
-
757
- class Font < HTMLElement
758
- identifier(:tag_name => "font")
759
-
760
- container_method(:font)
761
-
762
- collection_method(:fonts)
763
-
764
- attributes(:string => ([:color, :face, :size]))
765
- end
766
-
767
- class Heading < HTMLElement
768
- identifier(:tag_name => "h1")
769
-
770
- container_method(:h1)
771
-
772
- collection_method(:h1s)
773
-
774
- attributes(:string => ([:align]))
775
- end
776
-
777
- class HR < HTMLElement
778
- identifier(:tag_name => "hr")
779
-
780
- container_method(:hr)
781
-
782
- collection_method(:hrs)
783
-
784
- attributes(:string => ([:align, :color, :size, :width]), :bool => ([:no_shade]))
785
- end
786
-
787
- class Html < HTMLElement
788
- identifier(:tag_name => "html")
789
-
790
- container_method(:html)
791
-
792
- collection_method(:htmls)
793
-
794
- attributes(:string => ([:version]))
795
- end
796
-
797
- class IFrame < HTMLElement
798
- identifier(:tag_name => "iframe")
799
-
800
- container_method(:iframe)
801
-
802
- collection_method(:iframes)
803
-
804
- attributes(:string => ([:align, :frame_border, :long_desc, :margin_height, :margin_width, :scrolling]))
805
- end
806
-
807
- class Image < HTMLElement
808
- identifier(:tag_name => "img")
809
-
810
- container_method(:image)
811
-
812
- collection_method(:images)
813
-
814
- attributes(:string => ([:name, :align, :border, :long_desc]), :int => ([:hspace, :vspace]))
815
- end
816
-
817
- class Input < HTMLElement
818
- identifier(:tag_name => "input")
819
-
820
- container_method(:input)
821
-
822
- collection_method(:inputs)
823
-
824
- attributes(:string => ([:align, :use_map]))
825
- end
826
-
827
- class Legend < HTMLElement
828
- identifier(:tag_name => "legend")
829
-
830
- container_method(:legend)
831
-
832
- collection_method(:legends)
833
-
834
- attributes(:string => ([:align]))
835
- end
836
-
837
- class LI < HTMLElement
838
- identifier(:tag_name => "li")
839
-
840
- container_method(:li)
841
-
842
- collection_method(:lis)
843
-
844
- attributes(:string => ([:type]))
845
- end
846
-
847
- # class Link < HTMLElement
848
- # identifier(:tag_name => "link")
849
- #
850
- # container_method(:link)
851
- #
852
- # collection_method(:links)
853
- #
854
- # attributes(:string => ([:charset, :rev, :target]))
855
- # end
856
-
857
- class Menu < HTMLElement
858
- identifier(:tag_name => "menu")
859
-
860
- container_method(:menu)
861
-
862
- collection_method(:menus)
863
-
864
- attributes(:bool => ([:compact]))
865
- end
866
-
867
- class Meta < HTMLElement
868
- identifier(:tag_name => "meta")
869
-
870
- container_method(:meta)
871
-
872
- collection_method(:metas)
873
-
874
- attributes(:string => ([:scheme]))
875
- end
876
-
877
- class Object < HTMLElement
878
- identifier(:tag_name => "object")
879
-
880
- container_method(:object)
881
-
882
- collection_method(:objects)
883
-
884
- attributes(:string => ([:align, :archive, :border, :code, :code_base, :code_type, :standby]), :bool => ([:declare]), :int => ([:hspace, :vspace]))
885
- end
886
-
887
- class OList < HTMLElement
888
- identifier(:tag_name => "ol")
889
-
890
- container_method(:ol)
891
-
892
- collection_method(:ols)
893
-
894
- attributes(:string => ([:type]), :bool => ([:compact]))
895
- end
896
-
897
- class Paragraph < HTMLElement
898
- identifier(:tag_name => "p")
899
-
900
- container_method(:p)
901
-
902
- collection_method(:ps)
903
-
904
- attributes(:string => ([:align]))
905
- end
906
-
907
- class Param < HTMLElement
908
- identifier(:tag_name => "param")
909
-
910
- container_method(:param)
911
-
912
- collection_method(:params)
913
-
914
- attributes(:string => ([:type, :value_type]))
915
- end
916
-
917
- class Pre < HTMLElement
918
- identifier(:tag_name => "pre")
919
-
920
- container_method(:pre)
921
-
922
- collection_method(:pres)
923
-
924
- attributes(:int => ([:width]))
925
- end
926
-
927
- class Script < HTMLElement
928
- identifier(:tag_name => "script")
929
-
930
- container_method(:script)
931
-
932
- collection_method(:scripts)
933
-
934
- attributes(:string => ([:event, :html_for]))
935
- end
936
-
937
- class Table < HTMLElement
938
- identifier(:tag_name => "table")
939
-
940
- container_method(:table)
941
-
942
- collection_method(:tables)
943
-
944
- attributes(:string => ([:align, :bg_color, :border, :cell_padding, :cell_spacing, :frame, :rules, :width]))
945
- end
946
-
947
- class TableSection < HTMLElement
948
- identifier(:tag_name => "tbody")
949
-
950
- container_method(:tbody)
951
-
952
- collection_method(:tbodys)
953
-
954
- attributes(:string => ([:align, :ch, :ch_off, :v_align]))
955
- end
956
-
957
- class TableRow < HTMLElement
958
- identifier(:tag_name => "tr")
959
-
960
- container_method(:tr)
961
-
962
- collection_method(:trs)
963
-
964
- attributes(:string => ([:align, :bg_color, :ch, :ch_off, :v_align]))
965
- end
966
-
967
- class UList < HTMLElement
968
- identifier(:tag_name => "ul")
969
-
970
- container_method(:ul)
971
-
972
- collection_method(:uls)
973
-
974
- attributes(:string => ([:type]), :bool => ([:compact]))
975
- end
976
-
977
- class Thead < TableSection
978
- identifier(:tag_name => "thead")
979
-
980
- container_method(:thead)
981
-
982
- collection_method(:theads)
983
-
984
- # do nothing
985
- end
986
-
987
- class Dd < HTMLElement
988
- identifier(:tag_name => "dd")
989
-
990
- container_method(:dd)
991
-
992
- collection_method(:dds)
993
-
994
- # do nothing
995
- end
996
-
997
- class Address < HTMLElement
998
- identifier(:tag_name => "address")
999
-
1000
- container_method(:address)
1001
-
1002
- collection_method(:addresses)
1003
-
1004
- # do nothing
1005
- end
1006
-
1007
- class Nav < HTMLElement
1008
- identifier(:tag_name => "nav")
1009
-
1010
- container_method(:nav)
1011
-
1012
- collection_method(:navs)
1013
-
1014
- # do nothing
1015
- end
1016
-
1017
- class TFoot < TableSection
1018
- identifier(:tag_name => "tfoot")
1019
-
1020
- container_method(:tfoot)
1021
-
1022
- collection_method(:tfoots)
1023
-
1024
- # do nothing
1025
- end
1026
-
1027
- class Sub < HTMLElement
1028
- identifier(:tag_name => "sub")
1029
-
1030
- container_method(:sub)
1031
-
1032
- collection_method(:subs)
1033
-
1034
- # do nothing
1035
- end
1036
-
1037
- class Sup < HTMLElement
1038
- identifier(:tag_name => "sup")
1039
-
1040
- container_method(:sup)
1041
-
1042
- collection_method(:sups)
1043
-
1044
- # do nothing
1045
- end
1046
-
1047
- class Bdo < HTMLElement
1048
- identifier(:tag_name => "bdo")
1049
-
1050
- container_method(:bdo)
1051
-
1052
- collection_method(:bdos)
1053
-
1054
- # do nothing
1055
- end
1056
-
1057
- class Rp < HTMLElement
1058
- identifier(:tag_name => "rp")
1059
-
1060
- container_method(:rp)
1061
-
1062
- collection_method(:rps)
1063
-
1064
- # do nothing
1065
- end
1066
-
1067
- class Rt < HTMLElement
1068
- identifier(:tag_name => "rt")
1069
-
1070
- container_method(:rt)
1071
-
1072
- collection_method(:rts)
1073
-
1074
- # do nothing
1075
- end
1076
-
1077
- class Mark < HTMLElement
1078
- identifier(:tag_name => "mark")
1079
-
1080
- container_method(:mark)
1081
-
1082
- collection_method(:marks)
1083
-
1084
- # do nothing
1085
- end
1086
-
1087
- class Kbd < HTMLElement
1088
- identifier(:tag_name => "kbd")
1089
-
1090
- container_method(:kbd)
1091
-
1092
- collection_method(:kbds)
1093
-
1094
- # do nothing
1095
- end
1096
-
1097
- class Dfn < HTMLElement
1098
- identifier(:tag_name => "dfn")
1099
-
1100
- container_method(:dfn)
1101
-
1102
- collection_method(:dfns)
1103
-
1104
- # do nothing
1105
- end
1106
-
1107
- class Cite < HTMLElement
1108
- identifier(:tag_name => "cite")
1109
-
1110
- container_method(:cite)
1111
-
1112
- collection_method(:cites)
1113
-
1114
- # do nothing
1115
- end
1116
-
1117
- class Ins < Mod
1118
- identifier(:tag_name => "ins")
1119
-
1120
- container_method(:ins)
1121
-
1122
- collection_method(:inses)
1123
-
1124
- # do nothing
1125
- end
1126
-
1127
- class B < HTMLElement
1128
- identifier(:tag_name => "b")
1129
-
1130
- container_method(:b)
1131
-
1132
- collection_method(:bs)
1133
-
1134
- # do nothing
1135
- end
1136
-
1137
- class Noscript < HTMLElement
1138
- identifier(:tag_name => "noscript")
1139
-
1140
- container_method(:noscript)
1141
-
1142
- collection_method(:noscripts)
1143
-
1144
- # do nothing
1145
- end
1146
-
1147
- class Figure < HTMLElement
1148
- identifier(:tag_name => "figure")
1149
-
1150
- container_method(:figure)
1151
-
1152
- collection_method(:figures)
1153
-
1154
- # do nothing
1155
- end
1156
-
1157
- class Code < HTMLElement
1158
- identifier(:tag_name => "code")
1159
-
1160
- container_method(:code)
1161
-
1162
- collection_method(:codes)
1163
-
1164
- # do nothing
1165
- end
1166
-
1167
- class Q < Quote
1168
- identifier(:tag_name => "q")
1169
-
1170
- container_method(:q)
1171
-
1172
- collection_method(:qs)
1173
-
1174
- # do nothing
1175
- end
1176
-
1177
- class Strong < HTMLElement
1178
- identifier(:tag_name => "strong")
1179
-
1180
- container_method(:strong)
1181
-
1182
- collection_method(:strongs)
1183
-
1184
- # do nothing
1185
- end
1186
-
1187
- class Header < HTMLElement
1188
- identifier(:tag_name => "header")
1189
-
1190
- container_method(:header)
1191
-
1192
- collection_method(:headers)
1193
-
1194
- # do nothing
1195
- end
1196
-
1197
- class Hgroup < HTMLElement
1198
- identifier(:tag_name => "hgroup")
1199
-
1200
- container_method(:hgroup)
1201
-
1202
- collection_method(:hgroups)
1203
-
1204
- # do nothing
1205
- end
1206
-
1207
- class Aside < HTMLElement
1208
- identifier(:tag_name => "aside")
1209
-
1210
- container_method(:aside)
1211
-
1212
- collection_method(:asides)
1213
-
1214
- # do nothing
1215
- end
1216
-
1217
- class Samp < HTMLElement
1218
- identifier(:tag_name => "samp")
1219
-
1220
- container_method(:samp)
1221
-
1222
- collection_method(:samps)
1223
-
1224
- # do nothing
1225
- end
1226
-
1227
- class Section < HTMLElement
1228
- identifier(:tag_name => "section")
1229
-
1230
- container_method(:section)
1231
-
1232
- collection_method(:sections)
1233
-
1234
- # do nothing
1235
- end
1236
-
1237
- class Dt < HTMLElement
1238
- identifier(:tag_name => "dt")
1239
-
1240
- container_method(:dt)
1241
-
1242
- collection_method(:dts)
1243
-
1244
- # do nothing
1245
- end
1246
-
1247
- class Col < TableCol
1248
- identifier(:tag_name => "col")
1249
-
1250
- container_method(:col)
1251
-
1252
- collection_method(:cols)
1253
-
1254
- # do nothing
1255
- end
1256
-
1257
- class I < HTMLElement
1258
- identifier(:tag_name => "i")
1259
-
1260
- container_method(:i)
1261
-
1262
- collection_method(:is)
1263
-
1264
- # do nothing
1265
- end
1266
-
1267
- class Var < HTMLElement
1268
- identifier(:tag_name => "var")
1269
-
1270
- container_method(:var)
1271
-
1272
- collection_method(:vars)
1273
-
1274
- # do nothing
1275
- end
1276
-
1277
- class Abbr < HTMLElement
1278
- identifier(:tag_name => "abbr")
1279
-
1280
- container_method(:abbr)
1281
-
1282
- collection_method(:abbrs)
1283
-
1284
- # do nothing
1285
- end
1286
-
1287
- class Small < HTMLElement
1288
- identifier(:tag_name => "small")
1289
-
1290
- container_method(:small)
1291
-
1292
- collection_method(:smalls)
1293
-
1294
- # do nothing
1295
- end
1296
-
1297
- class Footer < HTMLElement
1298
- identifier(:tag_name => "footer")
1299
-
1300
- container_method(:footer)
1301
-
1302
- collection_method(:footers)
1303
-
1304
- # do nothing
1305
- end
1306
-
1307
- class Ruby < HTMLElement
1308
- identifier(:tag_name => "ruby")
1309
-
1310
- container_method(:ruby)
1311
-
1312
- collection_method(:rubies)
1313
-
1314
- # do nothing
1315
- end
1316
-
1317
- class Article < HTMLElement
1318
- identifier(:tag_name => "article")
1319
-
1320
- container_method(:article)
1321
-
1322
- collection_method(:articles)
1323
-
1324
- # do nothing
1325
- end
1326
-
1327
- class Del < Mod
1328
- identifier(:tag_name => "del")
1329
-
1330
- container_method(:del)
1331
-
1332
- collection_method(:dels)
1333
-
1334
- # do nothing
1335
- end
1336
-
1337
- class Em < HTMLElement
1338
- identifier(:tag_name => "em")
1339
-
1340
- container_method(:em)
1341
-
1342
- collection_method(:ems)
1343
-
1344
- # do nothing
1345
- end
1346
- end
34
+ class HTMLElement < Element
35
+ attributes(:token_list => ([:class_list, :item_ref, :item_prop]), :style => ([:style]), :string_map => ([:dataset]), :string => ([:innerhtml, :outerhtml, :id, :title, :lang, :dir, :class_name, :item_type, :item_id, :item_value, :access_key, :access_key_label, :content_editable, :command_type, :label, :icon]), :properties_collection => ([:properties]), :int => ([:tab_index]), :html_element => ([:context_menu]), :function => ([:onabort, :onblur, :oncanplay, :oncanplaythrough, :onchange, :onclick, :oncontextmenu, :oncuechange, :ondblclick, :ondrag, :ondragend, :ondragenter, :ondragleave, :ondragover, :ondragstart, :ondrop, :ondurationchange, :onemptied, :onended, :onerror, :onfocus, :onformchange, :onforminput, :oninput, :oninvalid, :onkeydown, :onkeypress, :onkeyup, :onload, :onloadeddata, :onloadedmetadata, :onloadstart, :onmousedown, :onmousemove, :onmouseout, :onmouseover, :onmouseup, :onmousewheel, :onpause, :onplay, :onplaying, :onprogress, :onratechange, :onreadystatechange, :onscroll, :onseeked, :onseeking, :onselect, :onshow, :onstalled, :onsubmit, :onsuspend, :ontimeupdate, :onvolumechange, :onwaiting]), :bool => ([:item_scope, :hidden, :draggable, :is_content_editable, :spellcheck, :disabled, :checked]))
36
+ end
37
+ class HTMLElementCollection < ElementCollection
38
+ def element_class
39
+ HTMLElement
40
+ end
41
+ end
42
+ class Directory < HTMLElement
43
+ attributes(:bool => ([:compact]))
44
+ end
45
+ class DirectoryCollection < ElementCollection
46
+ def element_class
47
+ Directory
48
+ end
49
+ end
50
+ class Frame < HTMLElement
51
+ attributes(:string => ([:frame_border, :long_desc, :margin_height, :margin_width, :name, :scrolling, :src]), :bool => ([:no_resize]), :document => ([:content_document]))
52
+ end
53
+ class FrameCollection < ElementCollection
54
+ def element_class
55
+ Frame
56
+ end
57
+ end
58
+ class FrameSet < HTMLElement
59
+ attributes(:string => ([:cols, :rows]), :function => ([:onafterprint, :onbeforeprint, :onbeforeunload, :onblur, :onerror, :onfocus, :onhashchange, :onload, :onmessage, :onoffline, :ononline, :onpagehide, :onpageshow, :onpopstate, :onredo, :onresize, :onstorage, :onundo, :onunload]))
60
+ end
61
+ class FrameSetCollection < ElementCollection
62
+ def element_class
63
+ FrameSet
64
+ end
65
+ end
66
+ class Applet < HTMLElement
67
+ attributes(:string => ([:align, :alt, :archive, :code, :code_base, :height, :name, :object, :width]), :int => ([:hspace, :vspace]))
68
+ end
69
+ class AppletCollection < ElementCollection
70
+ def element_class
71
+ Applet
72
+ end
73
+ end
74
+ class Menu < HTMLElement
75
+ attributes(:string => ([:type, :label]))
76
+ end
77
+ class MenuCollection < ElementCollection
78
+ def element_class
79
+ Menu
80
+ end
81
+ end
82
+ class Menu < HTMLElement
83
+ attributes(:bool => ([:compact]))
84
+ end
85
+ # do nothing
86
+ class Command < HTMLElement
87
+ attributes(:string => ([:type, :label, :icon, :radiogroup]), :bool => ([:disabled, :checked]))
88
+ end
89
+ class CommandCollection < ElementCollection
90
+ def element_class
91
+ Command
92
+ end
93
+ end
94
+ class Meter < HTMLElement
95
+ attributes(:float => ([:value, :min, :max, :low, :high, :optimum]), :list => ([:labels]), :html_element => ([:form]))
96
+ end
97
+ class MeterCollection < ElementCollection
98
+ def element_class
99
+ Meter
100
+ end
101
+ end
102
+ class Progress < HTMLElement
103
+ attributes(:float => ([:value, :max, :position]), :list => ([:labels]), :html_element => ([:form]))
104
+ end
105
+ class ProgressCollection < ElementCollection
106
+ def element_class
107
+ Progress
108
+ end
109
+ end
110
+ class Keygen < HTMLElement
111
+ attributes(:string => ([:challenge, :keytype, :name, :type, :validity, :validation_message]), :list => ([:labels]), :html_element => ([:form]), :bool => ([:autofocus, :disabled, :will_validate]))
112
+ end
113
+ class KeygenCollection < ElementCollection
114
+ def element_class
115
+ Keygen
116
+ end
117
+ end
118
+ class TextArea < HTMLElement
119
+ attributes(:string => ([:name, :placeholder, :wrap, :type, :default_value, :value, :validity, :validation_message]), :int => ([:cols, :max_length, :rows, :text_length, :selection_start, :selection_end]), :list => ([:labels]), :html_element => ([:form]), :bool => ([:autofocus, :disabled, :read_only, :required, :will_validate]))
120
+ end
121
+ class TextAreaCollection < ElementCollection
122
+ def element_class
123
+ TextArea
124
+ end
125
+ end
126
+ class Option < HTMLElement
127
+ attributes(:string => ([:label, :value, :text]), :int => ([:index]), :html_element => ([:form]), :bool => ([:disabled, :default_selected, :selected]))
128
+ end
129
+ class OptionCollection < ElementCollection
130
+ def element_class
131
+ Option
132
+ end
133
+ end
134
+ class DataList < HTMLElement
135
+ attributes(:html_collection => ([:options]))
136
+ end
137
+ class DataListCollection < ElementCollection
138
+ def element_class
139
+ DataList
140
+ end
141
+ end
142
+ class Input < HTMLElement
143
+ attributes(:string => ([:accept, :alt, :autocomplete, :form_action, :form_enctype, :form_method, :form_target, :height, :max, :min, :name, :pattern, :placeholder, :src, :step, :type, :default_value, :value, :width, :validity, :validation_message]), :float => ([:value_as_number]), :int => ([:max_length, :size, :selection_start, :selection_end]), :list => ([:files, :labels]), :html_element => ([:form, :list, :selected_option]), :bool => ([:autofocus, :default_checked, :checked, :disabled, :form_no_validate, :indeterminate, :multiple, :read_only, :required, :will_validate]), :date => ([:value_as_date]))
144
+ end
145
+ class InputCollection < ElementCollection
146
+ def element_class
147
+ Input
148
+ end
149
+ end
150
+ class Input < HTMLElement
151
+ attributes(:string => ([:align, :use_map]))
152
+ end
153
+ # do nothing
154
+ class Label < HTMLElement
155
+ attributes(:string => ([:html_for]), :html_element => ([:form, :control]))
156
+ end
157
+ class LabelCollection < ElementCollection
158
+ def element_class
159
+ Label
160
+ end
161
+ end
162
+ class Legend < HTMLElement
163
+ attributes(:html_element => ([:form]))
164
+ end
165
+ class LegendCollection < ElementCollection
166
+ def element_class
167
+ Legend
168
+ end
169
+ end
170
+ class Legend < HTMLElement
171
+ attributes(:string => ([:align]))
172
+ end
173
+ # do nothing
174
+ class Form < HTMLElement
175
+ attributes(:string => ([:accept_charset, :action, :autocomplete, :enctype, :method, :name, :target]), :int => ([:length]), :html_collection => ([:elements]), :bool => ([:no_validate]))
176
+ end
177
+ class FormCollection < ElementCollection
178
+ def element_class
179
+ Form
180
+ end
181
+ end
182
+ class TableRow < HTMLElement
183
+ attributes(:int => ([:row_index, :section_row_index]), :html_collection => ([:cells]))
184
+ end
185
+ class TableRowCollection < ElementCollection
186
+ def element_class
187
+ TableRow
188
+ end
189
+ end
190
+ class TableRow < HTMLElement
191
+ attributes(:string => ([:align, :bg_color, :ch, :ch_off, :v_align]))
192
+ end
193
+ # do nothing
194
+ class TableSection < HTMLElement
195
+ attributes(:html_collection => ([:rows]))
196
+ end
197
+ class TableSectionCollection < ElementCollection
198
+ def element_class
199
+ TableSection
200
+ end
201
+ end
202
+ class TableSection < HTMLElement
203
+ attributes(:string => ([:align, :ch, :ch_off, :v_align]))
204
+ end
205
+ # do nothing
206
+ class TableCol < HTMLElement
207
+ attributes(:int => ([:span]))
208
+ end
209
+ class TableColCollection < ElementCollection
210
+ def element_class
211
+ TableCol
212
+ end
213
+ end
214
+ class TableCol < HTMLElement
215
+ attributes(:string => ([:align, :ch, :ch_off, :v_align, :width]))
216
+ end
217
+ # do nothing
218
+ class Table < HTMLElement
219
+ attributes(:string => ([:summary]), :html_element => ([:caption, :t_head, :t_foot]), :html_collection => ([:t_bodies, :rows]))
220
+ end
221
+ class TableCollection < ElementCollection
222
+ def element_class
223
+ Table
224
+ end
225
+ end
226
+ class Table < HTMLElement
227
+ attributes(:string => ([:align, :bg_color, :border, :cell_padding, :cell_spacing, :frame, :rules, :width]))
228
+ end
229
+ # do nothing
230
+ class Map < HTMLElement
231
+ attributes(:string => ([:name]), :html_collection => ([:areas, :images]))
232
+ end
233
+ class MapCollection < ElementCollection
234
+ def element_class
235
+ Map
236
+ end
237
+ end
238
+ class Media < HTMLElement
239
+ attributes(:string => ([:error, :src, :current_src, :preload, :buffered, :played, :seekable, :tracks]), :float => ([:current_time, :initial_time, :duration, :default_playback_rate, :playback_rate, :volume]), :int => ([:network_state, :ready_state]), :bool => ([:seeking, :paused, :ended, :autoplay, :loop, :controls, :muted]), :date => ([:start_offset_time]))
240
+ end
241
+ class MediaCollection < ElementCollection
242
+ def element_class
243
+ Media
244
+ end
245
+ end
246
+ class Audio < Media
247
+ # do nothing
248
+ end
249
+ class AudioCollection < ElementCollection
250
+ def element_class
251
+ Audio
252
+ end
253
+ end
254
+ class Video < Media
255
+ attributes(:string => ([:width, :height, :poster]), :int => ([:video_width, :video_height]))
256
+ end
257
+ class VideoCollection < ElementCollection
258
+ def element_class
259
+ Video
260
+ end
261
+ end
262
+ class Source < HTMLElement
263
+ attributes(:string => ([:src, :type, :media]))
264
+ end
265
+ class SourceCollection < ElementCollection
266
+ def element_class
267
+ Source
268
+ end
269
+ end
270
+ class Param < HTMLElement
271
+ attributes(:string => ([:name, :value]))
272
+ end
273
+ class ParamCollection < ElementCollection
274
+ def element_class
275
+ Param
276
+ end
277
+ end
278
+ class Param < HTMLElement
279
+ attributes(:string => ([:type, :value_type]))
280
+ end
281
+ # do nothing
282
+ class Object < HTMLElement
283
+ attributes(:string => ([:data, :type, :name, :use_map, :width, :height, :content_window, :validity, :validation_message]), :html_element => ([:form]), :bool => ([:will_validate]), :document => ([:content_document]))
284
+ end
285
+ class ObjectCollection < ElementCollection
286
+ def element_class
287
+ Object
288
+ end
289
+ end
290
+ class Object < HTMLElement
291
+ attributes(:string => ([:align, :archive, :border, :code, :code_base, :code_type, :standby]), :int => ([:hspace, :vspace]), :bool => ([:declare]))
292
+ end
293
+ # do nothing
294
+ class IFrame < HTMLElement
295
+ attributes(:token_list => ([:sandbox]), :string => ([:src, :srcdoc, :name, :width, :height, :content_window]), :bool => ([:seamless]), :document => ([:content_document]))
296
+ end
297
+ class IFrameCollection < ElementCollection
298
+ def element_class
299
+ IFrame
300
+ end
301
+ end
302
+ class IFrame < HTMLElement
303
+ attributes(:string => ([:align, :frame_border, :long_desc, :margin_height, :margin_width, :scrolling]))
304
+ end
305
+ # do nothing
306
+ class Image < HTMLElement
307
+ attributes(:string => ([:alt, :src, :use_map]), :int => ([:width, :height, :natural_width, :natural_height]), :bool => ([:is_map, :complete]))
308
+ end
309
+ class ImageCollection < ElementCollection
310
+ def element_class
311
+ Image
312
+ end
313
+ end
314
+ class Image < HTMLElement
315
+ attributes(:string => ([:name, :align, :border, :long_desc]), :int => ([:hspace, :vspace]))
316
+ end
317
+ # do nothing
318
+ class Mod < HTMLElement
319
+ attributes(:string => ([:cite, :date_time]))
320
+ end
321
+ class ModCollection < ElementCollection
322
+ def element_class
323
+ Mod
324
+ end
325
+ end
326
+ class BR < HTMLElement
327
+ # do nothing
328
+ end
329
+ class BRCollection < ElementCollection
330
+ def element_class
331
+ BR
332
+ end
333
+ end
334
+ class BR < HTMLElement
335
+ attributes(:string => ([:clear]))
336
+ end
337
+ # do nothing
338
+ class Span < HTMLElement
339
+ # do nothing
340
+ end
341
+ class SpanCollection < ElementCollection
342
+ def element_class
343
+ Span
344
+ end
345
+ end
346
+ class Anchor < HTMLElement
347
+ attributes(:token_list => ([:rel_list]), :string => ([:href, :target, :ping, :rel, :media, :hreflang, :type, :text, :protocol, :host, :hostname, :port, :pathname, :search, :hash]))
348
+ end
349
+ class AnchorCollection < ElementCollection
350
+ def element_class
351
+ Anchor
352
+ end
353
+ end
354
+ class Anchor < HTMLElement
355
+ attributes(:string => ([:coords, :charset, :name, :rev, :shape]))
356
+ end
357
+ # do nothing
358
+ class DList < HTMLElement
359
+ # do nothing
360
+ end
361
+ class DListCollection < ElementCollection
362
+ def element_class
363
+ DList
364
+ end
365
+ end
366
+ class DList < HTMLElement
367
+ attributes(:bool => ([:compact]))
368
+ end
369
+ # do nothing
370
+ class LI < HTMLElement
371
+ attributes(:int => ([:value]))
372
+ end
373
+ class LICollection < ElementCollection
374
+ def element_class
375
+ LI
376
+ end
377
+ end
378
+ class LI < HTMLElement
379
+ attributes(:string => ([:type]))
380
+ end
381
+ # do nothing
382
+ class Pre < HTMLElement
383
+ # do nothing
384
+ end
385
+ class PreCollection < ElementCollection
386
+ def element_class
387
+ Pre
388
+ end
389
+ end
390
+ class Pre < HTMLElement
391
+ attributes(:int => ([:width]))
392
+ end
393
+ # do nothing
394
+ class HR < HTMLElement
395
+ # do nothing
396
+ end
397
+ class HRCollection < ElementCollection
398
+ def element_class
399
+ HR
400
+ end
401
+ end
402
+ class HR < HTMLElement
403
+ attributes(:string => ([:align, :color, :size, :width]), :bool => ([:no_shade]))
404
+ end
405
+ # do nothing
406
+ class Paragraph < HTMLElement
407
+ # do nothing
408
+ end
409
+ class ParagraphCollection < ElementCollection
410
+ def element_class
411
+ Paragraph
412
+ end
413
+ end
414
+ class Paragraph < HTMLElement
415
+ attributes(:string => ([:align]))
416
+ end
417
+ # do nothing
418
+ class Heading < HTMLElement
419
+ # do nothing
420
+ end
421
+ class HeadingCollection < ElementCollection
422
+ def element_class
423
+ Heading
424
+ end
425
+ end
426
+ class Heading < HTMLElement
427
+ attributes(:string => ([:align]))
428
+ end
429
+ # do nothing
430
+ class Body < HTMLElement
431
+ attributes(:function => ([:onafterprint, :onbeforeprint, :onbeforeunload, :onblur, :onerror, :onfocus, :onhashchange, :onload, :onmessage, :onoffline, :ononline, :onpopstate, :onpagehide, :onpageshow, :onredo, :onresize, :onstorage, :onundo, :onunload]))
432
+ end
433
+ class BodyCollection < ElementCollection
434
+ def element_class
435
+ Body
436
+ end
437
+ end
438
+ class Body < HTMLElement
439
+ attributes(:string => ([:text, :bg_color, :background, :link, :v_link, :a_link]))
440
+ end
441
+ # do nothing
442
+ class Script < HTMLElement
443
+ attributes(:string => ([:src, :type, :charset, :text]), :bool => ([:async, :defer]))
444
+ end
445
+ class ScriptCollection < ElementCollection
446
+ def element_class
447
+ Script
448
+ end
449
+ end
450
+ class Script < HTMLElement
451
+ attributes(:string => ([:event, :html_for]))
452
+ end
453
+ # do nothing
454
+ class Style < HTMLElement
455
+ attributes(:string => ([:media, :type]), :bool => ([:disabled, :scoped]))
456
+ end
457
+ class StyleCollection < ElementCollection
458
+ def element_class
459
+ Style
460
+ end
461
+ end
462
+ class Meta < HTMLElement
463
+ attributes(:string => ([:name, :http_equiv, :content]))
464
+ end
465
+ class MetaCollection < ElementCollection
466
+ def element_class
467
+ Meta
468
+ end
469
+ end
470
+ class Meta < HTMLElement
471
+ attributes(:string => ([:scheme]))
472
+ end
473
+ # do nothing
474
+ class Base < HTMLElement
475
+ attributes(:string => ([:href, :target]))
476
+ end
477
+ class BaseCollection < ElementCollection
478
+ def element_class
479
+ Base
480
+ end
481
+ end
482
+ class Head < HTMLElement
483
+ # do nothing
484
+ end
485
+ class HeadCollection < ElementCollection
486
+ def element_class
487
+ Head
488
+ end
489
+ end
490
+
491
+ class Time < HTMLElement
492
+ attributes(:string => ([:date_time]), :bool => ([:pub_date]), :date => ([:value_as_date]))
493
+ end
494
+ class TimeCollection < ElementCollection
495
+ def element_class
496
+ Time
497
+ end
498
+ end
499
+
500
+
501
+
502
+
503
+ class Marquee < HTMLElement
504
+ attributes(:string => ([:behavior, :bg_color, :direction, :height, :true_speed, :width]), :int => ([:hspace, :loop, :scroll_amount, :scroll_delay, :vspace]), :function => ([:onbounce, :onfinish, :onstart]))
505
+ end
506
+ class MarqueeCollection < ElementCollection
507
+ def element_class
508
+ Marquee
509
+ end
510
+ end
511
+ class Font < HTMLElement
512
+ attributes(:string => ([:color, :face, :size]))
513
+ end
514
+ class FontCollection < ElementCollection
515
+ def element_class
516
+ Font
517
+ end
518
+ end
519
+ class TableCaption < HTMLElement
520
+ # do nothing
521
+ end
522
+ class TableCaptionCollection < ElementCollection
523
+ def element_class
524
+ TableCaption
525
+ end
526
+ end
527
+ class TableCaption < HTMLElement
528
+ attributes(:string => ([:align]))
529
+ end
530
+ # do nothing
531
+
532
+
533
+
534
+
535
+
536
+
537
+ class Select < HTMLElement
538
+ attributes(:string => ([:name, :type, :value, :validity, :validation_message]), :int => ([:size, :length, :selected_index]), :list => ([:labels]), :html_element => ([:form]), :html_collection => ([:options, :selected_options]), :bool => ([:autofocus, :disabled, :multiple, :required, :will_validate]))
539
+ end
540
+ class SelectCollection < ElementCollection
541
+ def element_class
542
+ Select
543
+ end
544
+ end
545
+ class UList < HTMLElement
546
+ # do nothing
547
+ end
548
+ class UListCollection < ElementCollection
549
+ def element_class
550
+ UList
551
+ end
552
+ end
553
+ class UList < HTMLElement
554
+ attributes(:string => ([:type]), :bool => ([:compact]))
555
+ end
556
+ # do nothing
557
+
558
+ class OptGroup < HTMLElement
559
+ attributes(:string => ([:label]), :bool => ([:disabled]))
560
+ end
561
+ class OptGroupCollection < ElementCollection
562
+ def element_class
563
+ OptGroup
564
+ end
565
+ end
566
+ class Canvas < HTMLElement
567
+ attributes(:int => ([:width, :height]))
568
+ end
569
+ class CanvasCollection < ElementCollection
570
+ def element_class
571
+ Canvas
572
+ end
573
+ end
574
+ class TableCell < HTMLElement
575
+ attributes(:token_list => ([:headers]), :int => ([:col_span, :row_span, :cell_index]))
576
+ end
577
+ class TableCellCollection < ElementCollection
578
+ def element_class
579
+ TableCell
580
+ end
581
+ end
582
+ class TableCell < HTMLElement
583
+ attributes(:string => ([:abbr, :align, :axis, :bg_color, :ch, :ch_off, :height, :v_align, :width]), :bool => ([:no_wrap]))
584
+ end
585
+ # do nothing
586
+ class TableHeaderCell < TableCell
587
+ attributes(:string => ([:scope]))
588
+ end
589
+ class TableHeaderCellCollection < ElementCollection
590
+ def element_class
591
+ TableHeaderCell
592
+ end
593
+ end
594
+ class TableDataCell < TableCell
595
+ # do nothing
596
+ end
597
+ class TableDataCellCollection < ElementCollection
598
+ def element_class
599
+ TableDataCell
600
+ end
601
+ end
602
+ class Quote < HTMLElement
603
+ attributes(:string => ([:cite]))
604
+ end
605
+ class QuoteCollection < ElementCollection
606
+ def element_class
607
+ Quote
608
+ end
609
+ end
610
+ class Div < HTMLElement
611
+ # do nothing
612
+ end
613
+ class DivCollection < ElementCollection
614
+ def element_class
615
+ Div
616
+ end
617
+ end
618
+ class Div < HTMLElement
619
+ attributes(:string => ([:align]))
620
+ end
621
+ # do nothing
622
+
623
+ class Device < HTMLElement
624
+ attributes(:string => ([:type, :data]))
625
+ end
626
+ class DeviceCollection < ElementCollection
627
+ def element_class
628
+ Device
629
+ end
630
+ end
631
+
632
+
633
+ class Output < HTMLElement
634
+ attributes(:token_list => ([:html_for]), :string => ([:name, :type, :default_value, :value, :validity, :validation_message]), :list => ([:labels]), :html_element => ([:form]), :bool => ([:will_validate]))
635
+ end
636
+ class OutputCollection < ElementCollection
637
+ def element_class
638
+ Output
639
+ end
640
+ end
641
+ class Track < HTMLElement
642
+ attributes(:string => ([:kind, :label, :src, :srclang, :track]))
643
+ end
644
+ class TrackCollection < ElementCollection
645
+ def element_class
646
+ Track
647
+ end
648
+ end
649
+
650
+
651
+ class Embed < HTMLElement
652
+ attributes(:string => ([:src, :type, :width, :height]))
653
+ end
654
+ class EmbedCollection < ElementCollection
655
+ def element_class
656
+ Embed
657
+ end
658
+ end
659
+ class Embed < HTMLElement
660
+ attributes(:string => ([:align, :name]))
661
+ end
662
+ # do nothing
663
+
664
+
665
+
666
+ class Area < HTMLElement
667
+ attributes(:token_list => ([:rel_list]), :string => ([:alt, :coords, :shape, :href, :target, :ping, :rel, :media, :hreflang, :type, :protocol, :host, :hostname, :port, :pathname, :search, :hash]))
668
+ end
669
+ class AreaCollection < ElementCollection
670
+ def element_class
671
+ Area
672
+ end
673
+ end
674
+ class Area < HTMLElement
675
+ attributes(:bool => ([:no_href]))
676
+ end
677
+ # do nothing
678
+
679
+ class OList < HTMLElement
680
+ attributes(:int => ([:start]), :bool => ([:reversed]))
681
+ end
682
+ class OListCollection < ElementCollection
683
+ def element_class
684
+ OList
685
+ end
686
+ end
687
+ class OList < HTMLElement
688
+ attributes(:string => ([:type]), :bool => ([:compact]))
689
+ end
690
+ # do nothing
691
+
692
+ class Unknown < HTMLElement
693
+ # do nothing
694
+ end
695
+ class UnknownCollection < ElementCollection
696
+ def element_class
697
+ Unknown
698
+ end
699
+ end
700
+ class Button < HTMLElement
701
+ attributes(:string => ([:form_action, :form_enctype, :form_method, :form_no_validate, :form_target, :name, :type, :value, :validity, :validation_message]), :list => ([:labels]), :html_element => ([:form]), :bool => ([:autofocus, :disabled, :will_validate]))
702
+ end
703
+ class ButtonCollection < ElementCollection
704
+ def element_class
705
+ Button
706
+ end
707
+ end
708
+ class Html < HTMLElement
709
+ # do nothing
710
+ end
711
+ class HtmlCollection < ElementCollection
712
+ def element_class
713
+ Html
714
+ end
715
+ end
716
+ class Html < HTMLElement
717
+ attributes(:string => ([:version]))
718
+ end
719
+ # do nothing
720
+ class Title < HTMLElement
721
+ attributes(:string => ([:text]))
722
+ end
723
+ class TitleCollection < ElementCollection
724
+ def element_class
725
+ Title
726
+ end
727
+ end
728
+ class FieldSet < HTMLElement
729
+ attributes(:string => ([:name, :type, :validity, :validation_message]), :html_element => ([:form]), :html_collection => ([:elements]), :bool => ([:disabled, :will_validate]))
730
+ end
731
+ class FieldSetCollection < ElementCollection
732
+ def element_class
733
+ FieldSet
734
+ end
735
+ end
736
+ class Details < HTMLElement
737
+ attributes(:bool => ([:open]))
738
+ end
739
+ class DetailsCollection < ElementCollection
740
+ def element_class
741
+ Details
742
+ end
743
+ end
744
+
745
+
746
+ class BaseFont < HTMLElement
747
+ attributes(:string => ([:color, :face]), :int => ([:size]))
748
+ end
749
+ class BaseFontCollection < ElementCollection
750
+ def element_class
751
+ BaseFont
752
+ end
753
+ end
754
+ module Container
755
+ #
756
+ # @return [Anchor]
757
+ #
758
+
759
+ def a(*args)
760
+ Anchor.new(self, extract_selector(args).merge(:tag_name => "a"))
761
+ end
762
+
763
+ #
764
+ # @return [AnchorCollection]
765
+ #
766
+
767
+ def as(*args)
768
+ AnchorCollection.new(self, extract_selector(args).merge(:tag_name => "a"))
769
+ end
770
+
771
+ Watir.tag_to_class[:a] = Anchor
772
+ #
773
+ # @return [HTMLElement]
774
+ #
775
+
776
+ def abbr(*args)
777
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "abbr"))
778
+ end
779
+
780
+ #
781
+ # @return [HTMLElementCollection]
782
+ #
783
+
784
+ def abbrs(*args)
785
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "abbr"))
786
+ end
787
+
788
+ Watir.tag_to_class[:abbr] = HTMLElement
789
+ #
790
+ # @return [HTMLElement]
791
+ #
792
+
793
+ def address(*args)
794
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "address"))
795
+ end
796
+
797
+ #
798
+ # @return [HTMLElementCollection]
799
+ #
800
+
801
+ def addresses(*args)
802
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "address"))
803
+ end
804
+
805
+ Watir.tag_to_class[:address] = HTMLElement
806
+ #
807
+ # @return [Area]
808
+ #
809
+
810
+ def area(*args)
811
+ Area.new(self, extract_selector(args).merge(:tag_name => "area"))
812
+ end
813
+
814
+ #
815
+ # @return [AreaCollection]
816
+ #
817
+
818
+ def areas(*args)
819
+ AreaCollection.new(self, extract_selector(args).merge(:tag_name => "area"))
820
+ end
821
+
822
+ Watir.tag_to_class[:area] = Area
823
+ #
824
+ # @return [HTMLElement]
825
+ #
826
+
827
+ def article(*args)
828
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "article"))
829
+ end
830
+
831
+ #
832
+ # @return [HTMLElementCollection]
833
+ #
834
+
835
+ def articles(*args)
836
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "article"))
837
+ end
838
+
839
+ Watir.tag_to_class[:article] = HTMLElement
840
+ #
841
+ # @return [HTMLElement]
842
+ #
843
+
844
+ def aside(*args)
845
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "aside"))
846
+ end
847
+
848
+ #
849
+ # @return [HTMLElementCollection]
850
+ #
851
+
852
+ def asides(*args)
853
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "aside"))
854
+ end
855
+
856
+ Watir.tag_to_class[:aside] = HTMLElement
857
+ #
858
+ # @return [Audio]
859
+ #
860
+
861
+ def audio(*args)
862
+ Audio.new(self, extract_selector(args).merge(:tag_name => "audio"))
863
+ end
864
+
865
+ #
866
+ # @return [AudioCollection]
867
+ #
868
+
869
+ def audios(*args)
870
+ AudioCollection.new(self, extract_selector(args).merge(:tag_name => "audio"))
871
+ end
872
+
873
+ Watir.tag_to_class[:audio] = Audio
874
+ #
875
+ # @return [HTMLElement]
876
+ #
877
+
878
+ def b(*args)
879
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "b"))
880
+ end
881
+
882
+ #
883
+ # @return [HTMLElementCollection]
884
+ #
885
+
886
+ def bs(*args)
887
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "b"))
888
+ end
889
+
890
+ Watir.tag_to_class[:b] = HTMLElement
891
+ #
892
+ # @return [Base]
893
+ #
894
+
895
+ def base(*args)
896
+ Base.new(self, extract_selector(args).merge(:tag_name => "base"))
897
+ end
898
+
899
+ #
900
+ # @return [BaseCollection]
901
+ #
902
+
903
+ def bases(*args)
904
+ BaseCollection.new(self, extract_selector(args).merge(:tag_name => "base"))
905
+ end
906
+
907
+ Watir.tag_to_class[:base] = Base
908
+ #
909
+ # @return [HTMLElement]
910
+ #
911
+
912
+ def bdo(*args)
913
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "bdo"))
914
+ end
915
+
916
+ #
917
+ # @return [HTMLElementCollection]
918
+ #
919
+
920
+ def bdos(*args)
921
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "bdo"))
922
+ end
923
+
924
+ Watir.tag_to_class[:bdo] = HTMLElement
925
+ #
926
+ # @return [Quote]
927
+ #
928
+
929
+ def blockquote(*args)
930
+ Quote.new(self, extract_selector(args).merge(:tag_name => "blockquote"))
931
+ end
932
+
933
+ #
934
+ # @return [QuoteCollection]
935
+ #
936
+
937
+ def blockquotes(*args)
938
+ QuoteCollection.new(self, extract_selector(args).merge(:tag_name => "blockquote"))
939
+ end
940
+
941
+ Watir.tag_to_class[:blockquote] = Quote
942
+ #
943
+ # @return [Body]
944
+ #
945
+
946
+ def body(*args)
947
+ Body.new(self, extract_selector(args).merge(:tag_name => "body"))
948
+ end
949
+
950
+ #
951
+ # @return [BodyCollection]
952
+ #
953
+
954
+ def bodys(*args)
955
+ BodyCollection.new(self, extract_selector(args).merge(:tag_name => "body"))
956
+ end
957
+
958
+ Watir.tag_to_class[:body] = Body
959
+ #
960
+ # @return [BR]
961
+ #
962
+
963
+ def br(*args)
964
+ BR.new(self, extract_selector(args).merge(:tag_name => "br"))
965
+ end
966
+
967
+ #
968
+ # @return [BRCollection]
969
+ #
970
+
971
+ def brs(*args)
972
+ BRCollection.new(self, extract_selector(args).merge(:tag_name => "br"))
973
+ end
974
+
975
+ Watir.tag_to_class[:br] = BR
976
+ #
977
+ # @return [Button]
978
+ #
979
+
980
+ def button(*args)
981
+ Button.new(self, extract_selector(args).merge(:tag_name => "button"))
982
+ end
983
+
984
+ #
985
+ # @return [ButtonCollection]
986
+ #
987
+
988
+ def buttons(*args)
989
+ ButtonCollection.new(self, extract_selector(args).merge(:tag_name => "button"))
990
+ end
991
+
992
+ Watir.tag_to_class[:button] = Button
993
+ #
994
+ # @return [Canvas]
995
+ #
996
+
997
+ def canvas(*args)
998
+ Canvas.new(self, extract_selector(args).merge(:tag_name => "canvas"))
999
+ end
1000
+
1001
+ #
1002
+ # @return [CanvasCollection]
1003
+ #
1004
+
1005
+ def canvases(*args)
1006
+ CanvasCollection.new(self, extract_selector(args).merge(:tag_name => "canvas"))
1007
+ end
1008
+
1009
+ Watir.tag_to_class[:canvas] = Canvas
1010
+ #
1011
+ # @return [TableCaption]
1012
+ #
1013
+
1014
+ def caption(*args)
1015
+ TableCaption.new(self, extract_selector(args).merge(:tag_name => "caption"))
1016
+ end
1017
+
1018
+ #
1019
+ # @return [TableCaptionCollection]
1020
+ #
1021
+
1022
+ def captions(*args)
1023
+ TableCaptionCollection.new(self, extract_selector(args).merge(:tag_name => "caption"))
1024
+ end
1025
+
1026
+ Watir.tag_to_class[:caption] = TableCaption
1027
+ #
1028
+ # @return [HTMLElement]
1029
+ #
1030
+
1031
+ def cite(*args)
1032
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "cite"))
1033
+ end
1034
+
1035
+ #
1036
+ # @return [HTMLElementCollection]
1037
+ #
1038
+
1039
+ def cites(*args)
1040
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "cite"))
1041
+ end
1042
+
1043
+ Watir.tag_to_class[:cite] = HTMLElement
1044
+ #
1045
+ # @return [HTMLElement]
1046
+ #
1047
+
1048
+ def code(*args)
1049
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "code"))
1050
+ end
1051
+
1052
+ #
1053
+ # @return [HTMLElementCollection]
1054
+ #
1055
+
1056
+ def codes(*args)
1057
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "code"))
1058
+ end
1059
+
1060
+ Watir.tag_to_class[:code] = HTMLElement
1061
+ #
1062
+ # @return [TableCol]
1063
+ #
1064
+
1065
+ def col(*args)
1066
+ TableCol.new(self, extract_selector(args).merge(:tag_name => "col"))
1067
+ end
1068
+
1069
+ #
1070
+ # @return [TableColCollection]
1071
+ #
1072
+
1073
+ def cols(*args)
1074
+ TableColCollection.new(self, extract_selector(args).merge(:tag_name => "col"))
1075
+ end
1076
+
1077
+ Watir.tag_to_class[:col] = TableCol
1078
+ #
1079
+ # @return [TableCol]
1080
+ #
1081
+
1082
+ def colgroup(*args)
1083
+ TableCol.new(self, extract_selector(args).merge(:tag_name => "colgroup"))
1084
+ end
1085
+
1086
+ #
1087
+ # @return [TableColCollection]
1088
+ #
1089
+
1090
+ def colgroups(*args)
1091
+ TableColCollection.new(self, extract_selector(args).merge(:tag_name => "colgroup"))
1092
+ end
1093
+
1094
+ Watir.tag_to_class[:colgroup] = TableCol
1095
+ #
1096
+ # @return [Command]
1097
+ #
1098
+
1099
+ def command(*args)
1100
+ Command.new(self, extract_selector(args).merge(:tag_name => "command"))
1101
+ end
1102
+
1103
+ #
1104
+ # @return [CommandCollection]
1105
+ #
1106
+
1107
+ def commands(*args)
1108
+ CommandCollection.new(self, extract_selector(args).merge(:tag_name => "command"))
1109
+ end
1110
+
1111
+ Watir.tag_to_class[:command] = Command
1112
+ #
1113
+ # @return [DataList]
1114
+ #
1115
+
1116
+ def datalist(*args)
1117
+ DataList.new(self, extract_selector(args).merge(:tag_name => "datalist"))
1118
+ end
1119
+
1120
+ #
1121
+ # @return [DataListCollection]
1122
+ #
1123
+
1124
+ def datalists(*args)
1125
+ DataListCollection.new(self, extract_selector(args).merge(:tag_name => "datalist"))
1126
+ end
1127
+
1128
+ Watir.tag_to_class[:datalist] = DataList
1129
+ #
1130
+ # @return [HTMLElement]
1131
+ #
1132
+
1133
+ def dd(*args)
1134
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "dd"))
1135
+ end
1136
+
1137
+ #
1138
+ # @return [HTMLElementCollection]
1139
+ #
1140
+
1141
+ def dds(*args)
1142
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "dd"))
1143
+ end
1144
+
1145
+ Watir.tag_to_class[:dd] = HTMLElement
1146
+ #
1147
+ # @return [Mod]
1148
+ #
1149
+
1150
+ def del(*args)
1151
+ Mod.new(self, extract_selector(args).merge(:tag_name => "del"))
1152
+ end
1153
+
1154
+ #
1155
+ # @return [ModCollection]
1156
+ #
1157
+
1158
+ def dels(*args)
1159
+ ModCollection.new(self, extract_selector(args).merge(:tag_name => "del"))
1160
+ end
1161
+
1162
+ Watir.tag_to_class[:del] = Mod
1163
+ #
1164
+ # @return [Details]
1165
+ #
1166
+
1167
+ def details(*args)
1168
+ Details.new(self, extract_selector(args).merge(:tag_name => "details"))
1169
+ end
1170
+
1171
+ #
1172
+ # @return [DetailsCollection]
1173
+ #
1174
+
1175
+ def details(*args)
1176
+ DetailsCollection.new(self, extract_selector(args).merge(:tag_name => "details"))
1177
+ end
1178
+
1179
+ Watir.tag_to_class[:details] = Details
1180
+ #
1181
+ # @return [HTMLElement]
1182
+ #
1183
+
1184
+ def dfn(*args)
1185
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "dfn"))
1186
+ end
1187
+
1188
+ #
1189
+ # @return [HTMLElementCollection]
1190
+ #
1191
+
1192
+ def dfns(*args)
1193
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "dfn"))
1194
+ end
1195
+
1196
+ Watir.tag_to_class[:dfn] = HTMLElement
1197
+ #
1198
+ # @return [Div]
1199
+ #
1200
+
1201
+ def div(*args)
1202
+ Div.new(self, extract_selector(args).merge(:tag_name => "div"))
1203
+ end
1204
+
1205
+ #
1206
+ # @return [DivCollection]
1207
+ #
1208
+
1209
+ def divs(*args)
1210
+ DivCollection.new(self, extract_selector(args).merge(:tag_name => "div"))
1211
+ end
1212
+
1213
+ Watir.tag_to_class[:div] = Div
1214
+ #
1215
+ # @return [DList]
1216
+ #
1217
+
1218
+ def dl(*args)
1219
+ DList.new(self, extract_selector(args).merge(:tag_name => "dl"))
1220
+ end
1221
+
1222
+ #
1223
+ # @return [DListCollection]
1224
+ #
1225
+
1226
+ def dls(*args)
1227
+ DListCollection.new(self, extract_selector(args).merge(:tag_name => "dl"))
1228
+ end
1229
+
1230
+ Watir.tag_to_class[:dl] = DList
1231
+ #
1232
+ # @return [HTMLElement]
1233
+ #
1234
+
1235
+ def dt(*args)
1236
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "dt"))
1237
+ end
1238
+
1239
+ #
1240
+ # @return [HTMLElementCollection]
1241
+ #
1242
+
1243
+ def dts(*args)
1244
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "dt"))
1245
+ end
1246
+
1247
+ Watir.tag_to_class[:dt] = HTMLElement
1248
+ #
1249
+ # @return [HTMLElement]
1250
+ #
1251
+
1252
+ def em(*args)
1253
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "em"))
1254
+ end
1255
+
1256
+ #
1257
+ # @return [HTMLElementCollection]
1258
+ #
1259
+
1260
+ def ems(*args)
1261
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "em"))
1262
+ end
1263
+
1264
+ Watir.tag_to_class[:em] = HTMLElement
1265
+ #
1266
+ # @return [Embed]
1267
+ #
1268
+
1269
+ def embed(*args)
1270
+ Embed.new(self, extract_selector(args).merge(:tag_name => "embed"))
1271
+ end
1272
+
1273
+ #
1274
+ # @return [EmbedCollection]
1275
+ #
1276
+
1277
+ def embeds(*args)
1278
+ EmbedCollection.new(self, extract_selector(args).merge(:tag_name => "embed"))
1279
+ end
1280
+
1281
+ Watir.tag_to_class[:embed] = Embed
1282
+ #
1283
+ # @return [FieldSet]
1284
+ #
1285
+
1286
+ def fieldset(*args)
1287
+ FieldSet.new(self, extract_selector(args).merge(:tag_name => "fieldset"))
1288
+ end
1289
+
1290
+ #
1291
+ # @return [FieldSetCollection]
1292
+ #
1293
+
1294
+ def fieldsets(*args)
1295
+ FieldSetCollection.new(self, extract_selector(args).merge(:tag_name => "fieldset"))
1296
+ end
1297
+
1298
+ Watir.tag_to_class[:fieldset] = FieldSet
1299
+ #
1300
+ # @return [HTMLElement]
1301
+ #
1302
+
1303
+ def figcaption(*args)
1304
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "figcaption"))
1305
+ end
1306
+
1307
+ #
1308
+ # @return [HTMLElementCollection]
1309
+ #
1310
+
1311
+ def figcaptions(*args)
1312
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "figcaption"))
1313
+ end
1314
+
1315
+ Watir.tag_to_class[:figcaption] = HTMLElement
1316
+ #
1317
+ # @return [HTMLElement]
1318
+ #
1319
+
1320
+ def figure(*args)
1321
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "figure"))
1322
+ end
1323
+
1324
+ #
1325
+ # @return [HTMLElementCollection]
1326
+ #
1327
+
1328
+ def figures(*args)
1329
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "figure"))
1330
+ end
1331
+
1332
+ Watir.tag_to_class[:figure] = HTMLElement
1333
+ #
1334
+ # @return [HTMLElement]
1335
+ #
1336
+
1337
+ def footer(*args)
1338
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "footer"))
1339
+ end
1340
+
1341
+ #
1342
+ # @return [HTMLElementCollection]
1343
+ #
1344
+
1345
+ def footers(*args)
1346
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "footer"))
1347
+ end
1348
+
1349
+ Watir.tag_to_class[:footer] = HTMLElement
1350
+ #
1351
+ # @return [Form]
1352
+ #
1353
+
1354
+ def form(*args)
1355
+ Form.new(self, extract_selector(args).merge(:tag_name => "form"))
1356
+ end
1357
+
1358
+ #
1359
+ # @return [FormCollection]
1360
+ #
1361
+
1362
+ def forms(*args)
1363
+ FormCollection.new(self, extract_selector(args).merge(:tag_name => "form"))
1364
+ end
1365
+
1366
+ Watir.tag_to_class[:form] = Form
1367
+ #
1368
+ # @return [Heading]
1369
+ #
1370
+
1371
+ def h1(*args)
1372
+ Heading.new(self, extract_selector(args).merge(:tag_name => "h1"))
1373
+ end
1374
+
1375
+ #
1376
+ # @return [HeadingCollection]
1377
+ #
1378
+
1379
+ def h1s(*args)
1380
+ HeadingCollection.new(self, extract_selector(args).merge(:tag_name => "h1"))
1381
+ end
1382
+
1383
+ Watir.tag_to_class[:h1] = Heading
1384
+ #
1385
+ # @return [Heading]
1386
+ #
1387
+
1388
+ def h2(*args)
1389
+ Heading.new(self, extract_selector(args).merge(:tag_name => "h2"))
1390
+ end
1391
+
1392
+ #
1393
+ # @return [HeadingCollection]
1394
+ #
1395
+
1396
+ def h2s(*args)
1397
+ HeadingCollection.new(self, extract_selector(args).merge(:tag_name => "h2"))
1398
+ end
1399
+
1400
+ Watir.tag_to_class[:h2] = Heading
1401
+ #
1402
+ # @return [Heading]
1403
+ #
1404
+
1405
+ def h3(*args)
1406
+ Heading.new(self, extract_selector(args).merge(:tag_name => "h3"))
1407
+ end
1408
+
1409
+ #
1410
+ # @return [HeadingCollection]
1411
+ #
1412
+
1413
+ def h3s(*args)
1414
+ HeadingCollection.new(self, extract_selector(args).merge(:tag_name => "h3"))
1415
+ end
1416
+
1417
+ Watir.tag_to_class[:h3] = Heading
1418
+ #
1419
+ # @return [Heading]
1420
+ #
1421
+
1422
+ def h4(*args)
1423
+ Heading.new(self, extract_selector(args).merge(:tag_name => "h4"))
1424
+ end
1425
+
1426
+ #
1427
+ # @return [HeadingCollection]
1428
+ #
1429
+
1430
+ def h4s(*args)
1431
+ HeadingCollection.new(self, extract_selector(args).merge(:tag_name => "h4"))
1432
+ end
1433
+
1434
+ Watir.tag_to_class[:h4] = Heading
1435
+ #
1436
+ # @return [Heading]
1437
+ #
1438
+
1439
+ def h5(*args)
1440
+ Heading.new(self, extract_selector(args).merge(:tag_name => "h5"))
1441
+ end
1442
+
1443
+ #
1444
+ # @return [HeadingCollection]
1445
+ #
1446
+
1447
+ def h5s(*args)
1448
+ HeadingCollection.new(self, extract_selector(args).merge(:tag_name => "h5"))
1449
+ end
1450
+
1451
+ Watir.tag_to_class[:h5] = Heading
1452
+ #
1453
+ # @return [Heading]
1454
+ #
1455
+
1456
+ def h6(*args)
1457
+ Heading.new(self, extract_selector(args).merge(:tag_name => "h6"))
1458
+ end
1459
+
1460
+ #
1461
+ # @return [HeadingCollection]
1462
+ #
1463
+
1464
+ def h6s(*args)
1465
+ HeadingCollection.new(self, extract_selector(args).merge(:tag_name => "h6"))
1466
+ end
1467
+
1468
+ Watir.tag_to_class[:h6] = Heading
1469
+ #
1470
+ # @return [Head]
1471
+ #
1472
+
1473
+ def head(*args)
1474
+ Head.new(self, extract_selector(args).merge(:tag_name => "head"))
1475
+ end
1476
+
1477
+ #
1478
+ # @return [HeadCollection]
1479
+ #
1480
+
1481
+ def heads(*args)
1482
+ HeadCollection.new(self, extract_selector(args).merge(:tag_name => "head"))
1483
+ end
1484
+
1485
+ Watir.tag_to_class[:head] = Head
1486
+ #
1487
+ # @return [HTMLElement]
1488
+ #
1489
+
1490
+ def header(*args)
1491
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "header"))
1492
+ end
1493
+
1494
+ #
1495
+ # @return [HTMLElementCollection]
1496
+ #
1497
+
1498
+ def headers(*args)
1499
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "header"))
1500
+ end
1501
+
1502
+ Watir.tag_to_class[:header] = HTMLElement
1503
+ #
1504
+ # @return [HTMLElement]
1505
+ #
1506
+
1507
+ def hgroup(*args)
1508
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "hgroup"))
1509
+ end
1510
+
1511
+ #
1512
+ # @return [HTMLElementCollection]
1513
+ #
1514
+
1515
+ def hgroups(*args)
1516
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "hgroup"))
1517
+ end
1518
+
1519
+ Watir.tag_to_class[:hgroup] = HTMLElement
1520
+ #
1521
+ # @return [HR]
1522
+ #
1523
+
1524
+ def hr(*args)
1525
+ HR.new(self, extract_selector(args).merge(:tag_name => "hr"))
1526
+ end
1527
+
1528
+ #
1529
+ # @return [HRCollection]
1530
+ #
1531
+
1532
+ def hrs(*args)
1533
+ HRCollection.new(self, extract_selector(args).merge(:tag_name => "hr"))
1534
+ end
1535
+
1536
+ Watir.tag_to_class[:hr] = HR
1537
+ #
1538
+ # @return [Html]
1539
+ #
1540
+
1541
+ def html(*args)
1542
+ Html.new(self, extract_selector(args).merge(:tag_name => "html"))
1543
+ end
1544
+
1545
+ #
1546
+ # @return [HtmlCollection]
1547
+ #
1548
+
1549
+ def htmls(*args)
1550
+ HtmlCollection.new(self, extract_selector(args).merge(:tag_name => "html"))
1551
+ end
1552
+
1553
+ Watir.tag_to_class[:html] = Html
1554
+ #
1555
+ # @return [HTMLElement]
1556
+ #
1557
+
1558
+ def i(*args)
1559
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "i"))
1560
+ end
1561
+
1562
+ #
1563
+ # @return [HTMLElementCollection]
1564
+ #
1565
+
1566
+ def is(*args)
1567
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "i"))
1568
+ end
1569
+
1570
+ Watir.tag_to_class[:i] = HTMLElement
1571
+ #
1572
+ # @return [IFrame]
1573
+ #
1574
+
1575
+ def iframe(*args)
1576
+ IFrame.new(self, extract_selector(args).merge(:tag_name => "iframe"))
1577
+ end
1578
+
1579
+ #
1580
+ # @return [IFrameCollection]
1581
+ #
1582
+
1583
+ def iframes(*args)
1584
+ IFrameCollection.new(self, extract_selector(args).merge(:tag_name => "iframe"))
1585
+ end
1586
+
1587
+ Watir.tag_to_class[:iframe] = IFrame
1588
+ #
1589
+ # @return [Image]
1590
+ #
1591
+
1592
+ def image(*args)
1593
+ Image.new(self, extract_selector(args).merge(:tag_name => "img"))
1594
+ end
1595
+
1596
+ #
1597
+ # @return [ImageCollection]
1598
+ #
1599
+
1600
+ def images(*args)
1601
+ ImageCollection.new(self, extract_selector(args).merge(:tag_name => "img"))
1602
+ end
1603
+
1604
+ Watir.tag_to_class[:img] = Image
1605
+ #
1606
+ # @return [Input]
1607
+ #
1608
+
1609
+ def input(*args)
1610
+ Input.new(self, extract_selector(args).merge(:tag_name => "input"))
1611
+ end
1612
+
1613
+ #
1614
+ # @return [InputCollection]
1615
+ #
1616
+
1617
+ def inputs(*args)
1618
+ InputCollection.new(self, extract_selector(args).merge(:tag_name => "input"))
1619
+ end
1620
+
1621
+ Watir.tag_to_class[:input] = Input
1622
+ #
1623
+ # @return [Mod]
1624
+ #
1625
+
1626
+ def ins(*args)
1627
+ Mod.new(self, extract_selector(args).merge(:tag_name => "ins"))
1628
+ end
1629
+
1630
+ #
1631
+ # @return [ModCollection]
1632
+ #
1633
+
1634
+ def inses(*args)
1635
+ ModCollection.new(self, extract_selector(args).merge(:tag_name => "ins"))
1636
+ end
1637
+
1638
+ Watir.tag_to_class[:ins] = Mod
1639
+ #
1640
+ # @return [HTMLElement]
1641
+ #
1642
+
1643
+ def kbd(*args)
1644
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "kbd"))
1645
+ end
1646
+
1647
+ #
1648
+ # @return [HTMLElementCollection]
1649
+ #
1650
+
1651
+ def kbds(*args)
1652
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "kbd"))
1653
+ end
1654
+
1655
+ Watir.tag_to_class[:kbd] = HTMLElement
1656
+ #
1657
+ # @return [Keygen]
1658
+ #
1659
+
1660
+ def keygen(*args)
1661
+ Keygen.new(self, extract_selector(args).merge(:tag_name => "keygen"))
1662
+ end
1663
+
1664
+ #
1665
+ # @return [KeygenCollection]
1666
+ #
1667
+
1668
+ def keygens(*args)
1669
+ KeygenCollection.new(self, extract_selector(args).merge(:tag_name => "keygen"))
1670
+ end
1671
+
1672
+ Watir.tag_to_class[:keygen] = Keygen
1673
+ #
1674
+ # @return [Label]
1675
+ #
1676
+
1677
+ def label(*args)
1678
+ Label.new(self, extract_selector(args).merge(:tag_name => "label"))
1679
+ end
1680
+
1681
+ #
1682
+ # @return [LabelCollection]
1683
+ #
1684
+
1685
+ def labels(*args)
1686
+ LabelCollection.new(self, extract_selector(args).merge(:tag_name => "label"))
1687
+ end
1688
+
1689
+ Watir.tag_to_class[:label] = Label
1690
+ #
1691
+ # @return [Legend]
1692
+ #
1693
+
1694
+ def legend(*args)
1695
+ Legend.new(self, extract_selector(args).merge(:tag_name => "legend"))
1696
+ end
1697
+
1698
+ #
1699
+ # @return [LegendCollection]
1700
+ #
1701
+
1702
+ def legends(*args)
1703
+ LegendCollection.new(self, extract_selector(args).merge(:tag_name => "legend"))
1704
+ end
1705
+
1706
+ Watir.tag_to_class[:legend] = Legend
1707
+ #
1708
+ # @return [LI]
1709
+ #
1710
+
1711
+ def li(*args)
1712
+ LI.new(self, extract_selector(args).merge(:tag_name => "li"))
1713
+ end
1714
+
1715
+ #
1716
+ # @return [LICollection]
1717
+ #
1718
+
1719
+ def lis(*args)
1720
+ LICollection.new(self, extract_selector(args).merge(:tag_name => "li"))
1721
+ end
1722
+
1723
+ Watir.tag_to_class[:li] = LI
1724
+ #
1725
+ # @return [Map]
1726
+ #
1727
+
1728
+ def map(*args)
1729
+ Map.new(self, extract_selector(args).merge(:tag_name => "map"))
1730
+ end
1731
+
1732
+ #
1733
+ # @return [MapCollection]
1734
+ #
1735
+
1736
+ def maps(*args)
1737
+ MapCollection.new(self, extract_selector(args).merge(:tag_name => "map"))
1738
+ end
1739
+
1740
+ Watir.tag_to_class[:map] = Map
1741
+ #
1742
+ # @return [HTMLElement]
1743
+ #
1744
+
1745
+ def mark(*args)
1746
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "mark"))
1747
+ end
1748
+
1749
+ #
1750
+ # @return [HTMLElementCollection]
1751
+ #
1752
+
1753
+ def marks(*args)
1754
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "mark"))
1755
+ end
1756
+
1757
+ Watir.tag_to_class[:mark] = HTMLElement
1758
+ #
1759
+ # @return [Menu]
1760
+ #
1761
+
1762
+ def menu(*args)
1763
+ Menu.new(self, extract_selector(args).merge(:tag_name => "menu"))
1764
+ end
1765
+
1766
+ #
1767
+ # @return [MenuCollection]
1768
+ #
1769
+
1770
+ def menus(*args)
1771
+ MenuCollection.new(self, extract_selector(args).merge(:tag_name => "menu"))
1772
+ end
1773
+
1774
+ Watir.tag_to_class[:menu] = Menu
1775
+ #
1776
+ # @return [Meta]
1777
+ #
1778
+
1779
+ def meta(*args)
1780
+ Meta.new(self, extract_selector(args).merge(:tag_name => "meta"))
1781
+ end
1782
+
1783
+ #
1784
+ # @return [MetaCollection]
1785
+ #
1786
+
1787
+ def metas(*args)
1788
+ MetaCollection.new(self, extract_selector(args).merge(:tag_name => "meta"))
1789
+ end
1790
+
1791
+ Watir.tag_to_class[:meta] = Meta
1792
+ #
1793
+ # @return [Meter]
1794
+ #
1795
+
1796
+ def meter(*args)
1797
+ Meter.new(self, extract_selector(args).merge(:tag_name => "meter"))
1798
+ end
1799
+
1800
+ #
1801
+ # @return [MeterCollection]
1802
+ #
1803
+
1804
+ def meters(*args)
1805
+ MeterCollection.new(self, extract_selector(args).merge(:tag_name => "meter"))
1806
+ end
1807
+
1808
+ Watir.tag_to_class[:meter] = Meter
1809
+ #
1810
+ # @return [HTMLElement]
1811
+ #
1812
+
1813
+ def nav(*args)
1814
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "nav"))
1815
+ end
1816
+
1817
+ #
1818
+ # @return [HTMLElementCollection]
1819
+ #
1820
+
1821
+ def navs(*args)
1822
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "nav"))
1823
+ end
1824
+
1825
+ Watir.tag_to_class[:nav] = HTMLElement
1826
+ #
1827
+ # @return [HTMLElement]
1828
+ #
1829
+
1830
+ def noscript(*args)
1831
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "noscript"))
1832
+ end
1833
+
1834
+ #
1835
+ # @return [HTMLElementCollection]
1836
+ #
1837
+
1838
+ def noscripts(*args)
1839
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "noscript"))
1840
+ end
1841
+
1842
+ Watir.tag_to_class[:noscript] = HTMLElement
1843
+ #
1844
+ # @return [Object]
1845
+ #
1846
+
1847
+ def object(*args)
1848
+ Object.new(self, extract_selector(args).merge(:tag_name => "object"))
1849
+ end
1850
+
1851
+ #
1852
+ # @return [ObjectCollection]
1853
+ #
1854
+
1855
+ def objects(*args)
1856
+ ObjectCollection.new(self, extract_selector(args).merge(:tag_name => "object"))
1857
+ end
1858
+
1859
+ Watir.tag_to_class[:object] = Object
1860
+ #
1861
+ # @return [OList]
1862
+ #
1863
+
1864
+ def ol(*args)
1865
+ OList.new(self, extract_selector(args).merge(:tag_name => "ol"))
1866
+ end
1867
+
1868
+ #
1869
+ # @return [OListCollection]
1870
+ #
1871
+
1872
+ def ols(*args)
1873
+ OListCollection.new(self, extract_selector(args).merge(:tag_name => "ol"))
1874
+ end
1875
+
1876
+ Watir.tag_to_class[:ol] = OList
1877
+ #
1878
+ # @return [OptGroup]
1879
+ #
1880
+
1881
+ def optgroup(*args)
1882
+ OptGroup.new(self, extract_selector(args).merge(:tag_name => "optgroup"))
1883
+ end
1884
+
1885
+ #
1886
+ # @return [OptGroupCollection]
1887
+ #
1888
+
1889
+ def optgroups(*args)
1890
+ OptGroupCollection.new(self, extract_selector(args).merge(:tag_name => "optgroup"))
1891
+ end
1892
+
1893
+ Watir.tag_to_class[:optgroup] = OptGroup
1894
+ #
1895
+ # @return [Option]
1896
+ #
1897
+
1898
+ def option(*args)
1899
+ Option.new(self, extract_selector(args).merge(:tag_name => "option"))
1900
+ end
1901
+
1902
+ #
1903
+ # @return [OptionCollection]
1904
+ #
1905
+
1906
+ def options(*args)
1907
+ OptionCollection.new(self, extract_selector(args).merge(:tag_name => "option"))
1908
+ end
1909
+
1910
+ Watir.tag_to_class[:option] = Option
1911
+ #
1912
+ # @return [Output]
1913
+ #
1914
+
1915
+ def output(*args)
1916
+ Output.new(self, extract_selector(args).merge(:tag_name => "output"))
1917
+ end
1918
+
1919
+ #
1920
+ # @return [OutputCollection]
1921
+ #
1922
+
1923
+ def outputs(*args)
1924
+ OutputCollection.new(self, extract_selector(args).merge(:tag_name => "output"))
1925
+ end
1926
+
1927
+ Watir.tag_to_class[:output] = Output
1928
+ #
1929
+ # @return [Paragraph]
1930
+ #
1931
+
1932
+ def p(*args)
1933
+ Paragraph.new(self, extract_selector(args).merge(:tag_name => "p"))
1934
+ end
1935
+
1936
+ #
1937
+ # @return [ParagraphCollection]
1938
+ #
1939
+
1940
+ def ps(*args)
1941
+ ParagraphCollection.new(self, extract_selector(args).merge(:tag_name => "p"))
1942
+ end
1943
+
1944
+ Watir.tag_to_class[:p] = Paragraph
1945
+ #
1946
+ # @return [Param]
1947
+ #
1948
+
1949
+ def param(*args)
1950
+ Param.new(self, extract_selector(args).merge(:tag_name => "param"))
1951
+ end
1952
+
1953
+ #
1954
+ # @return [ParamCollection]
1955
+ #
1956
+
1957
+ def params(*args)
1958
+ ParamCollection.new(self, extract_selector(args).merge(:tag_name => "param"))
1959
+ end
1960
+
1961
+ Watir.tag_to_class[:param] = Param
1962
+ #
1963
+ # @return [Pre]
1964
+ #
1965
+
1966
+ def pre(*args)
1967
+ Pre.new(self, extract_selector(args).merge(:tag_name => "pre"))
1968
+ end
1969
+
1970
+ #
1971
+ # @return [PreCollection]
1972
+ #
1973
+
1974
+ def pres(*args)
1975
+ PreCollection.new(self, extract_selector(args).merge(:tag_name => "pre"))
1976
+ end
1977
+
1978
+ Watir.tag_to_class[:pre] = Pre
1979
+ #
1980
+ # @return [Progress]
1981
+ #
1982
+
1983
+ def progress(*args)
1984
+ Progress.new(self, extract_selector(args).merge(:tag_name => "progress"))
1985
+ end
1986
+
1987
+ #
1988
+ # @return [ProgressCollection]
1989
+ #
1990
+
1991
+ def progresses(*args)
1992
+ ProgressCollection.new(self, extract_selector(args).merge(:tag_name => "progress"))
1993
+ end
1994
+
1995
+ Watir.tag_to_class[:progress] = Progress
1996
+ #
1997
+ # @return [Quote]
1998
+ #
1999
+
2000
+ def q(*args)
2001
+ Quote.new(self, extract_selector(args).merge(:tag_name => "q"))
2002
+ end
2003
+
2004
+ #
2005
+ # @return [QuoteCollection]
2006
+ #
2007
+
2008
+ def qs(*args)
2009
+ QuoteCollection.new(self, extract_selector(args).merge(:tag_name => "q"))
2010
+ end
2011
+
2012
+ Watir.tag_to_class[:q] = Quote
2013
+ #
2014
+ # @return [HTMLElement]
2015
+ #
2016
+
2017
+ def rp(*args)
2018
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "rp"))
2019
+ end
2020
+
2021
+ #
2022
+ # @return [HTMLElementCollection]
2023
+ #
2024
+
2025
+ def rps(*args)
2026
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "rp"))
2027
+ end
2028
+
2029
+ Watir.tag_to_class[:rp] = HTMLElement
2030
+ #
2031
+ # @return [HTMLElement]
2032
+ #
2033
+
2034
+ def rt(*args)
2035
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "rt"))
2036
+ end
2037
+
2038
+ #
2039
+ # @return [HTMLElementCollection]
2040
+ #
2041
+
2042
+ def rts(*args)
2043
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "rt"))
2044
+ end
2045
+
2046
+ Watir.tag_to_class[:rt] = HTMLElement
2047
+ #
2048
+ # @return [HTMLElement]
2049
+ #
2050
+
2051
+ def ruby(*args)
2052
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "ruby"))
2053
+ end
2054
+
2055
+ #
2056
+ # @return [HTMLElementCollection]
2057
+ #
2058
+
2059
+ def rubies(*args)
2060
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "ruby"))
2061
+ end
2062
+
2063
+ Watir.tag_to_class[:ruby] = HTMLElement
2064
+ #
2065
+ # @return [HTMLElement]
2066
+ #
2067
+
2068
+ def samp(*args)
2069
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "samp"))
2070
+ end
2071
+
2072
+ #
2073
+ # @return [HTMLElementCollection]
2074
+ #
2075
+
2076
+ def samps(*args)
2077
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "samp"))
2078
+ end
2079
+
2080
+ Watir.tag_to_class[:samp] = HTMLElement
2081
+ #
2082
+ # @return [Script]
2083
+ #
2084
+
2085
+ def script(*args)
2086
+ Script.new(self, extract_selector(args).merge(:tag_name => "script"))
2087
+ end
2088
+
2089
+ #
2090
+ # @return [ScriptCollection]
2091
+ #
2092
+
2093
+ def scripts(*args)
2094
+ ScriptCollection.new(self, extract_selector(args).merge(:tag_name => "script"))
2095
+ end
2096
+
2097
+ Watir.tag_to_class[:script] = Script
2098
+ #
2099
+ # @return [HTMLElement]
2100
+ #
2101
+
2102
+ def section(*args)
2103
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "section"))
2104
+ end
2105
+
2106
+ #
2107
+ # @return [HTMLElementCollection]
2108
+ #
2109
+
2110
+ def sections(*args)
2111
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "section"))
2112
+ end
2113
+
2114
+ Watir.tag_to_class[:section] = HTMLElement
2115
+ #
2116
+ # @return [Select]
2117
+ #
2118
+
2119
+ def select(*args)
2120
+ Select.new(self, extract_selector(args).merge(:tag_name => "select"))
2121
+ end
2122
+
2123
+ #
2124
+ # @return [SelectCollection]
2125
+ #
2126
+
2127
+ def selects(*args)
2128
+ SelectCollection.new(self, extract_selector(args).merge(:tag_name => "select"))
2129
+ end
2130
+
2131
+ Watir.tag_to_class[:select] = Select
2132
+ #
2133
+ # @return [HTMLElement]
2134
+ #
2135
+
2136
+ def small(*args)
2137
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "small"))
2138
+ end
2139
+
2140
+ #
2141
+ # @return [HTMLElementCollection]
2142
+ #
2143
+
2144
+ def smalls(*args)
2145
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "small"))
2146
+ end
2147
+
2148
+ Watir.tag_to_class[:small] = HTMLElement
2149
+ #
2150
+ # @return [Source]
2151
+ #
2152
+
2153
+ def source(*args)
2154
+ Source.new(self, extract_selector(args).merge(:tag_name => "source"))
2155
+ end
2156
+
2157
+ #
2158
+ # @return [SourceCollection]
2159
+ #
2160
+
2161
+ def sources(*args)
2162
+ SourceCollection.new(self, extract_selector(args).merge(:tag_name => "source"))
2163
+ end
2164
+
2165
+ Watir.tag_to_class[:source] = Source
2166
+ #
2167
+ # @return [Span]
2168
+ #
2169
+
2170
+ def span(*args)
2171
+ Span.new(self, extract_selector(args).merge(:tag_name => "span"))
2172
+ end
2173
+
2174
+ #
2175
+ # @return [SpanCollection]
2176
+ #
2177
+
2178
+ def spans(*args)
2179
+ SpanCollection.new(self, extract_selector(args).merge(:tag_name => "span"))
2180
+ end
2181
+
2182
+ Watir.tag_to_class[:span] = Span
2183
+ #
2184
+ # @return [HTMLElement]
2185
+ #
2186
+
2187
+ def strong(*args)
2188
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "strong"))
2189
+ end
2190
+
2191
+ #
2192
+ # @return [HTMLElementCollection]
2193
+ #
2194
+
2195
+ def strongs(*args)
2196
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "strong"))
2197
+ end
2198
+
2199
+ Watir.tag_to_class[:strong] = HTMLElement
2200
+ #
2201
+ # @return [Style]
2202
+ #
2203
+
2204
+ def style(*args)
2205
+ Style.new(self, extract_selector(args).merge(:tag_name => "style"))
2206
+ end
2207
+
2208
+ #
2209
+ # @return [StyleCollection]
2210
+ #
2211
+
2212
+ def styles(*args)
2213
+ StyleCollection.new(self, extract_selector(args).merge(:tag_name => "style"))
2214
+ end
2215
+
2216
+ Watir.tag_to_class[:style] = Style
2217
+ #
2218
+ # @return [HTMLElement]
2219
+ #
2220
+
2221
+ def sub(*args)
2222
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "sub"))
2223
+ end
2224
+
2225
+ #
2226
+ # @return [HTMLElementCollection]
2227
+ #
2228
+
2229
+ def subs(*args)
2230
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "sub"))
2231
+ end
2232
+
2233
+ Watir.tag_to_class[:sub] = HTMLElement
2234
+ #
2235
+ # @return [HTMLElement]
2236
+ #
2237
+
2238
+ def summary(*args)
2239
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "summary"))
2240
+ end
2241
+
2242
+ #
2243
+ # @return [HTMLElementCollection]
2244
+ #
2245
+
2246
+ def summaries(*args)
2247
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "summary"))
2248
+ end
2249
+
2250
+ Watir.tag_to_class[:summary] = HTMLElement
2251
+ #
2252
+ # @return [HTMLElement]
2253
+ #
2254
+
2255
+ def sup(*args)
2256
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "sup"))
2257
+ end
2258
+
2259
+ #
2260
+ # @return [HTMLElementCollection]
2261
+ #
2262
+
2263
+ def sups(*args)
2264
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "sup"))
2265
+ end
2266
+
2267
+ Watir.tag_to_class[:sup] = HTMLElement
2268
+ #
2269
+ # @return [Table]
2270
+ #
2271
+
2272
+ def table(*args)
2273
+ Table.new(self, extract_selector(args).merge(:tag_name => "table"))
2274
+ end
2275
+
2276
+ #
2277
+ # @return [TableCollection]
2278
+ #
2279
+
2280
+ def tables(*args)
2281
+ TableCollection.new(self, extract_selector(args).merge(:tag_name => "table"))
2282
+ end
2283
+
2284
+ Watir.tag_to_class[:table] = Table
2285
+ #
2286
+ # @return [TableSection]
2287
+ #
2288
+
2289
+ def tbody(*args)
2290
+ TableSection.new(self, extract_selector(args).merge(:tag_name => "tbody"))
2291
+ end
2292
+
2293
+ #
2294
+ # @return [TableSectionCollection]
2295
+ #
2296
+
2297
+ def tbodys(*args)
2298
+ TableSectionCollection.new(self, extract_selector(args).merge(:tag_name => "tbody"))
2299
+ end
2300
+
2301
+ Watir.tag_to_class[:tbody] = TableSection
2302
+ #
2303
+ # @return [TableDataCell]
2304
+ #
2305
+
2306
+ def td(*args)
2307
+ TableDataCell.new(self, extract_selector(args).merge(:tag_name => "td"))
2308
+ end
2309
+
2310
+ #
2311
+ # @return [TableDataCellCollection]
2312
+ #
2313
+
2314
+ def tds(*args)
2315
+ TableDataCellCollection.new(self, extract_selector(args).merge(:tag_name => "td"))
2316
+ end
2317
+
2318
+ Watir.tag_to_class[:td] = TableDataCell
2319
+ #
2320
+ # @return [TextArea]
2321
+ #
2322
+
2323
+ def textarea(*args)
2324
+ TextArea.new(self, extract_selector(args).merge(:tag_name => "textarea"))
2325
+ end
2326
+
2327
+ #
2328
+ # @return [TextAreaCollection]
2329
+ #
2330
+
2331
+ def textareas(*args)
2332
+ TextAreaCollection.new(self, extract_selector(args).merge(:tag_name => "textarea"))
2333
+ end
2334
+
2335
+ Watir.tag_to_class[:textarea] = TextArea
2336
+ #
2337
+ # @return [TableSection]
2338
+ #
2339
+
2340
+ def tfoot(*args)
2341
+ TableSection.new(self, extract_selector(args).merge(:tag_name => "tfoot"))
2342
+ end
2343
+
2344
+ #
2345
+ # @return [TableSectionCollection]
2346
+ #
2347
+
2348
+ def tfoots(*args)
2349
+ TableSectionCollection.new(self, extract_selector(args).merge(:tag_name => "tfoot"))
2350
+ end
2351
+
2352
+ Watir.tag_to_class[:tfoot] = TableSection
2353
+ #
2354
+ # @return [TableHeaderCell]
2355
+ #
2356
+
2357
+ def th(*args)
2358
+ TableHeaderCell.new(self, extract_selector(args).merge(:tag_name => "th"))
2359
+ end
2360
+
2361
+ #
2362
+ # @return [TableHeaderCellCollection]
2363
+ #
2364
+
2365
+ def ths(*args)
2366
+ TableHeaderCellCollection.new(self, extract_selector(args).merge(:tag_name => "th"))
2367
+ end
2368
+
2369
+ Watir.tag_to_class[:th] = TableHeaderCell
2370
+ #
2371
+ # @return [TableSection]
2372
+ #
2373
+
2374
+ def thead(*args)
2375
+ TableSection.new(self, extract_selector(args).merge(:tag_name => "thead"))
2376
+ end
2377
+
2378
+ #
2379
+ # @return [TableSectionCollection]
2380
+ #
2381
+
2382
+ def theads(*args)
2383
+ TableSectionCollection.new(self, extract_selector(args).merge(:tag_name => "thead"))
2384
+ end
2385
+
2386
+ Watir.tag_to_class[:thead] = TableSection
2387
+ #
2388
+ # @return [Time]
2389
+ #
2390
+
2391
+ def time(*args)
2392
+ Time.new(self, extract_selector(args).merge(:tag_name => "time"))
2393
+ end
2394
+
2395
+ #
2396
+ # @return [TimeCollection]
2397
+ #
2398
+
2399
+ def times(*args)
2400
+ TimeCollection.new(self, extract_selector(args).merge(:tag_name => "time"))
2401
+ end
2402
+
2403
+ Watir.tag_to_class[:time] = Time
2404
+ #
2405
+ # @return [Title]
2406
+ #
2407
+
2408
+ def title(*args)
2409
+ Title.new(self, extract_selector(args).merge(:tag_name => "title"))
2410
+ end
2411
+
2412
+ #
2413
+ # @return [TitleCollection]
2414
+ #
2415
+
2416
+ def titles(*args)
2417
+ TitleCollection.new(self, extract_selector(args).merge(:tag_name => "title"))
2418
+ end
2419
+
2420
+ Watir.tag_to_class[:title] = Title
2421
+ #
2422
+ # @return [TableRow]
2423
+ #
2424
+
2425
+ def tr(*args)
2426
+ TableRow.new(self, extract_selector(args).merge(:tag_name => "tr"))
2427
+ end
2428
+
2429
+ #
2430
+ # @return [TableRowCollection]
2431
+ #
2432
+
2433
+ def trs(*args)
2434
+ TableRowCollection.new(self, extract_selector(args).merge(:tag_name => "tr"))
2435
+ end
2436
+
2437
+ Watir.tag_to_class[:tr] = TableRow
2438
+ #
2439
+ # @return [Track]
2440
+ #
2441
+
2442
+ def track(*args)
2443
+ Track.new(self, extract_selector(args).merge(:tag_name => "track"))
2444
+ end
2445
+
2446
+ #
2447
+ # @return [TrackCollection]
2448
+ #
2449
+
2450
+ def tracks(*args)
2451
+ TrackCollection.new(self, extract_selector(args).merge(:tag_name => "track"))
2452
+ end
2453
+
2454
+ Watir.tag_to_class[:track] = Track
2455
+ #
2456
+ # @return [UList]
2457
+ #
2458
+
2459
+ def ul(*args)
2460
+ UList.new(self, extract_selector(args).merge(:tag_name => "ul"))
2461
+ end
2462
+
2463
+ #
2464
+ # @return [UListCollection]
2465
+ #
2466
+
2467
+ def uls(*args)
2468
+ UListCollection.new(self, extract_selector(args).merge(:tag_name => "ul"))
2469
+ end
2470
+
2471
+ Watir.tag_to_class[:ul] = UList
2472
+ #
2473
+ # @return [HTMLElement]
2474
+ #
2475
+
2476
+ def var(*args)
2477
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "var"))
2478
+ end
2479
+
2480
+ #
2481
+ # @return [HTMLElementCollection]
2482
+ #
2483
+
2484
+ def vars(*args)
2485
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "var"))
2486
+ end
2487
+
2488
+ Watir.tag_to_class[:var] = HTMLElement
2489
+ #
2490
+ # @return [Video]
2491
+ #
2492
+
2493
+ def video(*args)
2494
+ Video.new(self, extract_selector(args).merge(:tag_name => "video"))
2495
+ end
2496
+
2497
+ #
2498
+ # @return [VideoCollection]
2499
+ #
2500
+
2501
+ def videos(*args)
2502
+ VideoCollection.new(self, extract_selector(args).merge(:tag_name => "video"))
2503
+ end
2504
+
2505
+ Watir.tag_to_class[:video] = Video
2506
+ #
2507
+ # @return [HTMLElement]
2508
+ #
2509
+
2510
+ def wbr(*args)
2511
+ HTMLElement.new(self, extract_selector(args).merge(:tag_name => "wbr"))
2512
+ end
2513
+
2514
+ #
2515
+ # @return [HTMLElementCollection]
2516
+ #
2517
+
2518
+ def wbrs(*args)
2519
+ HTMLElementCollection.new(self, extract_selector(args).merge(:tag_name => "wbr"))
2520
+ end
2521
+
2522
+ Watir.tag_to_class[:wbr] = HTMLElement
2523
+ end # Container
2524
+ end # Watir