watir 1.4.1 → 7.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (422) hide show
  1. checksums.yaml +7 -0
  2. data/.document +4 -0
  3. data/.github/ISSUE_TEMPLATE.md +16 -0
  4. data/.github/workflows/chrome.yml +55 -0
  5. data/.github/workflows/edge.yml +44 -0
  6. data/.github/workflows/firefox.yml +55 -0
  7. data/.github/workflows/ie.yml +30 -0
  8. data/.github/workflows/safari.yml +38 -0
  9. data/.github/workflows/unit.yml +60 -0
  10. data/.gitignore +21 -0
  11. data/.rubocop.yml +114 -0
  12. data/.rubocop_todo.yml +17 -0
  13. data/CHANGES.md +2212 -0
  14. data/Gemfile +15 -0
  15. data/LICENSE +24 -0
  16. data/README.md +113 -0
  17. data/Rakefile +173 -0
  18. data/lib/watir/adjacent.rb +128 -0
  19. data/lib/watir/after_hooks.rb +135 -0
  20. data/lib/watir/alert.rb +113 -0
  21. data/lib/watir/aliases.rb +8 -0
  22. data/lib/watir/attribute_helper.rb +97 -0
  23. data/lib/watir/browser.rb +323 -0
  24. data/lib/watir/capabilities.rb +179 -0
  25. data/lib/watir/cell_container.rb +25 -0
  26. data/lib/watir/container.rb +33 -0
  27. data/lib/watir/cookies.rb +130 -0
  28. data/lib/watir/element_collection.rb +223 -0
  29. data/lib/watir/elements/button.rb +28 -0
  30. data/lib/watir/elements/cell.rb +18 -0
  31. data/lib/watir/elements/checkbox.rb +56 -0
  32. data/lib/watir/elements/date_field.rb +42 -0
  33. data/lib/watir/elements/date_time_field.rb +42 -0
  34. data/lib/watir/elements/dlist.rb +12 -0
  35. data/lib/watir/elements/element.rb +807 -0
  36. data/lib/watir/elements/file_field.rb +43 -0
  37. data/lib/watir/elements/font.rb +26 -0
  38. data/lib/watir/elements/form.rb +16 -0
  39. data/lib/watir/elements/hidden.rb +26 -0
  40. data/lib/watir/elements/html_elements.rb +1981 -0
  41. data/lib/watir/elements/iframe.rb +156 -0
  42. data/lib/watir/elements/image.rb +22 -0
  43. data/lib/watir/elements/input.rb +15 -0
  44. data/lib/watir/elements/link.rb +8 -0
  45. data/lib/watir/elements/list.rb +51 -0
  46. data/lib/watir/elements/option.rb +60 -0
  47. data/lib/watir/elements/radio.rb +65 -0
  48. data/lib/watir/elements/row.rb +18 -0
  49. data/lib/watir/elements/select.rb +214 -0
  50. data/lib/watir/elements/svg_elements.rb +497 -0
  51. data/lib/watir/elements/table.rb +77 -0
  52. data/lib/watir/elements/table_cell.rb +32 -0
  53. data/lib/watir/elements/table_row.rb +34 -0
  54. data/lib/watir/elements/table_section.rb +17 -0
  55. data/lib/watir/elements/text_area.rb +7 -0
  56. data/lib/watir/elements/text_field.rb +39 -0
  57. data/lib/watir/exception.rb +16 -0
  58. data/lib/watir/extensions/nokogiri.rb +14 -0
  59. data/lib/watir/generator/base/generator.rb +114 -0
  60. data/lib/watir/generator/base/idl_sorter.rb +51 -0
  61. data/lib/watir/generator/base/spec_extractor.rb +158 -0
  62. data/lib/watir/generator/base/util.rb +21 -0
  63. data/lib/watir/generator/base/visitor.rb +133 -0
  64. data/lib/watir/generator/base.rb +12 -0
  65. data/lib/watir/generator/html/generator.rb +36 -0
  66. data/lib/watir/generator/html/spec_extractor.rb +52 -0
  67. data/lib/watir/generator/html/visitor.rb +23 -0
  68. data/lib/watir/generator/html.rb +17 -0
  69. data/lib/watir/generator/svg/generator.rb +38 -0
  70. data/lib/watir/generator/svg/spec_extractor.rb +55 -0
  71. data/lib/watir/generator/svg/visitor.rb +23 -0
  72. data/lib/watir/generator/svg.rb +9 -0
  73. data/lib/watir/generator.rb +5 -0
  74. data/lib/watir/has_window.rb +72 -0
  75. data/lib/watir/http_client.rb +11 -0
  76. data/lib/watir/js_execution.rb +165 -0
  77. data/lib/watir/js_snippets/attributeValues.js +11 -0
  78. data/lib/watir/js_snippets/backgroundColor.js +7 -0
  79. data/lib/watir/js_snippets/elementObscured.js +14 -0
  80. data/lib/watir/js_snippets/fireEvent.js +31 -0
  81. data/lib/watir/js_snippets/focus.js +3 -0
  82. data/lib/watir/js_snippets/getElementTags.js +3 -0
  83. data/lib/watir/js_snippets/getInnerHtml.js +19 -0
  84. data/lib/watir/js_snippets/getInnerText.js +19 -0
  85. data/lib/watir/js_snippets/getOuterHtml.js +20 -0
  86. data/lib/watir/js_snippets/getTextContent.js +19 -0
  87. data/lib/watir/js_snippets/isElementInViewport.js +20 -0
  88. data/lib/watir/js_snippets/isImageLoaded.js +3 -0
  89. data/lib/watir/js_snippets/selectOptionsLabel.js +10 -0
  90. data/lib/watir/js_snippets/selectOptionsText.js +10 -0
  91. data/lib/watir/js_snippets/selectOptionsValue.js +10 -0
  92. data/lib/watir/js_snippets/selectText.js +64 -0
  93. data/lib/watir/js_snippets/selectedOptions.js +11 -0
  94. data/lib/watir/js_snippets/selectedText.js +17 -0
  95. data/lib/watir/js_snippets/setText.js +3 -0
  96. data/lib/watir/js_snippets/setValue.js +3 -0
  97. data/lib/watir/js_snippets.rb +18 -0
  98. data/lib/watir/locators/anchor/selector_builder.rb +43 -0
  99. data/lib/watir/locators/button/matcher.rb +19 -0
  100. data/lib/watir/locators/button/selector_builder/xpath.rb +69 -0
  101. data/lib/watir/locators/button/selector_builder.rb +10 -0
  102. data/lib/watir/locators/cell/selector_builder/xpath.rb +23 -0
  103. data/lib/watir/locators/cell/selector_builder.rb +13 -0
  104. data/lib/watir/locators/element/locator.rb +81 -0
  105. data/lib/watir/locators/element/matcher.rb +118 -0
  106. data/lib/watir/locators/element/selector_builder/regexp_disassembler.rb +69 -0
  107. data/lib/watir/locators/element/selector_builder/xpath.rb +268 -0
  108. data/lib/watir/locators/element/selector_builder/xpath_support.rb +29 -0
  109. data/lib/watir/locators/element/selector_builder.rb +164 -0
  110. data/lib/watir/locators/option/matcher.rb +26 -0
  111. data/lib/watir/locators/option/selector_builder/xpath.rb +39 -0
  112. data/lib/watir/locators/option/selector_builder.rb +10 -0
  113. data/lib/watir/locators/row/selector_builder/xpath.rb +53 -0
  114. data/lib/watir/locators/row/selector_builder.rb +18 -0
  115. data/lib/watir/locators/text_area/selector_builder/xpath.rb +21 -0
  116. data/lib/watir/locators/text_area/selector_builder.rb +10 -0
  117. data/lib/watir/locators/text_field/matcher.rb +37 -0
  118. data/lib/watir/locators/text_field/selector_builder/xpath.rb +50 -0
  119. data/lib/watir/locators/text_field/selector_builder.rb +10 -0
  120. data/lib/watir/locators.rb +77 -0
  121. data/lib/watir/logger.rb +30 -0
  122. data/lib/watir/navigation.rb +51 -0
  123. data/lib/watir/radio_set.rb +230 -0
  124. data/lib/watir/row_container.rb +36 -0
  125. data/lib/watir/screenshot.rb +51 -0
  126. data/lib/watir/scroll.rb +95 -0
  127. data/lib/watir/search_context.rb +96 -0
  128. data/lib/watir/shadow_root.rb +60 -0
  129. data/lib/watir/user_editable.rb +85 -0
  130. data/lib/watir/version.rb +5 -0
  131. data/lib/watir/wait/timer.rb +52 -0
  132. data/lib/watir/wait.rb +171 -0
  133. data/lib/watir/window.rb +276 -0
  134. data/lib/watir/window_collection.rb +82 -0
  135. data/lib/watir.rb +108 -0
  136. data/lib/watirspec/guards.rb +65 -0
  137. data/lib/watirspec/implementation.rb +56 -0
  138. data/lib/watirspec/rake_tasks.rb +118 -0
  139. data/lib/watirspec/remote_server.rb +39 -0
  140. data/lib/watirspec/runner.rb +64 -0
  141. data/lib/watirspec/server/app.rb +86 -0
  142. data/lib/watirspec/server.rb +104 -0
  143. data/lib/watirspec.rb +93 -0
  144. data/spec/locator_spec_helper.rb +88 -0
  145. data/spec/spec_helper.rb +24 -0
  146. data/spec/unit/capabilities_spec.rb +670 -0
  147. data/spec/unit/element_locator_spec.rb +97 -0
  148. data/spec/unit/match_elements/button_spec.rb +76 -0
  149. data/spec/unit/match_elements/element_spec.rb +424 -0
  150. data/spec/unit/match_elements/text_field_spec.rb +84 -0
  151. data/spec/unit/selector_builder/anchor_spec.rb +59 -0
  152. data/spec/unit/selector_builder/button_spec.rb +217 -0
  153. data/spec/unit/selector_builder/cell_spec.rb +71 -0
  154. data/spec/unit/selector_builder/element_spec.rb +804 -0
  155. data/spec/unit/selector_builder/row_spec.rb +128 -0
  156. data/spec/unit/selector_builder/text_field_spec.rb +203 -0
  157. data/spec/unit/selector_builder/textarea_spec.rb +35 -0
  158. data/spec/unit/unit_helper.rb +4 -0
  159. data/spec/unit/wait_spec.rb +99 -0
  160. data/spec/watirspec/adjacent_spec.rb +256 -0
  161. data/spec/watirspec/after_hooks_spec.rb +204 -0
  162. data/spec/watirspec/alert_spec.rb +89 -0
  163. data/spec/watirspec/browser_spec.rb +536 -0
  164. data/spec/watirspec/capabilities_spec.rb +556 -0
  165. data/spec/watirspec/cookies_spec.rb +196 -0
  166. data/spec/watirspec/drag_and_drop_spec.rb +38 -0
  167. data/spec/watirspec/element_hidden_spec.rb +86 -0
  168. data/spec/watirspec/elements/area_spec.rb +69 -0
  169. data/spec/watirspec/elements/areas_spec.rb +44 -0
  170. data/spec/watirspec/elements/button_spec.rb +265 -0
  171. data/spec/watirspec/elements/buttons_spec.rb +57 -0
  172. data/spec/watirspec/elements/checkbox_spec.rb +290 -0
  173. data/spec/watirspec/elements/checkboxes_spec.rb +46 -0
  174. data/spec/watirspec/elements/collections_spec.rb +132 -0
  175. data/spec/watirspec/elements/date_field_spec.rb +209 -0
  176. data/spec/watirspec/elements/date_fields_spec.rb +46 -0
  177. data/spec/watirspec/elements/date_time_field_spec.rb +223 -0
  178. data/spec/watirspec/elements/date_time_fields_spec.rb +47 -0
  179. data/spec/watirspec/elements/dd_spec.rb +108 -0
  180. data/spec/watirspec/elements/dds_spec.rb +44 -0
  181. data/spec/watirspec/elements/del_spec.rb +113 -0
  182. data/spec/watirspec/elements/dels_spec.rb +42 -0
  183. data/spec/watirspec/elements/div_spec.rb +232 -0
  184. data/spec/watirspec/elements/divs_spec.rb +56 -0
  185. data/spec/watirspec/elements/dl_spec.rb +117 -0
  186. data/spec/watirspec/elements/dls_spec.rb +45 -0
  187. data/spec/watirspec/elements/dt_spec.rb +107 -0
  188. data/spec/watirspec/elements/dts_spec.rb +44 -0
  189. data/spec/watirspec/elements/element_spec.rb +1069 -0
  190. data/spec/watirspec/elements/elements_spec.rb +60 -0
  191. data/spec/watirspec/elements/em_spec.rb +85 -0
  192. data/spec/watirspec/elements/ems_spec.rb +45 -0
  193. data/spec/watirspec/elements/filefield_spec.rb +135 -0
  194. data/spec/watirspec/elements/filefields_spec.rb +45 -0
  195. data/spec/watirspec/elements/font_spec.rb +31 -0
  196. data/spec/watirspec/elements/form_spec.rb +70 -0
  197. data/spec/watirspec/elements/forms_spec.rb +46 -0
  198. data/spec/watirspec/elements/frame_spec.rb +117 -0
  199. data/spec/watirspec/elements/frames_spec.rb +43 -0
  200. data/spec/watirspec/elements/hidden_spec.rb +106 -0
  201. data/spec/watirspec/elements/hiddens_spec.rb +45 -0
  202. data/spec/watirspec/elements/hn_spec.rb +80 -0
  203. data/spec/watirspec/elements/hns_spec.rb +42 -0
  204. data/spec/watirspec/elements/iframe_spec.rb +244 -0
  205. data/spec/watirspec/elements/iframes_spec.rb +49 -0
  206. data/spec/watirspec/elements/image_spec.rb +160 -0
  207. data/spec/watirspec/elements/images_spec.rb +42 -0
  208. data/spec/watirspec/elements/input_spec.rb +17 -0
  209. data/spec/watirspec/elements/ins_spec.rb +113 -0
  210. data/spec/watirspec/elements/inses_spec.rb +42 -0
  211. data/spec/watirspec/elements/label_spec.rb +77 -0
  212. data/spec/watirspec/elements/labels_spec.rb +42 -0
  213. data/spec/watirspec/elements/li_spec.rb +99 -0
  214. data/spec/watirspec/elements/link_spec.rb +180 -0
  215. data/spec/watirspec/elements/links_spec.rb +66 -0
  216. data/spec/watirspec/elements/lis_spec.rb +44 -0
  217. data/spec/watirspec/elements/list_spec.rb +50 -0
  218. data/spec/watirspec/elements/map_spec.rb +78 -0
  219. data/spec/watirspec/elements/maps_spec.rb +43 -0
  220. data/spec/watirspec/elements/meta_spec.rb +27 -0
  221. data/spec/watirspec/elements/metas_spec.rb +42 -0
  222. data/spec/watirspec/elements/ol_spec.rb +63 -0
  223. data/spec/watirspec/elements/ols_spec.rb +42 -0
  224. data/spec/watirspec/elements/option_spec.rb +113 -0
  225. data/spec/watirspec/elements/p_spec.rb +102 -0
  226. data/spec/watirspec/elements/pre_spec.rb +100 -0
  227. data/spec/watirspec/elements/pres_spec.rb +42 -0
  228. data/spec/watirspec/elements/ps_spec.rb +42 -0
  229. data/spec/watirspec/elements/radio_spec.rb +259 -0
  230. data/spec/watirspec/elements/radios_spec.rb +45 -0
  231. data/spec/watirspec/elements/select_list_spec.rb +701 -0
  232. data/spec/watirspec/elements/select_lists_spec.rb +49 -0
  233. data/spec/watirspec/elements/span_spec.rb +119 -0
  234. data/spec/watirspec/elements/spans_spec.rb +42 -0
  235. data/spec/watirspec/elements/strong_spec.rb +78 -0
  236. data/spec/watirspec/elements/strongs_spec.rb +45 -0
  237. data/spec/watirspec/elements/table_spec.rb +210 -0
  238. data/spec/watirspec/elements/tables_spec.rb +44 -0
  239. data/spec/watirspec/elements/tbody_spec.rb +94 -0
  240. data/spec/watirspec/elements/tbodys_spec.rb +64 -0
  241. data/spec/watirspec/elements/td_spec.rb +92 -0
  242. data/spec/watirspec/elements/tds_spec.rb +55 -0
  243. data/spec/watirspec/elements/text_field_spec.rb +223 -0
  244. data/spec/watirspec/elements/text_fields_spec.rb +47 -0
  245. data/spec/watirspec/elements/textarea_spec.rb +30 -0
  246. data/spec/watirspec/elements/textareas_spec.rb +28 -0
  247. data/spec/watirspec/elements/tfoot_spec.rb +89 -0
  248. data/spec/watirspec/elements/tfoots_spec.rb +72 -0
  249. data/spec/watirspec/elements/thead_spec.rb +88 -0
  250. data/spec/watirspec/elements/theads_spec.rb +72 -0
  251. data/spec/watirspec/elements/tr_spec.rb +69 -0
  252. data/spec/watirspec/elements/trs_spec.rb +63 -0
  253. data/spec/watirspec/elements/ul_spec.rb +63 -0
  254. data/spec/watirspec/elements/uls_spec.rb +42 -0
  255. data/spec/watirspec/html/alerts.html +12 -0
  256. data/spec/watirspec/html/aria_attributes.html +9 -0
  257. data/spec/watirspec/html/child_frame.html +29 -0
  258. data/spec/watirspec/html/class_locator.html +11 -0
  259. data/spec/watirspec/html/clicks.html +19 -0
  260. data/spec/watirspec/html/closeable.html +21 -0
  261. data/spec/watirspec/html/collections.html +15 -0
  262. data/spec/watirspec/html/css/jquery-ui-1.8.17.custom.css +287 -0
  263. data/spec/watirspec/html/data_attributes.html +10 -0
  264. data/spec/watirspec/html/definition_lists.html +48 -0
  265. data/spec/watirspec/html/drag_and_drop.html +106 -0
  266. data/spec/watirspec/html/font.html +10 -0
  267. data/spec/watirspec/html/forms_with_input_elements.html +194 -0
  268. data/spec/watirspec/html/frame_1.html +22 -0
  269. data/spec/watirspec/html/frame_2.html +16 -0
  270. data/spec/watirspec/html/frames.html +11 -0
  271. data/spec/watirspec/html/iframe_1.html +22 -0
  272. data/spec/watirspec/html/iframes.html +15 -0
  273. data/spec/watirspec/html/images/button.png +0 -0
  274. data/spec/watirspec/html/images/circle.png +0 -0
  275. data/spec/watirspec/html/images/map.gif +0 -0
  276. data/spec/watirspec/html/images/map2.gif +0 -0
  277. data/spec/watirspec/html/images/originaltriangle.png +0 -0
  278. data/spec/watirspec/html/images/square.png +0 -0
  279. data/spec/watirspec/html/images/triangle.png +0 -0
  280. data/spec/watirspec/html/images.html +28 -0
  281. data/spec/watirspec/html/inner_outer.html +5 -0
  282. data/spec/watirspec/html/javascript/angular.min.js +332 -0
  283. data/spec/watirspec/html/javascript/helpers.js +16 -0
  284. data/spec/watirspec/html/javascript/jquery-1.7.1.min.js +4 -0
  285. data/spec/watirspec/html/javascript/jquery-ui-1.8.17.custom.min.js +68 -0
  286. data/spec/watirspec/html/keylogger.html +15 -0
  287. data/spec/watirspec/html/modal_dialog.html +9 -0
  288. data/spec/watirspec/html/multiple_ids.html +15 -0
  289. data/spec/watirspec/html/nested_elements.html +44 -0
  290. data/spec/watirspec/html/nested_frame_1.html +1 -0
  291. data/spec/watirspec/html/nested_frame_2.html +9 -0
  292. data/spec/watirspec/html/nested_frame_3.html +14 -0
  293. data/spec/watirspec/html/nested_frames.html +10 -0
  294. data/spec/watirspec/html/nested_iframe_2.html +12 -0
  295. data/spec/watirspec/html/nested_iframes.html +13 -0
  296. data/spec/watirspec/html/nested_tables.html +203 -0
  297. data/spec/watirspec/html/non_control_elements.html +145 -0
  298. data/spec/watirspec/html/obscured.html +36 -0
  299. data/spec/watirspec/html/removed_element.html +24 -0
  300. data/spec/watirspec/html/right_click.html +23 -0
  301. data/spec/watirspec/html/scroll.html +15 -0
  302. data/spec/watirspec/html/scroll_nested.html +17 -0
  303. data/spec/watirspec/html/scroll_nested_offscreen.html +18 -0
  304. data/spec/watirspec/html/shadow_dom.html +28 -0
  305. data/spec/watirspec/html/special_chars.html +15 -0
  306. data/spec/watirspec/html/sticky_elements.html +10 -0
  307. data/spec/watirspec/html/tables.html +121 -0
  308. data/spec/watirspec/html/timeout_window_location.html +19 -0
  309. data/spec/watirspec/html/uneven_table.html +20 -0
  310. data/spec/watirspec/html/wait.html +99 -0
  311. data/spec/watirspec/html/watirspec.css +0 -0
  312. data/spec/watirspec/html/window_switching.html +22 -0
  313. data/spec/watirspec/radio_set_spec.rb +346 -0
  314. data/spec/watirspec/screenshot_spec.rb +33 -0
  315. data/spec/watirspec/scroll_spec.rb +208 -0
  316. data/spec/watirspec/shadow_root_spec.rb +108 -0
  317. data/spec/watirspec/support/rspec_matchers.rb +161 -0
  318. data/spec/watirspec/user_editable_spec.rb +207 -0
  319. data/spec/watirspec/wait_spec.rb +345 -0
  320. data/spec/watirspec/window_switching_spec.rb +580 -0
  321. data/spec/watirspec_helper.rb +163 -0
  322. data/support/doctest_helper.rb +101 -0
  323. data/support/version_differ.rb +60 -0
  324. data/watir.gemspec +50 -0
  325. metadata +652 -148
  326. data/readme.rb +0 -211
  327. data/unittests/WindowLogonExample.rb +0 -30
  328. data/unittests/WindowLogonExtra.rb +0 -7
  329. data/unittests/all_tests.rb +0 -10
  330. data/unittests/all_tests_concurrent.rb +0 -57
  331. data/unittests/attachToExistingWindow_test.rb +0 -40
  332. data/unittests/buttons_test.rb +0 -131
  333. data/unittests/checkbox_test.rb +0 -149
  334. data/unittests/core_tests.rb +0 -9
  335. data/unittests/css_test.rb +0 -60
  336. data/unittests/div_test.rb +0 -179
  337. data/unittests/errorchecker_test.rb +0 -29
  338. data/unittests/filefield_test.rb +0 -35
  339. data/unittests/form_test.rb +0 -279
  340. data/unittests/frame_test.rb +0 -141
  341. data/unittests/html/blankpage.html +0 -12
  342. data/unittests/html/buttons1.html +0 -40
  343. data/unittests/html/checkboxes1.html +0 -69
  344. data/unittests/html/complex_table.html +0 -36
  345. data/unittests/html/cssTest.html +0 -42
  346. data/unittests/html/div.html +0 -105
  347. data/unittests/html/fileupload.html +0 -45
  348. data/unittests/html/formTest1.html +0 -39
  349. data/unittests/html/forms2.html +0 -45
  350. data/unittests/html/forms3.html +0 -132
  351. data/unittests/html/forms4.html +0 -27
  352. data/unittests/html/frame_buttons.html +0 -4
  353. data/unittests/html/frame_links.html +0 -4
  354. data/unittests/html/frame_multi.html +0 -5
  355. data/unittests/html/iframeTest.html +0 -13
  356. data/unittests/html/iframeTest1.html +0 -7
  357. data/unittests/html/iframeTest2.html +0 -6
  358. data/unittests/html/images/button.jpg +0 -0
  359. data/unittests/html/images/circle.jpg +0 -0
  360. data/unittests/html/images/originaltriangle.jpg +0 -0
  361. data/unittests/html/images/square.jpg +0 -0
  362. data/unittests/html/images/triangle.jpg +0 -0
  363. data/unittests/html/images1.html +0 -52
  364. data/unittests/html/javascriptevents.html +0 -39
  365. data/unittests/html/link_pass.html +0 -11
  366. data/unittests/html/links1.html +0 -37
  367. data/unittests/html/links2.html +0 -11
  368. data/unittests/html/nestedFrames.html +0 -6
  369. data/unittests/html/pass.html +0 -10
  370. data/unittests/html/popups1.html +0 -60
  371. data/unittests/html/radioButtons1.html +0 -71
  372. data/unittests/html/select_tealeaf.html +0 -54
  373. data/unittests/html/selectboxes1.html +0 -55
  374. data/unittests/html/simple_table.html +0 -26
  375. data/unittests/html/simple_table_buttons.html +0 -104
  376. data/unittests/html/simple_table_columns.html +0 -76
  377. data/unittests/html/table1.html +0 -142
  378. data/unittests/html/textarea.html +0 -30
  379. data/unittests/html/textfields1.html +0 -87
  380. data/unittests/html/textsearch.html +0 -44
  381. data/unittests/ie_mock.rb +0 -93
  382. data/unittests/ie_test.rb +0 -50
  383. data/unittests/images_test.rb +0 -179
  384. data/unittests/iostring.rb +0 -30
  385. data/unittests/iostring_test.rb +0 -48
  386. data/unittests/js_events_test.rb +0 -77
  387. data/unittests/jscriptExtraAlert.rb +0 -6
  388. data/unittests/jscriptExtraConfirmCancel.rb +0 -7
  389. data/unittests/jscriptExtraConfirmOk.rb +0 -7
  390. data/unittests/jscriptPushButton.rb +0 -5
  391. data/unittests/jscript_test.rb +0 -57
  392. data/unittests/links_test.rb +0 -169
  393. data/unittests/minmax_test.rb +0 -31
  394. data/unittests/navigate_test.rb +0 -56
  395. data/unittests/non_core_tests.rb +0 -9
  396. data/unittests/pagecontainstext_test.rb +0 -49
  397. data/unittests/popups_test.rb +0 -44
  398. data/unittests/radios_test.rb +0 -164
  399. data/unittests/screen_capture_test.rb +0 -53
  400. data/unittests/selectbox_test.rb +0 -197
  401. data/unittests/send_keys_test.rb +0 -29
  402. data/unittests/setup.rb +0 -47
  403. data/unittests/table_test.rb +0 -306
  404. data/unittests/textAreafields_test.rb +0 -81
  405. data/unittests/textfields_test.rb +0 -239
  406. data/watir/AutoItX3.dll +0 -0
  407. data/watir/WindowHelper.rb +0 -47
  408. data/watir/camel_case.rb +0 -37
  409. data/watir/clickJSDialog.rb +0 -19
  410. data/watir/cookiemanager.rb +0 -53
  411. data/watir/exceptions.rb +0 -60
  412. data/watir/screen_capture.rb +0 -115
  413. data/watir/setFileDialog.rb +0 -16
  414. data/watir/testUnitAddons.rb +0 -47
  415. data/watir/watir_simple.rb +0 -475
  416. data/watir/winClicker.rb +0 -505
  417. data/watir.rb +0 -3744
  418. /data/{unittests → spec/watirspec}/html/images/1.gif +0 -0
  419. /data/{unittests/html/images/2.GIF → spec/watirspec/html/images/2.gif} +0 -0
  420. /data/{unittests/html/images/3.GIF → spec/watirspec/html/images/3.gif} +0 -0
  421. /data/{unittests/html/images/minus.GIF → spec/watirspec/html/images/minus.gif} +0 -0
  422. /data/{unittests → spec/watirspec}/html/images/plus.gif +0 -0
@@ -0,0 +1,1981 @@
1
+ # Autogenerated from HTML specification. Edits may be lost.
2
+ module Watir
3
+ class HTMLElement < Element
4
+ attribute(String, :title, :title)
5
+ attribute(String, :lang, :lang)
6
+ attribute("Boolean", :translate?, :translate)
7
+ attribute(String, :dir, :dir)
8
+ attribute(String, :dataset, :dataset)
9
+ attribute("Boolean", :hidden?, :hidden)
10
+ attribute(Integer, :tabindex, :tabIndex)
11
+ attribute(String, :accesskey, :accessKey)
12
+ attribute("Boolean", :draggable?, :draggable)
13
+ attribute("Boolean", :spellcheck?, :spellcheck)
14
+ attribute(String, :innertext, :innerText)
15
+ attribute(String, :onabort, :onabort)
16
+ attribute(String, :onblur, :onblur)
17
+ attribute(String, :oncancel, :oncancel)
18
+ attribute(String, :oncanplay, :oncanplay)
19
+ attribute(String, :oncanplaythrough, :oncanplaythrough)
20
+ attribute(String, :onchange, :onchange)
21
+ attribute(String, :onclick, :onclick)
22
+ attribute(String, :onclose, :onclose)
23
+ attribute(String, :oncuechange, :oncuechange)
24
+ attribute(String, :ondblclick, :ondblclick)
25
+ attribute(String, :ondrag, :ondrag)
26
+ attribute(String, :ondragend, :ondragend)
27
+ attribute(String, :ondragenter, :ondragenter)
28
+ attribute(String, :ondragexit, :ondragexit)
29
+ attribute(String, :ondragleave, :ondragleave)
30
+ attribute(String, :ondragover, :ondragover)
31
+ attribute(String, :ondragstart, :ondragstart)
32
+ attribute(String, :ondrop, :ondrop)
33
+ attribute(String, :ondurationchange, :ondurationchange)
34
+ attribute(String, :onemptied, :onemptied)
35
+ attribute(String, :onended, :onended)
36
+ attribute(String, :onerror, :onerror)
37
+ attribute(String, :onfocus, :onfocus)
38
+ attribute(String, :oninput, :oninput)
39
+ attribute(String, :oninvalid, :oninvalid)
40
+ attribute(String, :onkeydown, :onkeydown)
41
+ attribute(String, :onkeypress, :onkeypress)
42
+ attribute(String, :onkeyup, :onkeyup)
43
+ attribute(String, :onload, :onload)
44
+ attribute(String, :onloadeddata, :onloadeddata)
45
+ attribute(String, :onloadedmetadata, :onloadedmetadata)
46
+ attribute(String, :onloadstart, :onloadstart)
47
+ attribute(String, :onmousedown, :onmousedown)
48
+ attribute(String, :onmouseenter, :onmouseenter)
49
+ attribute(String, :onmouseleave, :onmouseleave)
50
+ attribute(String, :onmousemove, :onmousemove)
51
+ attribute(String, :onmouseout, :onmouseout)
52
+ attribute(String, :onmouseover, :onmouseover)
53
+ attribute(String, :onmouseup, :onmouseup)
54
+ attribute(String, :onwheel, :onwheel)
55
+ attribute(String, :onpause, :onpause)
56
+ attribute(String, :onplay, :onplay)
57
+ attribute(String, :onplaying, :onplaying)
58
+ attribute(String, :onprogress, :onprogress)
59
+ attribute(String, :onratechange, :onratechange)
60
+ attribute(String, :onreset, :onreset)
61
+ attribute(String, :onresize, :onresize)
62
+ attribute(String, :onscroll, :onscroll)
63
+ attribute(String, :onseeked, :onseeked)
64
+ attribute(String, :onseeking, :onseeking)
65
+ attribute(String, :onselect, :onselect)
66
+ attribute(String, :onshow, :onshow)
67
+ attribute(String, :onstalled, :onstalled)
68
+ attribute(String, :onsubmit, :onsubmit)
69
+ attribute(String, :onsuspend, :onsuspend)
70
+ attribute(String, :ontimeupdate, :ontimeupdate)
71
+ attribute(String, :ontoggle, :ontoggle)
72
+ attribute(String, :onvolumechange, :onvolumechange)
73
+ attribute(String, :onwaiting, :onwaiting)
74
+ attribute(String, :oncopy, :oncopy)
75
+ attribute(String, :oncut, :oncut)
76
+ attribute(String, :onpaste, :onpaste)
77
+ attribute(String, :content_editable, :contentEditable)
78
+ attribute("Boolean", :content_editable?, :isContentEditable)
79
+ end
80
+ class HTMLElementCollection < ElementCollection
81
+ end
82
+
83
+ class Font < HTMLElement
84
+ attribute(String, :color, :color)
85
+ attribute(String, :face, :face)
86
+ end
87
+ class FontCollection < ElementCollection
88
+ end
89
+
90
+ class Directory < HTMLElement
91
+ attribute("Boolean", :compact?, :compact)
92
+ end
93
+ class DirectoryCollection < ElementCollection
94
+ end
95
+
96
+ class FrameSet < HTMLElement
97
+ attribute(String, :cols, :cols)
98
+ attribute(String, :onafterprint, :onafterprint)
99
+ attribute(String, :onbeforeprint, :onbeforeprint)
100
+ attribute(String, :onbeforeunload, :onbeforeunload)
101
+ attribute(String, :onhashchange, :onhashchange)
102
+ attribute(String, :onlanguagechange, :onlanguagechange)
103
+ attribute(String, :onmessage, :onmessage)
104
+ attribute(String, :onoffline, :onoffline)
105
+ attribute(String, :ononline, :ononline)
106
+ attribute(String, :onpagehide, :onpagehide)
107
+ attribute(String, :onpageshow, :onpageshow)
108
+ attribute(String, :onrejectionhandled, :onrejectionhandled)
109
+ attribute(String, :onpopstate, :onpopstate)
110
+ attribute(String, :onstorage, :onstorage)
111
+ attribute(String, :onunhandledrejection, :onunhandledrejection)
112
+ attribute(String, :onunload, :onunload)
113
+ end
114
+ class FrameSetCollection < ElementCollection
115
+ end
116
+
117
+ class Marquee < HTMLElement
118
+ attribute(String, :behavior, :behavior)
119
+ attribute(String, :bgcolor, :bgColor)
120
+ attribute(String, :direction, :direction)
121
+ attribute(Integer, :hspace, :hspace)
122
+ attribute(Integer, :loop, :loop)
123
+ attribute(Integer, :scrollamount, :scrollAmount)
124
+ attribute(Integer, :scrolldelay, :scrollDelay)
125
+ attribute("Boolean", :truespeed?, :trueSpeed)
126
+ attribute(Integer, :vspace, :vspace)
127
+ attribute(String, :onbounce, :onbounce)
128
+ attribute(String, :onfinish, :onfinish)
129
+ attribute(String, :onstart, :onstart)
130
+ end
131
+ class MarqueeCollection < ElementCollection
132
+ end
133
+
134
+ class Applet < HTMLElement
135
+ attribute(String, :align, :align)
136
+ attribute(String, :alt, :alt)
137
+ attribute(String, :archive, :archive)
138
+ attribute(String, :code, :code)
139
+ attribute(String, :codebase, :codeBase)
140
+ attribute(Integer, :hspace, :hspace)
141
+ attribute(String, :name, :name)
142
+ attribute(String, :object, :object)
143
+ attribute(Integer, :vspace, :vspace)
144
+ end
145
+ class AppletCollection < ElementCollection
146
+ end
147
+
148
+ class Canvas < HTMLElement
149
+ end
150
+ class CanvasCollection < ElementCollection
151
+ end
152
+
153
+ class Template < HTMLElement
154
+ attribute(String, :content, :content)
155
+ end
156
+ class TemplateCollection < ElementCollection
157
+ end
158
+
159
+ class Script < HTMLElement
160
+ attribute(String, :src, :src)
161
+ attribute(String, :type, :type)
162
+ attribute(String, :charset, :charset)
163
+ attribute("Boolean", :async?, :async)
164
+ attribute("Boolean", :defer?, :defer)
165
+ attribute(String, :crossorigin, :crossOrigin)
166
+ attribute(String, :nonce, :nonce)
167
+ attribute(String, :event, :event)
168
+ attribute(String, :for, :htmlFor)
169
+ end
170
+ class ScriptCollection < ElementCollection
171
+ end
172
+
173
+ class Dialog < HTMLElement
174
+ attribute("Boolean", :open?, :open)
175
+ attribute(String, :returnvalue, :returnValue)
176
+ end
177
+ class DialogCollection < ElementCollection
178
+ end
179
+
180
+ class Details < HTMLElement
181
+ attribute("Boolean", :open?, :open)
182
+ end
183
+ class DetailsCollection < ElementCollection
184
+ end
185
+
186
+ class Legend < HTMLElement
187
+ attribute(String, :form, :form)
188
+ attribute(String, :align, :align)
189
+ end
190
+ class LegendCollection < ElementCollection
191
+ end
192
+
193
+ class FieldSet < HTMLElement
194
+ attribute("Boolean", :disabled?, :disabled)
195
+ attribute(String, :form, :form)
196
+ attribute(String, :name, :name)
197
+ attribute(String, :type, :type)
198
+ attribute("Boolean", :willvalidate?, :willValidate)
199
+ attribute(String, :validity, :validity)
200
+ attribute(String, :validationmessage, :validationMessage)
201
+ end
202
+ class FieldSetCollection < ElementCollection
203
+ end
204
+
205
+ class Meter < HTMLElement
206
+ attribute(Float, :value, :value)
207
+ attribute(Float, :min, :min)
208
+ attribute(Float, :max, :max)
209
+ attribute(Float, :low, :low)
210
+ attribute(Float, :high, :high)
211
+ attribute(Float, :optimum, :optimum)
212
+ attribute(String, :labels, :labels)
213
+ end
214
+ class MeterCollection < ElementCollection
215
+ end
216
+
217
+ class Progress < HTMLElement
218
+ attribute(Float, :value, :value)
219
+ attribute(Float, :max, :max)
220
+ attribute(Float, :position, :position)
221
+ attribute(String, :labels, :labels)
222
+ end
223
+ class ProgressCollection < ElementCollection
224
+ end
225
+
226
+ class Output < HTMLElement
227
+ attribute(String, :for, :htmlFor)
228
+ attribute(String, :form, :form)
229
+ attribute(String, :name, :name)
230
+ attribute(String, :type, :type)
231
+ attribute(String, :defaultvalue, :defaultValue)
232
+ attribute(String, :value, :value)
233
+ attribute("Boolean", :willvalidate?, :willValidate)
234
+ attribute(String, :validity, :validity)
235
+ attribute(String, :validationmessage, :validationMessage)
236
+ attribute(String, :labels, :labels)
237
+ end
238
+ class OutputCollection < ElementCollection
239
+ end
240
+
241
+ class TextArea < HTMLElement
242
+ attribute(String, :autocomplete, :autocomplete)
243
+ attribute("Boolean", :autofocus?, :autofocus)
244
+ attribute(Integer, :cols, :cols)
245
+ attribute(String, :dirname, :dirName)
246
+ attribute("Boolean", :disabled?, :disabled)
247
+ attribute(String, :form, :form)
248
+ attribute(Integer, :maxlength, :maxLength)
249
+ attribute(Integer, :minlength, :minLength)
250
+ attribute(String, :name, :name)
251
+ attribute(String, :placeholder, :placeholder)
252
+ attribute("Boolean", :readonly?, :readOnly)
253
+ attribute("Boolean", :required?, :required)
254
+ attribute(String, :wrap, :wrap)
255
+ attribute(String, :type, :type)
256
+ attribute(String, :defaultvalue, :defaultValue)
257
+ attribute(String, :value, :value)
258
+ attribute(Integer, :textlength, :textLength)
259
+ attribute("Boolean", :willvalidate?, :willValidate)
260
+ attribute(String, :validity, :validity)
261
+ attribute(String, :validationmessage, :validationMessage)
262
+ attribute(String, :labels, :labels)
263
+ attribute(Integer, :selectionstart, :selectionStart)
264
+ attribute(Integer, :selectionend, :selectionEnd)
265
+ attribute(String, :selectiondirection, :selectionDirection)
266
+ end
267
+ class TextAreaCollection < ElementCollection
268
+ end
269
+
270
+ class Option < HTMLElement
271
+ attribute("Boolean", :disabled?, :disabled)
272
+ attribute(String, :form, :form)
273
+ attribute(String, :label, :label)
274
+ attribute("Boolean", :defaultselected?, :defaultSelected)
275
+ attribute(String, :value, :value)
276
+ attribute(Integer, :index, :index)
277
+ end
278
+ class OptionCollection < ElementCollection
279
+ end
280
+
281
+ class OptGroup < HTMLElement
282
+ attribute("Boolean", :disabled?, :disabled)
283
+ attribute(String, :label, :label)
284
+ end
285
+ class OptGroupCollection < ElementCollection
286
+ end
287
+
288
+ class DataList < HTMLElement
289
+ end
290
+ class DataListCollection < ElementCollection
291
+ end
292
+
293
+ class Select < HTMLElement
294
+ attribute(String, :autocomplete, :autocomplete)
295
+ attribute("Boolean", :autofocus?, :autofocus)
296
+ attribute("Boolean", :disabled?, :disabled)
297
+ attribute(String, :form, :form)
298
+ attribute("Boolean", :multiple?, :multiple)
299
+ attribute(String, :name, :name)
300
+ attribute("Boolean", :required?, :required)
301
+ attribute(String, :type, :type)
302
+ attribute(Integer, :length, :length)
303
+ attribute(String, :selectedoptions, :selectedOptions)
304
+ attribute(Integer, :selectedindex, :selectedIndex)
305
+ attribute(String, :value, :value)
306
+ attribute("Boolean", :willvalidate?, :willValidate)
307
+ attribute(String, :validity, :validity)
308
+ attribute(String, :validationmessage, :validationMessage)
309
+ attribute(String, :labels, :labels)
310
+ end
311
+ class SelectCollection < ElementCollection
312
+ end
313
+
314
+ class Button < HTMLElement
315
+ attribute("Boolean", :autofocus?, :autofocus)
316
+ attribute("Boolean", :disabled?, :disabled)
317
+ attribute(String, :form, :form)
318
+ attribute(String, :formaction, :formAction)
319
+ attribute(String, :formenctype, :formEnctype)
320
+ attribute(String, :formmethod, :formMethod)
321
+ attribute("Boolean", :formnovalidate?, :formNoValidate)
322
+ attribute(String, :formtarget, :formTarget)
323
+ attribute(String, :name, :name)
324
+ attribute(String, :type, :type)
325
+ attribute(String, :value, :value)
326
+ attribute("Boolean", :willvalidate?, :willValidate)
327
+ attribute(String, :validity, :validity)
328
+ attribute(String, :validationmessage, :validationMessage)
329
+ attribute(String, :labels, :labels)
330
+ end
331
+ class ButtonCollection < ElementCollection
332
+ end
333
+
334
+ class Input < HTMLElement
335
+ attribute(String, :accept, :accept)
336
+ attribute(String, :alt, :alt)
337
+ attribute(String, :autocomplete, :autocomplete)
338
+ attribute("Boolean", :autofocus?, :autofocus)
339
+ attribute("Boolean", :defaultchecked?, :defaultChecked)
340
+ attribute("Boolean", :checked?, :checked)
341
+ attribute(String, :dirname, :dirName)
342
+ attribute("Boolean", :disabled?, :disabled)
343
+ attribute(String, :form, :form)
344
+ attribute(String, :files, :files)
345
+ attribute(String, :formaction, :formAction)
346
+ attribute(String, :formenctype, :formEnctype)
347
+ attribute(String, :formmethod, :formMethod)
348
+ attribute("Boolean", :formnovalidate?, :formNoValidate)
349
+ attribute(String, :formtarget, :formTarget)
350
+ attribute("Boolean", :indeterminate?, :indeterminate)
351
+ attribute(String, :list, :list)
352
+ attribute(String, :max, :max)
353
+ attribute(Integer, :maxlength, :maxLength)
354
+ attribute(String, :min, :min)
355
+ attribute(Integer, :minlength, :minLength)
356
+ attribute("Boolean", :multiple?, :multiple)
357
+ attribute(String, :name, :name)
358
+ attribute(String, :pattern, :pattern)
359
+ attribute(String, :placeholder, :placeholder)
360
+ attribute("Boolean", :readonly?, :readOnly)
361
+ attribute("Boolean", :required?, :required)
362
+ attribute(String, :src, :src)
363
+ attribute(String, :step, :step)
364
+ attribute(String, :type, :type)
365
+ attribute(String, :defaultvalue, :defaultValue)
366
+ attribute(String, :value, :value)
367
+ attribute(String, :valueasdate, :valueAsDate)
368
+ attribute(Float, :valueasnumber, :valueAsNumber)
369
+ attribute("Boolean", :willvalidate?, :willValidate)
370
+ attribute(String, :validity, :validity)
371
+ attribute(String, :validationmessage, :validationMessage)
372
+ attribute(String, :labels, :labels)
373
+ attribute(Integer, :selectionstart, :selectionStart)
374
+ attribute(Integer, :selectionend, :selectionEnd)
375
+ attribute(String, :selectiondirection, :selectionDirection)
376
+ attribute(String, :align, :align)
377
+ attribute(String, :usemap, :useMap)
378
+ end
379
+ class InputCollection < ElementCollection
380
+ end
381
+
382
+ class Label < HTMLElement
383
+ attribute(String, :form, :form)
384
+ attribute(String, :for, :htmlFor)
385
+ attribute(String, :control, :control)
386
+ end
387
+ class LabelCollection < ElementCollection
388
+ end
389
+
390
+ class Form < HTMLElement
391
+ attribute(String, :accept_charset, :acceptCharset)
392
+ attribute(String, :action, :action)
393
+ attribute(String, :autocomplete, :autocomplete)
394
+ attribute(String, :enctype, :enctype)
395
+ attribute(String, :encoding, :encoding)
396
+ attribute(String, :method, :method)
397
+ attribute(String, :name, :name)
398
+ attribute("Boolean", :novalidate?, :noValidate)
399
+ attribute(String, :target, :target)
400
+ attribute(Integer, :length, :length)
401
+ end
402
+ class FormCollection < ElementCollection
403
+ end
404
+
405
+ class TableCell < HTMLElement
406
+ attribute(Integer, :colspan, :colSpan)
407
+ attribute(Integer, :rowspan, :rowSpan)
408
+ attribute(String, :headers, :headers)
409
+ attribute(Integer, :cellindex, :cellIndex)
410
+ attribute(String, :align, :align)
411
+ attribute(String, :axis, :axis)
412
+ attribute(String, :ch, :ch)
413
+ attribute(String, :choff, :chOff)
414
+ attribute("Boolean", :nowrap?, :noWrap)
415
+ attribute(String, :valign, :vAlign)
416
+ attribute(String, :bgcolor, :bgColor)
417
+ end
418
+ class TableCellCollection < ElementCollection
419
+ end
420
+
421
+ class TableHeaderCell < TableCell
422
+ attribute(String, :scope, :scope)
423
+ attribute(String, :abbr, :abbr)
424
+ end
425
+ class TableHeaderCellCollection < ElementCollection
426
+ end
427
+
428
+ class TableDataCell < TableCell
429
+ end
430
+ class TableDataCellCollection < ElementCollection
431
+ end
432
+
433
+ class TableRow < HTMLElement
434
+ attribute(Integer, :rowindex, :rowIndex)
435
+ attribute(Integer, :sectionrowindex, :sectionRowIndex)
436
+ attribute(String, :align, :align)
437
+ attribute(String, :ch, :ch)
438
+ attribute(String, :choff, :chOff)
439
+ attribute(String, :valign, :vAlign)
440
+ attribute(String, :bgcolor, :bgColor)
441
+ end
442
+ class TableRowCollection < ElementCollection
443
+ end
444
+
445
+ class TableSection < HTMLElement
446
+ attribute(String, :align, :align)
447
+ attribute(String, :ch, :ch)
448
+ attribute(String, :choff, :chOff)
449
+ attribute(String, :valign, :vAlign)
450
+ end
451
+ class TableSectionCollection < ElementCollection
452
+ end
453
+
454
+ class TableCol < HTMLElement
455
+ attribute(String, :align, :align)
456
+ attribute(String, :ch, :ch)
457
+ attribute(String, :choff, :chOff)
458
+ attribute(String, :valign, :vAlign)
459
+ end
460
+ class TableColCollection < ElementCollection
461
+ end
462
+
463
+ class TableCaption < HTMLElement
464
+ attribute(String, :align, :align)
465
+ end
466
+ class TableCaptionCollection < ElementCollection
467
+ end
468
+
469
+ class Table < HTMLElement
470
+ attribute(String, :tbodies, :tBodies)
471
+ attribute(String, :align, :align)
472
+ attribute(String, :border, :border)
473
+ attribute(String, :frame, :frame)
474
+ attribute(String, :rules, :rules)
475
+ attribute(String, :summary, :summary)
476
+ attribute(String, :bgcolor, :bgColor)
477
+ attribute(String, :cellpadding, :cellPadding)
478
+ attribute(String, :cellspacing, :cellSpacing)
479
+ end
480
+ class TableCollection < ElementCollection
481
+ end
482
+
483
+ class Area < HTMLElement
484
+ attribute(String, :alt, :alt)
485
+ attribute(String, :coords, :coords)
486
+ attribute(String, :shape, :shape)
487
+ attribute(String, :target, :target)
488
+ attribute(String, :download, :download)
489
+ attribute(String, :rel, :rel)
490
+ attribute(String, :rellist, :relList)
491
+ attribute(String, :hreflang, :hreflang)
492
+ attribute(String, :type, :type)
493
+ attribute(String, :referrerpolicy, :referrerPolicy)
494
+ attribute("Boolean", :nohref?, :noHref)
495
+ attribute(String, :href, :href)
496
+ attribute(String, :origin, :origin)
497
+ attribute(String, :protocol, :protocol)
498
+ attribute(String, :username, :username)
499
+ attribute(String, :password, :password)
500
+ attribute(String, :host, :host)
501
+ attribute(String, :hostname, :hostname)
502
+ attribute(String, :port, :port)
503
+ attribute(String, :pathname, :pathname)
504
+ attribute(String, :search, :search)
505
+ end
506
+ class AreaCollection < ElementCollection
507
+ end
508
+
509
+ class Map < HTMLElement
510
+ attribute(String, :name, :name)
511
+ attribute(String, :areas, :areas)
512
+ attribute(String, :images, :images)
513
+ end
514
+ class MapCollection < ElementCollection
515
+ end
516
+
517
+ class Media < HTMLElement
518
+ attribute(String, :error, :error)
519
+ attribute(String, :src, :src)
520
+ attribute(String, :srcobject, :srcObject)
521
+ attribute(String, :currentsrc, :currentSrc)
522
+ attribute(String, :crossorigin, :crossOrigin)
523
+ attribute(Integer, :networkstate, :networkState)
524
+ attribute(String, :preload, :preload)
525
+ attribute(String, :buffered, :buffered)
526
+ attribute(Integer, :readystate, :readyState)
527
+ attribute("Boolean", :seeking?, :seeking)
528
+ attribute(Float, :currenttime, :currentTime)
529
+ attribute(Float, :duration, :duration)
530
+ attribute("Boolean", :paused?, :paused)
531
+ attribute(Float, :defaultplaybackrate, :defaultPlaybackRate)
532
+ attribute(Float, :playbackrate, :playbackRate)
533
+ attribute(String, :played, :played)
534
+ attribute(String, :seekable, :seekable)
535
+ attribute("Boolean", :ended?, :ended)
536
+ attribute("Boolean", :autoplay?, :autoplay)
537
+ attribute("Boolean", :loop?, :loop)
538
+ attribute("Boolean", :controls?, :controls)
539
+ attribute(Float, :volume, :volume)
540
+ attribute("Boolean", :muted?, :muted)
541
+ attribute("Boolean", :defaultmuted?, :defaultMuted)
542
+ attribute(String, :audiotracks, :audioTracks)
543
+ attribute(String, :videotracks, :videoTracks)
544
+ attribute(String, :texttracks, :textTracks)
545
+ end
546
+ class MediaCollection < ElementCollection
547
+ end
548
+
549
+ class Audio < Media
550
+ end
551
+ class AudioCollection < ElementCollection
552
+ end
553
+
554
+ class Video < Media
555
+ attribute(Integer, :videowidth, :videoWidth)
556
+ attribute(Integer, :videoheight, :videoHeight)
557
+ attribute(String, :poster, :poster)
558
+ end
559
+ class VideoCollection < ElementCollection
560
+ end
561
+
562
+ class Track < HTMLElement
563
+ attribute(String, :kind, :kind)
564
+ attribute(String, :src, :src)
565
+ attribute(String, :srclang, :srclang)
566
+ attribute(String, :label, :label)
567
+ attribute("Boolean", :default?, :default)
568
+ attribute(Integer, :readystate, :readyState)
569
+ attribute(String, :track, :track)
570
+ end
571
+ class TrackCollection < ElementCollection
572
+ end
573
+
574
+ class Param < HTMLElement
575
+ attribute(String, :name, :name)
576
+ attribute(String, :value, :value)
577
+ attribute(String, :type, :type)
578
+ attribute(String, :valuetype, :valueType)
579
+ end
580
+ class ParamCollection < ElementCollection
581
+ end
582
+
583
+ class Object < HTMLElement
584
+ attribute(String, :data, :data)
585
+ attribute(String, :type, :type)
586
+ attribute("Boolean", :typemustmatch?, :typeMustMatch)
587
+ attribute(String, :name, :name)
588
+ attribute(String, :form, :form)
589
+ attribute(String, :contentdocument, :contentDocument)
590
+ attribute(String, :contentwindow, :contentWindow)
591
+ attribute("Boolean", :willvalidate?, :willValidate)
592
+ attribute(String, :validity, :validity)
593
+ attribute(String, :validationmessage, :validationMessage)
594
+ attribute(String, :align, :align)
595
+ attribute(String, :archive, :archive)
596
+ attribute(String, :code, :code)
597
+ attribute("Boolean", :declare?, :declare)
598
+ attribute(Integer, :hspace, :hspace)
599
+ attribute(String, :standby, :standby)
600
+ attribute(Integer, :vspace, :vspace)
601
+ attribute(String, :codebase, :codeBase)
602
+ attribute(String, :codetype, :codeType)
603
+ attribute(String, :border, :border)
604
+ end
605
+ class ObjectCollection < ElementCollection
606
+ end
607
+
608
+ class Embed < HTMLElement
609
+ attribute(String, :src, :src)
610
+ attribute(String, :type, :type)
611
+ attribute(String, :align, :align)
612
+ attribute(String, :name, :name)
613
+ end
614
+ class EmbedCollection < ElementCollection
615
+ end
616
+
617
+ class IFrame < HTMLElement
618
+ attribute(String, :src, :src)
619
+ attribute(String, :srcdoc, :srcdoc)
620
+ attribute(String, :name, :name)
621
+ attribute(String, :sandbox, :sandbox)
622
+ attribute("Boolean", :allowfullscreen?, :allowFullscreen)
623
+ attribute("Boolean", :allowpaymentrequest?, :allowPaymentRequest)
624
+ attribute(String, :referrerpolicy, :referrerPolicy)
625
+ attribute(String, :contentdocument, :contentDocument)
626
+ attribute(String, :contentwindow, :contentWindow)
627
+ attribute(String, :align, :align)
628
+ attribute(String, :scrolling, :scrolling)
629
+ attribute(String, :frameborder, :frameBorder)
630
+ attribute(String, :longdesc, :longDesc)
631
+ attribute(String, :marginheight, :marginHeight)
632
+ attribute(String, :marginwidth, :marginWidth)
633
+ end
634
+ class IFrameCollection < ElementCollection
635
+ end
636
+
637
+ class Image < HTMLElement
638
+ attribute(String, :alt, :alt)
639
+ attribute(String, :src, :src)
640
+ attribute(String, :srcset, :srcset)
641
+ attribute(String, :sizes, :sizes)
642
+ attribute(String, :crossorigin, :crossOrigin)
643
+ attribute(String, :usemap, :useMap)
644
+ attribute(String, :longdesc, :longDesc)
645
+ attribute("Boolean", :ismap?, :isMap)
646
+ attribute(Integer, :naturalwidth, :naturalWidth)
647
+ attribute(Integer, :naturalheight, :naturalHeight)
648
+ attribute("Boolean", :complete?, :complete)
649
+ attribute(String, :currentsrc, :currentSrc)
650
+ attribute(String, :referrerpolicy, :referrerPolicy)
651
+ attribute(String, :name, :name)
652
+ attribute(String, :lowsrc, :lowsrc)
653
+ attribute(String, :align, :align)
654
+ attribute(Integer, :hspace, :hspace)
655
+ attribute(Integer, :vspace, :vspace)
656
+ attribute(String, :border, :border)
657
+ end
658
+ class ImageCollection < ElementCollection
659
+ end
660
+
661
+ class Source < HTMLElement
662
+ attribute(String, :src, :src)
663
+ attribute(String, :type, :type)
664
+ attribute(String, :srcset, :srcset)
665
+ attribute(String, :sizes, :sizes)
666
+ attribute(String, :media, :media)
667
+ end
668
+ class SourceCollection < ElementCollection
669
+ end
670
+
671
+ class Picture < HTMLElement
672
+ end
673
+ class PictureCollection < ElementCollection
674
+ end
675
+
676
+ class Mod < HTMLElement
677
+ attribute(String, :cite, :cite)
678
+ attribute(String, :datetime, :dateTime)
679
+ end
680
+ class ModCollection < ElementCollection
681
+ end
682
+
683
+ class BR < HTMLElement
684
+ attribute(String, :clear, :clear)
685
+ end
686
+ class BRCollection < ElementCollection
687
+ end
688
+
689
+ class Span < HTMLElement
690
+ end
691
+ class SpanCollection < ElementCollection
692
+ end
693
+
694
+ class Time < HTMLElement
695
+ attribute(String, :datetime, :dateTime)
696
+ end
697
+ class TimeCollection < ElementCollection
698
+ end
699
+
700
+ class Data < HTMLElement
701
+ attribute(String, :value, :value)
702
+ end
703
+ class DataCollection < ElementCollection
704
+ end
705
+
706
+ class Anchor < HTMLElement
707
+ attribute(String, :target, :target)
708
+ attribute(String, :download, :download)
709
+ attribute(String, :rel, :rel)
710
+ attribute(String, :rev, :rev)
711
+ attribute(String, :rellist, :relList)
712
+ attribute(String, :hreflang, :hreflang)
713
+ attribute(String, :type, :type)
714
+ attribute(String, :referrerpolicy, :referrerPolicy)
715
+ attribute(String, :coords, :coords)
716
+ attribute(String, :charset, :charset)
717
+ attribute(String, :name, :name)
718
+ attribute(String, :shape, :shape)
719
+ attribute(String, :href, :href)
720
+ attribute(String, :origin, :origin)
721
+ attribute(String, :protocol, :protocol)
722
+ attribute(String, :username, :username)
723
+ attribute(String, :password, :password)
724
+ attribute(String, :host, :host)
725
+ attribute(String, :hostname, :hostname)
726
+ attribute(String, :port, :port)
727
+ attribute(String, :pathname, :pathname)
728
+ attribute(String, :search, :search)
729
+ end
730
+ class AnchorCollection < ElementCollection
731
+ end
732
+
733
+ class Div < HTMLElement
734
+ attribute(String, :align, :align)
735
+ end
736
+ class DivCollection < ElementCollection
737
+ end
738
+
739
+ class DList < HTMLElement
740
+ attribute("Boolean", :compact?, :compact)
741
+ end
742
+ class DListCollection < ElementCollection
743
+ end
744
+
745
+ class LI < HTMLElement
746
+ attribute(Integer, :value, :value)
747
+ attribute(String, :type, :type)
748
+ end
749
+ class LICollection < ElementCollection
750
+ end
751
+
752
+ class UList < HTMLElement
753
+ attribute("Boolean", :compact?, :compact)
754
+ attribute(String, :type, :type)
755
+ end
756
+ class UListCollection < ElementCollection
757
+ end
758
+
759
+ class OList < HTMLElement
760
+ attribute("Boolean", :reversed?, :reversed)
761
+ attribute(Integer, :start, :start)
762
+ attribute(String, :type, :type)
763
+ attribute("Boolean", :compact?, :compact)
764
+ end
765
+ class OListCollection < ElementCollection
766
+ end
767
+
768
+ class Quote < HTMLElement
769
+ attribute(String, :cite, :cite)
770
+ end
771
+ class QuoteCollection < ElementCollection
772
+ end
773
+
774
+ class Pre < HTMLElement
775
+ end
776
+ class PreCollection < ElementCollection
777
+ end
778
+
779
+ class HR < HTMLElement
780
+ attribute(String, :align, :align)
781
+ attribute(String, :color, :color)
782
+ attribute("Boolean", :noshade?, :noShade)
783
+ end
784
+ class HRCollection < ElementCollection
785
+ end
786
+
787
+ class Paragraph < HTMLElement
788
+ attribute(String, :align, :align)
789
+ end
790
+ class ParagraphCollection < ElementCollection
791
+ end
792
+
793
+ class Heading < HTMLElement
794
+ attribute(String, :align, :align)
795
+ end
796
+ class HeadingCollection < ElementCollection
797
+ end
798
+
799
+ class Body < HTMLElement
800
+ attribute(String, :vlink, :vLink)
801
+ attribute(String, :alink, :aLink)
802
+ attribute(String, :bgcolor, :bgColor)
803
+ attribute(String, :background, :background)
804
+ attribute(String, :onafterprint, :onafterprint)
805
+ attribute(String, :onbeforeprint, :onbeforeprint)
806
+ attribute(String, :onbeforeunload, :onbeforeunload)
807
+ attribute(String, :onhashchange, :onhashchange)
808
+ attribute(String, :onlanguagechange, :onlanguagechange)
809
+ attribute(String, :onmessage, :onmessage)
810
+ attribute(String, :onoffline, :onoffline)
811
+ attribute(String, :ononline, :ononline)
812
+ attribute(String, :onpagehide, :onpagehide)
813
+ attribute(String, :onpageshow, :onpageshow)
814
+ attribute(String, :onrejectionhandled, :onrejectionhandled)
815
+ attribute(String, :onpopstate, :onpopstate)
816
+ attribute(String, :onstorage, :onstorage)
817
+ attribute(String, :onunhandledrejection, :onunhandledrejection)
818
+ attribute(String, :onunload, :onunload)
819
+ end
820
+ class BodyCollection < ElementCollection
821
+ end
822
+
823
+ class Style < HTMLElement
824
+ attribute(String, :media, :media)
825
+ attribute(String, :nonce, :nonce)
826
+ attribute(String, :type, :type)
827
+ end
828
+ class StyleCollection < ElementCollection
829
+ end
830
+
831
+ class Meta < HTMLElement
832
+ attribute(String, :name, :name)
833
+ attribute(String, :http_equiv, :httpEquiv)
834
+ attribute(String, :content, :content)
835
+ attribute(String, :scheme, :scheme)
836
+ end
837
+ class MetaCollection < ElementCollection
838
+ end
839
+
840
+ class Base < HTMLElement
841
+ attribute(String, :href, :href)
842
+ attribute(String, :target, :target)
843
+ end
844
+ class BaseCollection < ElementCollection
845
+ end
846
+
847
+ class Title < HTMLElement
848
+ end
849
+ class TitleCollection < ElementCollection
850
+ end
851
+
852
+ class Head < HTMLElement
853
+ end
854
+ class HeadCollection < ElementCollection
855
+ end
856
+
857
+ class Html < HTMLElement
858
+ attribute(String, :version, :version)
859
+ end
860
+ class HtmlCollection < ElementCollection
861
+ end
862
+
863
+ class Unknown < HTMLElement
864
+ end
865
+ class UnknownCollection < ElementCollection
866
+ end
867
+
868
+
869
+ module Container
870
+
871
+ # @return [Anchor]
872
+ def a(opts = {})
873
+ Anchor.new(self, opts.merge(tag_name: "a"))
874
+ end
875
+ # @return [AnchorCollection]
876
+ def as(opts = {})
877
+ AnchorCollection.new(self, opts.merge(tag_name: "a"))
878
+ end
879
+ Watir.tag_to_class[:a] = Anchor
880
+
881
+ # @return [HTMLElement]
882
+ def abbr(opts = {})
883
+ HTMLElement.new(self, opts.merge(tag_name: "abbr"))
884
+ end
885
+ # @return [HTMLElementCollection]
886
+ def abbrs(opts = {})
887
+ HTMLElementCollection.new(self, opts.merge(tag_name: "abbr"))
888
+ end
889
+ Watir.tag_to_class[:abbr] = HTMLElement
890
+
891
+ # @return [HTMLElement]
892
+ def address(opts = {})
893
+ HTMLElement.new(self, opts.merge(tag_name: "address"))
894
+ end
895
+ # @return [HTMLElementCollection]
896
+ def addresses(opts = {})
897
+ HTMLElementCollection.new(self, opts.merge(tag_name: "address"))
898
+ end
899
+ Watir.tag_to_class[:address] = HTMLElement
900
+
901
+ # @return [Area]
902
+ def area(opts = {})
903
+ Area.new(self, opts.merge(tag_name: "area"))
904
+ end
905
+ # @return [AreaCollection]
906
+ def areas(opts = {})
907
+ AreaCollection.new(self, opts.merge(tag_name: "area"))
908
+ end
909
+ Watir.tag_to_class[:area] = Area
910
+
911
+ # @return [HTMLElement]
912
+ def article(opts = {})
913
+ HTMLElement.new(self, opts.merge(tag_name: "article"))
914
+ end
915
+ # @return [HTMLElementCollection]
916
+ def articles(opts = {})
917
+ HTMLElementCollection.new(self, opts.merge(tag_name: "article"))
918
+ end
919
+ Watir.tag_to_class[:article] = HTMLElement
920
+
921
+ # @return [HTMLElement]
922
+ def aside(opts = {})
923
+ HTMLElement.new(self, opts.merge(tag_name: "aside"))
924
+ end
925
+ # @return [HTMLElementCollection]
926
+ def asides(opts = {})
927
+ HTMLElementCollection.new(self, opts.merge(tag_name: "aside"))
928
+ end
929
+ Watir.tag_to_class[:aside] = HTMLElement
930
+
931
+ # @return [Audio]
932
+ def audio(opts = {})
933
+ Audio.new(self, opts.merge(tag_name: "audio"))
934
+ end
935
+ # @return [AudioCollection]
936
+ def audios(opts = {})
937
+ AudioCollection.new(self, opts.merge(tag_name: "audio"))
938
+ end
939
+ Watir.tag_to_class[:audio] = Audio
940
+
941
+ # @return [HTMLElement]
942
+ def b(opts = {})
943
+ HTMLElement.new(self, opts.merge(tag_name: "b"))
944
+ end
945
+ # @return [HTMLElementCollection]
946
+ def bs(opts = {})
947
+ HTMLElementCollection.new(self, opts.merge(tag_name: "b"))
948
+ end
949
+ Watir.tag_to_class[:b] = HTMLElement
950
+
951
+ # @return [Base]
952
+ def base(opts = {})
953
+ Base.new(self, opts.merge(tag_name: "base"))
954
+ end
955
+ # @return [BaseCollection]
956
+ def bases(opts = {})
957
+ BaseCollection.new(self, opts.merge(tag_name: "base"))
958
+ end
959
+ Watir.tag_to_class[:base] = Base
960
+
961
+ # @return [HTMLElement]
962
+ def bdi(opts = {})
963
+ HTMLElement.new(self, opts.merge(tag_name: "bdi"))
964
+ end
965
+ # @return [HTMLElementCollection]
966
+ def bdis(opts = {})
967
+ HTMLElementCollection.new(self, opts.merge(tag_name: "bdi"))
968
+ end
969
+ Watir.tag_to_class[:bdi] = HTMLElement
970
+
971
+ # @return [HTMLElement]
972
+ def bdo(opts = {})
973
+ HTMLElement.new(self, opts.merge(tag_name: "bdo"))
974
+ end
975
+ # @return [HTMLElementCollection]
976
+ def bdos(opts = {})
977
+ HTMLElementCollection.new(self, opts.merge(tag_name: "bdo"))
978
+ end
979
+ Watir.tag_to_class[:bdo] = HTMLElement
980
+
981
+ # @return [Quote]
982
+ def blockquote(opts = {})
983
+ Quote.new(self, opts.merge(tag_name: "blockquote"))
984
+ end
985
+ # @return [QuoteCollection]
986
+ def blockquotes(opts = {})
987
+ QuoteCollection.new(self, opts.merge(tag_name: "blockquote"))
988
+ end
989
+ Watir.tag_to_class[:blockquote] = Quote
990
+
991
+ # @return [Body]
992
+ def body(opts = {})
993
+ Body.new(self, opts.merge(tag_name: "body"))
994
+ end
995
+ # @return [BodyCollection]
996
+ def bodys(opts = {})
997
+ BodyCollection.new(self, opts.merge(tag_name: "body"))
998
+ end
999
+ Watir.tag_to_class[:body] = Body
1000
+
1001
+ # @return [BR]
1002
+ def br(opts = {})
1003
+ BR.new(self, opts.merge(tag_name: "br"))
1004
+ end
1005
+ # @return [BRCollection]
1006
+ def brs(opts = {})
1007
+ BRCollection.new(self, opts.merge(tag_name: "br"))
1008
+ end
1009
+ Watir.tag_to_class[:br] = BR
1010
+
1011
+ # @return [Button]
1012
+ def button(opts = {})
1013
+ Button.new(self, opts.merge(tag_name: "button"))
1014
+ end
1015
+ # @return [ButtonCollection]
1016
+ def buttons(opts = {})
1017
+ ButtonCollection.new(self, opts.merge(tag_name: "button"))
1018
+ end
1019
+ Watir.tag_to_class[:button] = Button
1020
+
1021
+ # @return [Canvas]
1022
+ def canvas(opts = {})
1023
+ Canvas.new(self, opts.merge(tag_name: "canvas"))
1024
+ end
1025
+ # @return [CanvasCollection]
1026
+ def canvases(opts = {})
1027
+ CanvasCollection.new(self, opts.merge(tag_name: "canvas"))
1028
+ end
1029
+ Watir.tag_to_class[:canvas] = Canvas
1030
+
1031
+ # @return [TableCaption]
1032
+ def caption(opts = {})
1033
+ TableCaption.new(self, opts.merge(tag_name: "caption"))
1034
+ end
1035
+ # @return [TableCaptionCollection]
1036
+ def captions(opts = {})
1037
+ TableCaptionCollection.new(self, opts.merge(tag_name: "caption"))
1038
+ end
1039
+ Watir.tag_to_class[:caption] = TableCaption
1040
+
1041
+ # @return [HTMLElement]
1042
+ def cite(opts = {})
1043
+ HTMLElement.new(self, opts.merge(tag_name: "cite"))
1044
+ end
1045
+ # @return [HTMLElementCollection]
1046
+ def cites(opts = {})
1047
+ HTMLElementCollection.new(self, opts.merge(tag_name: "cite"))
1048
+ end
1049
+ Watir.tag_to_class[:cite] = HTMLElement
1050
+
1051
+ # @return [HTMLElement]
1052
+ def code(opts = {})
1053
+ HTMLElement.new(self, opts.merge(tag_name: "code"))
1054
+ end
1055
+ # @return [HTMLElementCollection]
1056
+ def codes(opts = {})
1057
+ HTMLElementCollection.new(self, opts.merge(tag_name: "code"))
1058
+ end
1059
+ Watir.tag_to_class[:code] = HTMLElement
1060
+
1061
+ # @return [TableCol]
1062
+ def col(opts = {})
1063
+ TableCol.new(self, opts.merge(tag_name: "col"))
1064
+ end
1065
+ # @return [TableColCollection]
1066
+ def cols(opts = {})
1067
+ TableColCollection.new(self, opts.merge(tag_name: "col"))
1068
+ end
1069
+ Watir.tag_to_class[:col] = TableCol
1070
+
1071
+ # @return [TableCol]
1072
+ def colgroup(opts = {})
1073
+ TableCol.new(self, opts.merge(tag_name: "colgroup"))
1074
+ end
1075
+ # @return [TableColCollection]
1076
+ def colgroups(opts = {})
1077
+ TableColCollection.new(self, opts.merge(tag_name: "colgroup"))
1078
+ end
1079
+ Watir.tag_to_class[:colgroup] = TableCol
1080
+
1081
+ # @return [Data]
1082
+ def data(opts = {})
1083
+ Data.new(self, opts.merge(tag_name: "data"))
1084
+ end
1085
+ # @return [DataCollection]
1086
+ def datas(opts = {})
1087
+ DataCollection.new(self, opts.merge(tag_name: "data"))
1088
+ end
1089
+ Watir.tag_to_class[:data] = Data
1090
+
1091
+ # @return [DataList]
1092
+ def datalist(opts = {})
1093
+ DataList.new(self, opts.merge(tag_name: "datalist"))
1094
+ end
1095
+ # @return [DataListCollection]
1096
+ def datalists(opts = {})
1097
+ DataListCollection.new(self, opts.merge(tag_name: "datalist"))
1098
+ end
1099
+ Watir.tag_to_class[:datalist] = DataList
1100
+
1101
+ # @return [HTMLElement]
1102
+ def dd(opts = {})
1103
+ HTMLElement.new(self, opts.merge(tag_name: "dd"))
1104
+ end
1105
+ # @return [HTMLElementCollection]
1106
+ def dds(opts = {})
1107
+ HTMLElementCollection.new(self, opts.merge(tag_name: "dd"))
1108
+ end
1109
+ Watir.tag_to_class[:dd] = HTMLElement
1110
+
1111
+ # @return [Mod]
1112
+ def del(opts = {})
1113
+ Mod.new(self, opts.merge(tag_name: "del"))
1114
+ end
1115
+ # @return [ModCollection]
1116
+ def dels(opts = {})
1117
+ ModCollection.new(self, opts.merge(tag_name: "del"))
1118
+ end
1119
+ Watir.tag_to_class[:del] = Mod
1120
+
1121
+ # @return [Details]
1122
+ def details(opts = {})
1123
+ Details.new(self, opts.merge(tag_name: "details"))
1124
+ end
1125
+ # @return [DetailsCollection]
1126
+ def detailses(opts = {})
1127
+ DetailsCollection.new(self, opts.merge(tag_name: "details"))
1128
+ end
1129
+ Watir.tag_to_class[:details] = Details
1130
+
1131
+ # @return [HTMLElement]
1132
+ def dfn(opts = {})
1133
+ HTMLElement.new(self, opts.merge(tag_name: "dfn"))
1134
+ end
1135
+ # @return [HTMLElementCollection]
1136
+ def dfns(opts = {})
1137
+ HTMLElementCollection.new(self, opts.merge(tag_name: "dfn"))
1138
+ end
1139
+ Watir.tag_to_class[:dfn] = HTMLElement
1140
+
1141
+ # @return [Dialog]
1142
+ def dialog(opts = {})
1143
+ Dialog.new(self, opts.merge(tag_name: "dialog"))
1144
+ end
1145
+ # @return [DialogCollection]
1146
+ def dialogs(opts = {})
1147
+ DialogCollection.new(self, opts.merge(tag_name: "dialog"))
1148
+ end
1149
+ Watir.tag_to_class[:dialog] = Dialog
1150
+
1151
+ # @return [Div]
1152
+ def div(opts = {})
1153
+ Div.new(self, opts.merge(tag_name: "div"))
1154
+ end
1155
+ # @return [DivCollection]
1156
+ def divs(opts = {})
1157
+ DivCollection.new(self, opts.merge(tag_name: "div"))
1158
+ end
1159
+ Watir.tag_to_class[:div] = Div
1160
+
1161
+ # @return [DList]
1162
+ def dl(opts = {})
1163
+ DList.new(self, opts.merge(tag_name: "dl"))
1164
+ end
1165
+ # @return [DListCollection]
1166
+ def dls(opts = {})
1167
+ DListCollection.new(self, opts.merge(tag_name: "dl"))
1168
+ end
1169
+ Watir.tag_to_class[:dl] = DList
1170
+
1171
+ # @return [HTMLElement]
1172
+ def dt(opts = {})
1173
+ HTMLElement.new(self, opts.merge(tag_name: "dt"))
1174
+ end
1175
+ # @return [HTMLElementCollection]
1176
+ def dts(opts = {})
1177
+ HTMLElementCollection.new(self, opts.merge(tag_name: "dt"))
1178
+ end
1179
+ Watir.tag_to_class[:dt] = HTMLElement
1180
+
1181
+ # @return [HTMLElement]
1182
+ def em(opts = {})
1183
+ HTMLElement.new(self, opts.merge(tag_name: "em"))
1184
+ end
1185
+ # @return [HTMLElementCollection]
1186
+ def ems(opts = {})
1187
+ HTMLElementCollection.new(self, opts.merge(tag_name: "em"))
1188
+ end
1189
+ Watir.tag_to_class[:em] = HTMLElement
1190
+
1191
+ # @return [Embed]
1192
+ def embed(opts = {})
1193
+ Embed.new(self, opts.merge(tag_name: "embed"))
1194
+ end
1195
+ # @return [EmbedCollection]
1196
+ def embeds(opts = {})
1197
+ EmbedCollection.new(self, opts.merge(tag_name: "embed"))
1198
+ end
1199
+ Watir.tag_to_class[:embed] = Embed
1200
+
1201
+ # @return [FieldSet]
1202
+ def fieldset(opts = {})
1203
+ FieldSet.new(self, opts.merge(tag_name: "fieldset"))
1204
+ end
1205
+ # @return [FieldSetCollection]
1206
+ def fieldsets(opts = {})
1207
+ FieldSetCollection.new(self, opts.merge(tag_name: "fieldset"))
1208
+ end
1209
+ Watir.tag_to_class[:fieldset] = FieldSet
1210
+
1211
+ # @return [HTMLElement]
1212
+ def figcaption(opts = {})
1213
+ HTMLElement.new(self, opts.merge(tag_name: "figcaption"))
1214
+ end
1215
+ # @return [HTMLElementCollection]
1216
+ def figcaptions(opts = {})
1217
+ HTMLElementCollection.new(self, opts.merge(tag_name: "figcaption"))
1218
+ end
1219
+ Watir.tag_to_class[:figcaption] = HTMLElement
1220
+
1221
+ # @return [HTMLElement]
1222
+ def figure(opts = {})
1223
+ HTMLElement.new(self, opts.merge(tag_name: "figure"))
1224
+ end
1225
+ # @return [HTMLElementCollection]
1226
+ def figures(opts = {})
1227
+ HTMLElementCollection.new(self, opts.merge(tag_name: "figure"))
1228
+ end
1229
+ Watir.tag_to_class[:figure] = HTMLElement
1230
+
1231
+ # @return [HTMLElement]
1232
+ def footer(opts = {})
1233
+ HTMLElement.new(self, opts.merge(tag_name: "footer"))
1234
+ end
1235
+ # @return [HTMLElementCollection]
1236
+ def footers(opts = {})
1237
+ HTMLElementCollection.new(self, opts.merge(tag_name: "footer"))
1238
+ end
1239
+ Watir.tag_to_class[:footer] = HTMLElement
1240
+
1241
+ # @return [Form]
1242
+ def form(opts = {})
1243
+ Form.new(self, opts.merge(tag_name: "form"))
1244
+ end
1245
+ # @return [FormCollection]
1246
+ def forms(opts = {})
1247
+ FormCollection.new(self, opts.merge(tag_name: "form"))
1248
+ end
1249
+ Watir.tag_to_class[:form] = Form
1250
+
1251
+ # @return [FrameSet]
1252
+ def frameset(opts = {})
1253
+ FrameSet.new(self, opts.merge(tag_name: "frameset"))
1254
+ end
1255
+ # @return [FrameSetCollection]
1256
+ def framesets(opts = {})
1257
+ FrameSetCollection.new(self, opts.merge(tag_name: "frameset"))
1258
+ end
1259
+ Watir.tag_to_class[:frameset] = FrameSet
1260
+
1261
+ # @return [Heading]
1262
+ def h1(opts = {})
1263
+ Heading.new(self, opts.merge(tag_name: "h1"))
1264
+ end
1265
+ # @return [HeadingCollection]
1266
+ def h1s(opts = {})
1267
+ HeadingCollection.new(self, opts.merge(tag_name: "h1"))
1268
+ end
1269
+ Watir.tag_to_class[:h1] = Heading
1270
+
1271
+ # @return [Heading]
1272
+ def h2(opts = {})
1273
+ Heading.new(self, opts.merge(tag_name: "h2"))
1274
+ end
1275
+ # @return [HeadingCollection]
1276
+ def h2s(opts = {})
1277
+ HeadingCollection.new(self, opts.merge(tag_name: "h2"))
1278
+ end
1279
+ Watir.tag_to_class[:h2] = Heading
1280
+
1281
+ # @return [Heading]
1282
+ def h3(opts = {})
1283
+ Heading.new(self, opts.merge(tag_name: "h3"))
1284
+ end
1285
+ # @return [HeadingCollection]
1286
+ def h3s(opts = {})
1287
+ HeadingCollection.new(self, opts.merge(tag_name: "h3"))
1288
+ end
1289
+ Watir.tag_to_class[:h3] = Heading
1290
+
1291
+ # @return [Heading]
1292
+ def h4(opts = {})
1293
+ Heading.new(self, opts.merge(tag_name: "h4"))
1294
+ end
1295
+ # @return [HeadingCollection]
1296
+ def h4s(opts = {})
1297
+ HeadingCollection.new(self, opts.merge(tag_name: "h4"))
1298
+ end
1299
+ Watir.tag_to_class[:h4] = Heading
1300
+
1301
+ # @return [Heading]
1302
+ def h5(opts = {})
1303
+ Heading.new(self, opts.merge(tag_name: "h5"))
1304
+ end
1305
+ # @return [HeadingCollection]
1306
+ def h5s(opts = {})
1307
+ HeadingCollection.new(self, opts.merge(tag_name: "h5"))
1308
+ end
1309
+ Watir.tag_to_class[:h5] = Heading
1310
+
1311
+ # @return [Heading]
1312
+ def h6(opts = {})
1313
+ Heading.new(self, opts.merge(tag_name: "h6"))
1314
+ end
1315
+ # @return [HeadingCollection]
1316
+ def h6s(opts = {})
1317
+ HeadingCollection.new(self, opts.merge(tag_name: "h6"))
1318
+ end
1319
+ Watir.tag_to_class[:h6] = Heading
1320
+
1321
+ # @return [Head]
1322
+ def head(opts = {})
1323
+ Head.new(self, opts.merge(tag_name: "head"))
1324
+ end
1325
+ # @return [HeadCollection]
1326
+ def heads(opts = {})
1327
+ HeadCollection.new(self, opts.merge(tag_name: "head"))
1328
+ end
1329
+ Watir.tag_to_class[:head] = Head
1330
+
1331
+ # @return [HTMLElement]
1332
+ def header(opts = {})
1333
+ HTMLElement.new(self, opts.merge(tag_name: "header"))
1334
+ end
1335
+ # @return [HTMLElementCollection]
1336
+ def headers(opts = {})
1337
+ HTMLElementCollection.new(self, opts.merge(tag_name: "header"))
1338
+ end
1339
+ Watir.tag_to_class[:header] = HTMLElement
1340
+
1341
+ # @return [HR]
1342
+ def hr(opts = {})
1343
+ HR.new(self, opts.merge(tag_name: "hr"))
1344
+ end
1345
+ # @return [HRCollection]
1346
+ def hrs(opts = {})
1347
+ HRCollection.new(self, opts.merge(tag_name: "hr"))
1348
+ end
1349
+ Watir.tag_to_class[:hr] = HR
1350
+
1351
+ # @return [Html]
1352
+ def html(opts = {})
1353
+ Html.new(self, opts.merge(tag_name: "html"))
1354
+ end
1355
+ # @return [HtmlCollection]
1356
+ def htmls(opts = {})
1357
+ HtmlCollection.new(self, opts.merge(tag_name: "html"))
1358
+ end
1359
+ Watir.tag_to_class[:html] = Html
1360
+
1361
+ # @return [HTMLElement]
1362
+ def i(opts = {})
1363
+ HTMLElement.new(self, opts.merge(tag_name: "i"))
1364
+ end
1365
+ # @return [HTMLElementCollection]
1366
+ def is(opts = {})
1367
+ HTMLElementCollection.new(self, opts.merge(tag_name: "i"))
1368
+ end
1369
+ Watir.tag_to_class[:i] = HTMLElement
1370
+
1371
+ # @return [IFrame]
1372
+ def iframe(opts = {})
1373
+ IFrame.new(self, opts.merge(tag_name: "iframe"))
1374
+ end
1375
+ # @return [IFrameCollection]
1376
+ def iframes(opts = {})
1377
+ IFrameCollection.new(self, opts.merge(tag_name: "iframe"))
1378
+ end
1379
+ Watir.tag_to_class[:iframe] = IFrame
1380
+
1381
+ # @return [Image]
1382
+ def img(opts = {})
1383
+ Image.new(self, opts.merge(tag_name: "img"))
1384
+ end
1385
+ # @return [ImageCollection]
1386
+ def imgs(opts = {})
1387
+ ImageCollection.new(self, opts.merge(tag_name: "img"))
1388
+ end
1389
+ Watir.tag_to_class[:img] = Image
1390
+
1391
+ # @return [Input]
1392
+ def input(opts = {})
1393
+ Input.new(self, opts.merge(tag_name: "input"))
1394
+ end
1395
+ # @return [InputCollection]
1396
+ def inputs(opts = {})
1397
+ InputCollection.new(self, opts.merge(tag_name: "input"))
1398
+ end
1399
+ Watir.tag_to_class[:input] = Input
1400
+
1401
+ # @return [Mod]
1402
+ def ins(opts = {})
1403
+ Mod.new(self, opts.merge(tag_name: "ins"))
1404
+ end
1405
+ # @return [ModCollection]
1406
+ def inses(opts = {})
1407
+ ModCollection.new(self, opts.merge(tag_name: "ins"))
1408
+ end
1409
+ Watir.tag_to_class[:ins] = Mod
1410
+
1411
+ # @return [HTMLElement]
1412
+ def kbd(opts = {})
1413
+ HTMLElement.new(self, opts.merge(tag_name: "kbd"))
1414
+ end
1415
+ # @return [HTMLElementCollection]
1416
+ def kbds(opts = {})
1417
+ HTMLElementCollection.new(self, opts.merge(tag_name: "kbd"))
1418
+ end
1419
+ Watir.tag_to_class[:kbd] = HTMLElement
1420
+
1421
+ # @return [Label]
1422
+ def label(opts = {})
1423
+ Label.new(self, opts.merge(tag_name: "label"))
1424
+ end
1425
+ # @return [LabelCollection]
1426
+ def labels(opts = {})
1427
+ LabelCollection.new(self, opts.merge(tag_name: "label"))
1428
+ end
1429
+ Watir.tag_to_class[:label] = Label
1430
+
1431
+ # @return [Legend]
1432
+ def legend(opts = {})
1433
+ Legend.new(self, opts.merge(tag_name: "legend"))
1434
+ end
1435
+ # @return [LegendCollection]
1436
+ def legends(opts = {})
1437
+ LegendCollection.new(self, opts.merge(tag_name: "legend"))
1438
+ end
1439
+ Watir.tag_to_class[:legend] = Legend
1440
+
1441
+ # @return [LI]
1442
+ def li(opts = {})
1443
+ LI.new(self, opts.merge(tag_name: "li"))
1444
+ end
1445
+ # @return [LICollection]
1446
+ def lis(opts = {})
1447
+ LICollection.new(self, opts.merge(tag_name: "li"))
1448
+ end
1449
+ Watir.tag_to_class[:li] = LI
1450
+
1451
+ # @return [HTMLElement]
1452
+ def main(opts = {})
1453
+ HTMLElement.new(self, opts.merge(tag_name: "main"))
1454
+ end
1455
+ # @return [HTMLElementCollection]
1456
+ def mains(opts = {})
1457
+ HTMLElementCollection.new(self, opts.merge(tag_name: "main"))
1458
+ end
1459
+ Watir.tag_to_class[:main] = HTMLElement
1460
+
1461
+ # @return [Map]
1462
+ def map(opts = {})
1463
+ Map.new(self, opts.merge(tag_name: "map"))
1464
+ end
1465
+ # @return [MapCollection]
1466
+ def maps(opts = {})
1467
+ MapCollection.new(self, opts.merge(tag_name: "map"))
1468
+ end
1469
+ Watir.tag_to_class[:map] = Map
1470
+
1471
+ # @return [HTMLElement]
1472
+ def mark(opts = {})
1473
+ HTMLElement.new(self, opts.merge(tag_name: "mark"))
1474
+ end
1475
+ # @return [HTMLElementCollection]
1476
+ def marks(opts = {})
1477
+ HTMLElementCollection.new(self, opts.merge(tag_name: "mark"))
1478
+ end
1479
+ Watir.tag_to_class[:mark] = HTMLElement
1480
+
1481
+ # @return [Meta]
1482
+ def meta(opts = {})
1483
+ Meta.new(self, opts.merge(tag_name: "meta"))
1484
+ end
1485
+ # @return [MetaCollection]
1486
+ def metas(opts = {})
1487
+ MetaCollection.new(self, opts.merge(tag_name: "meta"))
1488
+ end
1489
+ Watir.tag_to_class[:meta] = Meta
1490
+
1491
+ # @return [Meter]
1492
+ def meter(opts = {})
1493
+ Meter.new(self, opts.merge(tag_name: "meter"))
1494
+ end
1495
+ # @return [MeterCollection]
1496
+ def meters(opts = {})
1497
+ MeterCollection.new(self, opts.merge(tag_name: "meter"))
1498
+ end
1499
+ Watir.tag_to_class[:meter] = Meter
1500
+
1501
+ # @return [HTMLElement]
1502
+ def nav(opts = {})
1503
+ HTMLElement.new(self, opts.merge(tag_name: "nav"))
1504
+ end
1505
+ # @return [HTMLElementCollection]
1506
+ def navs(opts = {})
1507
+ HTMLElementCollection.new(self, opts.merge(tag_name: "nav"))
1508
+ end
1509
+ Watir.tag_to_class[:nav] = HTMLElement
1510
+
1511
+ # @return [HTMLElement]
1512
+ def noscript(opts = {})
1513
+ HTMLElement.new(self, opts.merge(tag_name: "noscript"))
1514
+ end
1515
+ # @return [HTMLElementCollection]
1516
+ def noscripts(opts = {})
1517
+ HTMLElementCollection.new(self, opts.merge(tag_name: "noscript"))
1518
+ end
1519
+ Watir.tag_to_class[:noscript] = HTMLElement
1520
+
1521
+ # @return [Object]
1522
+ def object(opts = {})
1523
+ Object.new(self, opts.merge(tag_name: "object"))
1524
+ end
1525
+ # @return [ObjectCollection]
1526
+ def objects(opts = {})
1527
+ ObjectCollection.new(self, opts.merge(tag_name: "object"))
1528
+ end
1529
+ Watir.tag_to_class[:object] = Object
1530
+
1531
+ # @return [OList]
1532
+ def ol(opts = {})
1533
+ OList.new(self, opts.merge(tag_name: "ol"))
1534
+ end
1535
+ # @return [OListCollection]
1536
+ def ols(opts = {})
1537
+ OListCollection.new(self, opts.merge(tag_name: "ol"))
1538
+ end
1539
+ Watir.tag_to_class[:ol] = OList
1540
+
1541
+ # @return [OptGroup]
1542
+ def optgroup(opts = {})
1543
+ OptGroup.new(self, opts.merge(tag_name: "optgroup"))
1544
+ end
1545
+ # @return [OptGroupCollection]
1546
+ def optgroups(opts = {})
1547
+ OptGroupCollection.new(self, opts.merge(tag_name: "optgroup"))
1548
+ end
1549
+ Watir.tag_to_class[:optgroup] = OptGroup
1550
+
1551
+ # @return [Option]
1552
+ def option(opts = {})
1553
+ Option.new(self, opts.merge(tag_name: "option"))
1554
+ end
1555
+ # @return [OptionCollection]
1556
+ def options(opts = {})
1557
+ OptionCollection.new(self, opts.merge(tag_name: "option"))
1558
+ end
1559
+ Watir.tag_to_class[:option] = Option
1560
+
1561
+ # @return [Output]
1562
+ def output(opts = {})
1563
+ Output.new(self, opts.merge(tag_name: "output"))
1564
+ end
1565
+ # @return [OutputCollection]
1566
+ def outputs(opts = {})
1567
+ OutputCollection.new(self, opts.merge(tag_name: "output"))
1568
+ end
1569
+ Watir.tag_to_class[:output] = Output
1570
+
1571
+ # @return [Paragraph]
1572
+ def p(opts = {})
1573
+ Paragraph.new(self, opts.merge(tag_name: "p"))
1574
+ end
1575
+ # @return [ParagraphCollection]
1576
+ def ps(opts = {})
1577
+ ParagraphCollection.new(self, opts.merge(tag_name: "p"))
1578
+ end
1579
+ Watir.tag_to_class[:p] = Paragraph
1580
+
1581
+ # @return [Param]
1582
+ def param(opts = {})
1583
+ Param.new(self, opts.merge(tag_name: "param"))
1584
+ end
1585
+ # @return [ParamCollection]
1586
+ def params(opts = {})
1587
+ ParamCollection.new(self, opts.merge(tag_name: "param"))
1588
+ end
1589
+ Watir.tag_to_class[:param] = Param
1590
+
1591
+ # @return [Picture]
1592
+ def picture(opts = {})
1593
+ Picture.new(self, opts.merge(tag_name: "picture"))
1594
+ end
1595
+ # @return [PictureCollection]
1596
+ def pictures(opts = {})
1597
+ PictureCollection.new(self, opts.merge(tag_name: "picture"))
1598
+ end
1599
+ Watir.tag_to_class[:picture] = Picture
1600
+
1601
+ # @return [Pre]
1602
+ def pre(opts = {})
1603
+ Pre.new(self, opts.merge(tag_name: "pre"))
1604
+ end
1605
+ # @return [PreCollection]
1606
+ def pres(opts = {})
1607
+ PreCollection.new(self, opts.merge(tag_name: "pre"))
1608
+ end
1609
+ Watir.tag_to_class[:pre] = Pre
1610
+
1611
+ # @return [Progress]
1612
+ def progress(opts = {})
1613
+ Progress.new(self, opts.merge(tag_name: "progress"))
1614
+ end
1615
+ # @return [ProgressCollection]
1616
+ def progresses(opts = {})
1617
+ ProgressCollection.new(self, opts.merge(tag_name: "progress"))
1618
+ end
1619
+ Watir.tag_to_class[:progress] = Progress
1620
+
1621
+ # @return [Quote]
1622
+ def q(opts = {})
1623
+ Quote.new(self, opts.merge(tag_name: "q"))
1624
+ end
1625
+ # @return [QuoteCollection]
1626
+ def qs(opts = {})
1627
+ QuoteCollection.new(self, opts.merge(tag_name: "q"))
1628
+ end
1629
+ Watir.tag_to_class[:q] = Quote
1630
+
1631
+ # @return [HTMLElement]
1632
+ def rb(opts = {})
1633
+ HTMLElement.new(self, opts.merge(tag_name: "rb"))
1634
+ end
1635
+ # @return [HTMLElementCollection]
1636
+ def rbs(opts = {})
1637
+ HTMLElementCollection.new(self, opts.merge(tag_name: "rb"))
1638
+ end
1639
+ Watir.tag_to_class[:rb] = HTMLElement
1640
+
1641
+ # @return [HTMLElement]
1642
+ def rp(opts = {})
1643
+ HTMLElement.new(self, opts.merge(tag_name: "rp"))
1644
+ end
1645
+ # @return [HTMLElementCollection]
1646
+ def rps(opts = {})
1647
+ HTMLElementCollection.new(self, opts.merge(tag_name: "rp"))
1648
+ end
1649
+ Watir.tag_to_class[:rp] = HTMLElement
1650
+
1651
+ # @return [HTMLElement]
1652
+ def rt(opts = {})
1653
+ HTMLElement.new(self, opts.merge(tag_name: "rt"))
1654
+ end
1655
+ # @return [HTMLElementCollection]
1656
+ def rts(opts = {})
1657
+ HTMLElementCollection.new(self, opts.merge(tag_name: "rt"))
1658
+ end
1659
+ Watir.tag_to_class[:rt] = HTMLElement
1660
+
1661
+ # @return [HTMLElement]
1662
+ def rtc(opts = {})
1663
+ HTMLElement.new(self, opts.merge(tag_name: "rtc"))
1664
+ end
1665
+ # @return [HTMLElementCollection]
1666
+ def rtcs(opts = {})
1667
+ HTMLElementCollection.new(self, opts.merge(tag_name: "rtc"))
1668
+ end
1669
+ Watir.tag_to_class[:rtc] = HTMLElement
1670
+
1671
+ # @return [HTMLElement]
1672
+ def ruby(opts = {})
1673
+ HTMLElement.new(self, opts.merge(tag_name: "ruby"))
1674
+ end
1675
+ # @return [HTMLElementCollection]
1676
+ def rubies(opts = {})
1677
+ HTMLElementCollection.new(self, opts.merge(tag_name: "ruby"))
1678
+ end
1679
+ Watir.tag_to_class[:ruby] = HTMLElement
1680
+
1681
+ # @return [HTMLElement]
1682
+ def s(opts = {})
1683
+ HTMLElement.new(self, opts.merge(tag_name: "s"))
1684
+ end
1685
+ # @return [HTMLElementCollection]
1686
+ def ss(opts = {})
1687
+ HTMLElementCollection.new(self, opts.merge(tag_name: "s"))
1688
+ end
1689
+ Watir.tag_to_class[:s] = HTMLElement
1690
+
1691
+ # @return [HTMLElement]
1692
+ def samp(opts = {})
1693
+ HTMLElement.new(self, opts.merge(tag_name: "samp"))
1694
+ end
1695
+ # @return [HTMLElementCollection]
1696
+ def samps(opts = {})
1697
+ HTMLElementCollection.new(self, opts.merge(tag_name: "samp"))
1698
+ end
1699
+ Watir.tag_to_class[:samp] = HTMLElement
1700
+
1701
+ # @return [Script]
1702
+ def script(opts = {})
1703
+ Script.new(self, opts.merge(tag_name: "script"))
1704
+ end
1705
+ # @return [ScriptCollection]
1706
+ def scripts(opts = {})
1707
+ ScriptCollection.new(self, opts.merge(tag_name: "script"))
1708
+ end
1709
+ Watir.tag_to_class[:script] = Script
1710
+
1711
+ # @return [HTMLElement]
1712
+ def section(opts = {})
1713
+ HTMLElement.new(self, opts.merge(tag_name: "section"))
1714
+ end
1715
+ # @return [HTMLElementCollection]
1716
+ def sections(opts = {})
1717
+ HTMLElementCollection.new(self, opts.merge(tag_name: "section"))
1718
+ end
1719
+ Watir.tag_to_class[:section] = HTMLElement
1720
+
1721
+ # @return [Select]
1722
+ def select(opts = {})
1723
+ Select.new(self, opts.merge(tag_name: "select"))
1724
+ end
1725
+ # @return [SelectCollection]
1726
+ def selects(opts = {})
1727
+ SelectCollection.new(self, opts.merge(tag_name: "select"))
1728
+ end
1729
+ Watir.tag_to_class[:select] = Select
1730
+
1731
+ # @return [HTMLElement]
1732
+ def small(opts = {})
1733
+ HTMLElement.new(self, opts.merge(tag_name: "small"))
1734
+ end
1735
+ # @return [HTMLElementCollection]
1736
+ def smalls(opts = {})
1737
+ HTMLElementCollection.new(self, opts.merge(tag_name: "small"))
1738
+ end
1739
+ Watir.tag_to_class[:small] = HTMLElement
1740
+
1741
+ # @return [Source]
1742
+ def source(opts = {})
1743
+ Source.new(self, opts.merge(tag_name: "source"))
1744
+ end
1745
+ # @return [SourceCollection]
1746
+ def sources(opts = {})
1747
+ SourceCollection.new(self, opts.merge(tag_name: "source"))
1748
+ end
1749
+ Watir.tag_to_class[:source] = Source
1750
+
1751
+ # @return [Span]
1752
+ def span(opts = {})
1753
+ Span.new(self, opts.merge(tag_name: "span"))
1754
+ end
1755
+ # @return [SpanCollection]
1756
+ def spans(opts = {})
1757
+ SpanCollection.new(self, opts.merge(tag_name: "span"))
1758
+ end
1759
+ Watir.tag_to_class[:span] = Span
1760
+
1761
+ # @return [HTMLElement]
1762
+ def strong(opts = {})
1763
+ HTMLElement.new(self, opts.merge(tag_name: "strong"))
1764
+ end
1765
+ # @return [HTMLElementCollection]
1766
+ def strongs(opts = {})
1767
+ HTMLElementCollection.new(self, opts.merge(tag_name: "strong"))
1768
+ end
1769
+ Watir.tag_to_class[:strong] = HTMLElement
1770
+
1771
+ # @return [Style]
1772
+ def style(opts = {})
1773
+ Style.new(self, opts.merge(tag_name: "style"))
1774
+ end
1775
+ # @return [StyleCollection]
1776
+ def styles(opts = {})
1777
+ StyleCollection.new(self, opts.merge(tag_name: "style"))
1778
+ end
1779
+ Watir.tag_to_class[:style] = Style
1780
+
1781
+ # @return [HTMLElement]
1782
+ def sub(opts = {})
1783
+ HTMLElement.new(self, opts.merge(tag_name: "sub"))
1784
+ end
1785
+ # @return [HTMLElementCollection]
1786
+ def subs(opts = {})
1787
+ HTMLElementCollection.new(self, opts.merge(tag_name: "sub"))
1788
+ end
1789
+ Watir.tag_to_class[:sub] = HTMLElement
1790
+
1791
+ # @return [HTMLElement]
1792
+ def summary(opts = {})
1793
+ HTMLElement.new(self, opts.merge(tag_name: "summary"))
1794
+ end
1795
+ # @return [HTMLElementCollection]
1796
+ def summaries(opts = {})
1797
+ HTMLElementCollection.new(self, opts.merge(tag_name: "summary"))
1798
+ end
1799
+ Watir.tag_to_class[:summary] = HTMLElement
1800
+
1801
+ # @return [HTMLElement]
1802
+ def sup(opts = {})
1803
+ HTMLElement.new(self, opts.merge(tag_name: "sup"))
1804
+ end
1805
+ # @return [HTMLElementCollection]
1806
+ def sups(opts = {})
1807
+ HTMLElementCollection.new(self, opts.merge(tag_name: "sup"))
1808
+ end
1809
+ Watir.tag_to_class[:sup] = HTMLElement
1810
+
1811
+ # @return [Table]
1812
+ def table(opts = {})
1813
+ Table.new(self, opts.merge(tag_name: "table"))
1814
+ end
1815
+ # @return [TableCollection]
1816
+ def tables(opts = {})
1817
+ TableCollection.new(self, opts.merge(tag_name: "table"))
1818
+ end
1819
+ Watir.tag_to_class[:table] = Table
1820
+
1821
+ # @return [TableSection]
1822
+ def tbody(opts = {})
1823
+ TableSection.new(self, opts.merge(tag_name: "tbody"))
1824
+ end
1825
+ # @return [TableSectionCollection]
1826
+ def tbodys(opts = {})
1827
+ TableSectionCollection.new(self, opts.merge(tag_name: "tbody"))
1828
+ end
1829
+ Watir.tag_to_class[:tbody] = TableSection
1830
+
1831
+ # @return [TableDataCell]
1832
+ def td(opts = {})
1833
+ TableDataCell.new(self, opts.merge(tag_name: "td"))
1834
+ end
1835
+ # @return [TableDataCellCollection]
1836
+ def tds(opts = {})
1837
+ TableDataCellCollection.new(self, opts.merge(tag_name: "td"))
1838
+ end
1839
+ Watir.tag_to_class[:td] = TableDataCell
1840
+
1841
+ # @return [Template]
1842
+ def template(opts = {})
1843
+ Template.new(self, opts.merge(tag_name: "template"))
1844
+ end
1845
+ # @return [TemplateCollection]
1846
+ def templates(opts = {})
1847
+ TemplateCollection.new(self, opts.merge(tag_name: "template"))
1848
+ end
1849
+ Watir.tag_to_class[:template] = Template
1850
+
1851
+ # @return [TextArea]
1852
+ def textarea(opts = {})
1853
+ TextArea.new(self, opts.merge(tag_name: "textarea"))
1854
+ end
1855
+ # @return [TextAreaCollection]
1856
+ def textareas(opts = {})
1857
+ TextAreaCollection.new(self, opts.merge(tag_name: "textarea"))
1858
+ end
1859
+ Watir.tag_to_class[:textarea] = TextArea
1860
+
1861
+ # @return [TableSection]
1862
+ def tfoot(opts = {})
1863
+ TableSection.new(self, opts.merge(tag_name: "tfoot"))
1864
+ end
1865
+ # @return [TableSectionCollection]
1866
+ def tfoots(opts = {})
1867
+ TableSectionCollection.new(self, opts.merge(tag_name: "tfoot"))
1868
+ end
1869
+ Watir.tag_to_class[:tfoot] = TableSection
1870
+
1871
+ # @return [TableHeaderCell]
1872
+ def th(opts = {})
1873
+ TableHeaderCell.new(self, opts.merge(tag_name: "th"))
1874
+ end
1875
+ # @return [TableHeaderCellCollection]
1876
+ def ths(opts = {})
1877
+ TableHeaderCellCollection.new(self, opts.merge(tag_name: "th"))
1878
+ end
1879
+ Watir.tag_to_class[:th] = TableHeaderCell
1880
+
1881
+ # @return [TableSection]
1882
+ def thead(opts = {})
1883
+ TableSection.new(self, opts.merge(tag_name: "thead"))
1884
+ end
1885
+ # @return [TableSectionCollection]
1886
+ def theads(opts = {})
1887
+ TableSectionCollection.new(self, opts.merge(tag_name: "thead"))
1888
+ end
1889
+ Watir.tag_to_class[:thead] = TableSection
1890
+
1891
+ # @return [Time]
1892
+ def time(opts = {})
1893
+ Time.new(self, opts.merge(tag_name: "time"))
1894
+ end
1895
+ # @return [TimeCollection]
1896
+ def times(opts = {})
1897
+ TimeCollection.new(self, opts.merge(tag_name: "time"))
1898
+ end
1899
+ Watir.tag_to_class[:time] = Time
1900
+
1901
+ # @return [Title]
1902
+ def title(opts = {})
1903
+ Title.new(self, opts.merge(tag_name: "title"))
1904
+ end
1905
+ # @return [TitleCollection]
1906
+ def titles(opts = {})
1907
+ TitleCollection.new(self, opts.merge(tag_name: "title"))
1908
+ end
1909
+ Watir.tag_to_class[:title] = Title
1910
+
1911
+ # @return [TableRow]
1912
+ def tr(opts = {})
1913
+ TableRow.new(self, opts.merge(tag_name: "tr"))
1914
+ end
1915
+ # @return [TableRowCollection]
1916
+ def trs(opts = {})
1917
+ TableRowCollection.new(self, opts.merge(tag_name: "tr"))
1918
+ end
1919
+ Watir.tag_to_class[:tr] = TableRow
1920
+
1921
+ # @return [Track]
1922
+ def track(opts = {})
1923
+ Track.new(self, opts.merge(tag_name: "track"))
1924
+ end
1925
+ # @return [TrackCollection]
1926
+ def tracks(opts = {})
1927
+ TrackCollection.new(self, opts.merge(tag_name: "track"))
1928
+ end
1929
+ Watir.tag_to_class[:track] = Track
1930
+
1931
+ # @return [HTMLElement]
1932
+ def u(opts = {})
1933
+ HTMLElement.new(self, opts.merge(tag_name: "u"))
1934
+ end
1935
+ # @return [HTMLElementCollection]
1936
+ def us(opts = {})
1937
+ HTMLElementCollection.new(self, opts.merge(tag_name: "u"))
1938
+ end
1939
+ Watir.tag_to_class[:u] = HTMLElement
1940
+
1941
+ # @return [UList]
1942
+ def ul(opts = {})
1943
+ UList.new(self, opts.merge(tag_name: "ul"))
1944
+ end
1945
+ # @return [UListCollection]
1946
+ def uls(opts = {})
1947
+ UListCollection.new(self, opts.merge(tag_name: "ul"))
1948
+ end
1949
+ Watir.tag_to_class[:ul] = UList
1950
+
1951
+ # @return [HTMLElement]
1952
+ def var(opts = {})
1953
+ HTMLElement.new(self, opts.merge(tag_name: "var"))
1954
+ end
1955
+ # @return [HTMLElementCollection]
1956
+ def vars(opts = {})
1957
+ HTMLElementCollection.new(self, opts.merge(tag_name: "var"))
1958
+ end
1959
+ Watir.tag_to_class[:var] = HTMLElement
1960
+
1961
+ # @return [Video]
1962
+ def video(opts = {})
1963
+ Video.new(self, opts.merge(tag_name: "video"))
1964
+ end
1965
+ # @return [VideoCollection]
1966
+ def videos(opts = {})
1967
+ VideoCollection.new(self, opts.merge(tag_name: "video"))
1968
+ end
1969
+ Watir.tag_to_class[:video] = Video
1970
+
1971
+ # @return [HTMLElement]
1972
+ def wbr(opts = {})
1973
+ HTMLElement.new(self, opts.merge(tag_name: "wbr"))
1974
+ end
1975
+ # @return [HTMLElementCollection]
1976
+ def wbrs(opts = {})
1977
+ HTMLElementCollection.new(self, opts.merge(tag_name: "wbr"))
1978
+ end
1979
+ Watir.tag_to_class[:wbr] = HTMLElement
1980
+ end # Container
1981
+ end # Watir