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,10 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
2
+ <html>
3
+ <head>
4
+ <title></title>
5
+ </head>
6
+ <frameset cols="20%, 80%">
7
+ <frame id="one" src="nested_frame_1.html">
8
+ <frame id="two" src="nested_frame_2.html">
9
+ </frameset>
10
+ </html>
@@ -0,0 +1,12 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
2
+ <html>
3
+ <head>
4
+ <title></title>
5
+ </head>
6
+ <body>
7
+ <h3>Nested Frame</h3>
8
+ <p>
9
+ <iframe id="three" src="nested_frame_3.html"></iframe>
10
+ </p>
11
+ </body>
12
+ </html>
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
2
+ <html>
3
+ <head>
4
+ <title></title>
5
+ </head>
6
+ <h3>Top Layer</h3>
7
+ <iframe id="one" src="nested_frame_1.html"></iframe>
8
+ <iframe id="two" src="nested_iframe_2.html"></iframe>
9
+
10
+ <div id="div1">
11
+ <div id="div2"></div>
12
+ </div>
13
+ </html>
@@ -0,0 +1,203 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8">
5
+ <title>Nested tables from WebKit/LayoutTests/fast/dom</title>
6
+ </head>
7
+ <body>
8
+ <script>
9
+ // seems like the HTML parser will fix some of the problematic nesting here,
10
+ // so we build this in JS (like the original test).
11
+ function buildRowsTest()
12
+ {
13
+ var rowsTest = document.createElement("div");
14
+ rowsTest.id = "table-rows-test";
15
+
16
+ function createNoBodyRowNesting(tag, count, idx)
17
+ {
18
+ var table = document.createElement("table");
19
+ var container = document.createElement(tag);
20
+ var row = document.createElement("tr");
21
+
22
+ table.appendChild(container);
23
+ container.appendChild(row);
24
+ rowsTest.appendChild(table);
25
+
26
+ table.setAttribute("data-row-count", count)
27
+ table.setAttribute("data-browser-count", table.rows.length);
28
+ table.setAttribute("id", "tbl" + idx);
29
+ }
30
+
31
+ function createRowNesting(tag, count, idx)
32
+ {
33
+ var table = document.createElement("table");
34
+ var body = document.createElement("tbody");
35
+ var container = document.createElement(tag);
36
+ var row = document.createElement("tr");
37
+
38
+ table.appendChild(body);
39
+ body.appendChild(container);
40
+ container.appendChild(row);
41
+ rowsTest.appendChild(table)
42
+
43
+ table.setAttribute("data-row-count", count)
44
+ table.setAttribute("data-browser-count", table.rows.length);
45
+ table.setAttribute("id", "tbl" + idx);
46
+ }
47
+
48
+ var sectionTags = [
49
+ "tbody",
50
+ "tfoot",
51
+ "thead",
52
+ ];
53
+
54
+ var otherTags = [
55
+ "col",
56
+ "colgroup",
57
+ "div",
58
+ "form",
59
+ "script",
60
+ "table",
61
+ "td",
62
+ "th",
63
+ ];
64
+
65
+ var index = 0;
66
+
67
+ for (i = 0; i < otherTags.length; ++i)
68
+ createRowNesting(otherTags[i], 0, index++);
69
+
70
+ for (i = 0; i < sectionTags.length; ++i)
71
+ createRowNesting(sectionTags[i], 0, index++)
72
+
73
+ createRowNesting("tr", 1, index++)
74
+
75
+ for (i = 0; i < otherTags.length; ++i)
76
+ createNoBodyRowNesting(otherTags[i], 0, index++)
77
+
78
+ for (i = 0; i < sectionTags.length; ++i)
79
+ createNoBodyRowNesting(sectionTags[i], 1, index++)
80
+
81
+ createNoBodyRowNesting("tr", 1, index++)
82
+
83
+ document.body.appendChild(rowsTest);
84
+ };
85
+
86
+ function buildCellsTest() {
87
+ var cellsTest = document.createElement("div");
88
+ cellsTest.id = "row-cells-test";
89
+
90
+ function createCellNesting(tag, count, idx)
91
+ {
92
+ var row = document.createElement("tr");
93
+ var container = document.createElement(tag);
94
+ var cell = document.createElement("td");
95
+ row.appendChild(container);
96
+ container.appendChild(cell);
97
+
98
+ row.setAttribute("data-cell-count", count)
99
+ row.setAttribute("data-browser-count", row.cells.length);
100
+ row.setAttribute("id", "row" + idx);
101
+
102
+ cellsTest.appendChild(row);
103
+ }
104
+
105
+ function createHeaderCellNesting(tag, count, idx)
106
+ {
107
+ var row = document.createElement("tr");
108
+ var container = document.createElement(tag);
109
+ var cell = document.createElement("th");
110
+ row.appendChild(container);
111
+ container.appendChild(cell);
112
+
113
+ row.setAttribute("data-cell-count", count)
114
+ row.setAttribute("data-browser-count", row.cells.length);
115
+ row.setAttribute("id", "row" + idx);
116
+
117
+ cellsTest.appendChild(row);
118
+ }
119
+
120
+
121
+ var tags = [
122
+ "col",
123
+ "colgroup",
124
+ "div",
125
+ "form",
126
+ "script",
127
+ "table",
128
+ "tbody",
129
+ "tfoot",
130
+ "thead",
131
+ "tr",
132
+ ];
133
+
134
+ var index = 0;
135
+
136
+ for (i = 0; i < tags.length; ++i)
137
+ createCellNesting(tags[i], 0, index++);
138
+
139
+ createCellNesting("td", 1, index++);
140
+ createCellNesting("th", 1, index++);
141
+
142
+ for (i = 0; i < tags.length; ++i)
143
+ createHeaderCellNesting(tags[i], 0, index++);
144
+
145
+ createHeaderCellNesting("td", 1, index++)
146
+ createHeaderCellNesting("th", 1, index++)
147
+
148
+ document.body.appendChild(cellsTest);
149
+ };
150
+
151
+ function buildBodiesTest() {
152
+ var bodiesTest = document.createElement("table");
153
+ bodiesTest.id = "tbody-rows-test";
154
+
155
+ function createRowNesting(tag, count, idx)
156
+ {
157
+ var body = document.createElement("tbody");
158
+ var container = document.createElement(tag);
159
+ var row = document.createElement("tr");
160
+ body.appendChild(container);
161
+ container.appendChild(row);
162
+ bodiesTest.appendChild(body);
163
+
164
+ body.setAttribute("data-rows-count", count)
165
+ body.setAttribute("data-browser-count", body.rows.length);
166
+ body.setAttribute("id", "body" + idx);
167
+ }
168
+
169
+ var sectionTags = [
170
+ "tbody",
171
+ "tfoot",
172
+ "thead",
173
+ ];
174
+
175
+ var otherTags = [
176
+ "col",
177
+ "colgroup",
178
+ "div",
179
+ "form",
180
+ "script",
181
+ "table",
182
+ "td",
183
+ "th",
184
+ ];
185
+
186
+ var index = 0;
187
+ for (i = 0; i < otherTags.length; ++i)
188
+ createRowNesting(otherTags[i], 0, index++);
189
+
190
+ for (i = 0; i < sectionTags.length; ++i)
191
+ createRowNesting(sectionTags[i], 0, index++);
192
+
193
+ createRowNesting("tr", 1, index++);
194
+
195
+ document.body.appendChild(bodiesTest);
196
+ };
197
+
198
+ buildRowsTest();
199
+ buildCellsTest();
200
+ buildBodiesTest();
201
+ </script>
202
+ <body>
203
+ </html>
@@ -0,0 +1,145 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
3
+ <head>
4
+ <title>Non-control elements</title>
5
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6
+ <script src="javascript/helpers.js" type="text/javascript" charset="utf-8"></script>
7
+ </head>
8
+ <body>
9
+ <div></div>
10
+ <div id="outer_container">
11
+ <div id="header" title="Header and primary navigation" class="profile">
12
+ <h1 id="first_header" class="primary">Header 1</h1>
13
+ <ul id="navbar" class="navigation">
14
+ <li><a></a></li>
15
+ <li><a id="link_2" title="link_title_2" href="non_control_elements.html" class="external">Link 2</a></li>
16
+ <li><a id="link_3" title="link_title_3" href="forms_with_input_elements.html" name="bad_attribute" value="bad_attribute" class="external">Link 3</a></li>
17
+ <li></li>
18
+ <li id="non_link_1" class="nonlink" title="This is not a link!">Non-link 1</li>
19
+ <li id="non_link_2">Non-link 2</li>
20
+ <li>Non-link 3</li>
21
+ </ul>
22
+ </div>
23
+ <div id="promo" name="invalid_attribute" value="invalid_attribute">
24
+ <h2 id="promo_header">Promo</h2>
25
+ <span id="lead" class="lead" title="Lorem ipsum">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Curabitur eu pede. Ut justo. Praesent feugiat, elit in feugiat iaculis, sem risus rutrum justo, eget fermentum dolor arcu non nunc.</span>
26
+ <span name="invalid_attribute" value="invalid_attribute">Sed pretium metus et quam. Nullam odio dolor, vestibulum non, tempor ut, vehicula sed, sapien. Vestibulum placerat ligula at quam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</span>
27
+ <span>Suspendisse at ipsum a turpis viverra venenatis. Praesent ut nibh. Nullam eu odio. Donec tempor, elit ut lacinia porttitor, augue neque vehicula diam, in elementum ligula nisi a tellus. Aliquam vestibulum ultricies tortor. </span>
28
+ <span><strong id="descartes" class="descartes">Dubito, <em class="important-class" id="important-id" title="ergo cogito">ergo cogito</em>, ergo sum.</strong></span>
29
+ <span></span>
30
+ <h3>Chemical compounds</h3>
31
+ <ul>
32
+ <li>Abietic acid, <strong>C20H30O2</strong></li>
33
+ <li>Acenaphthene, C12H10</li>
34
+ <li>Acenaphthoquinone, C12H6O2</li>
35
+ <li>Acenaphthylene, C12H8</li>
36
+ <li>Acetaldehyde (ethanal), CH3CHO</li>
37
+ </ul>
38
+ <ol id="favorite_compounds" class="chemistry">
39
+ <li>Propanol, CH3CH2CH2OH</li>
40
+ <li>Ethane, C2H6</li>
41
+ <li>Hexene, C6H12</li>
42
+ <li>Acetone, CH3COCH3</li>
43
+ <li>Ethanol, CH3CH2OH</li>
44
+ </ol>
45
+ <ol>
46
+ <li></li>
47
+ </ol>
48
+ </div>
49
+ <div id="content">
50
+ <h2>Content</h2>
51
+ <p id="lead" class="lead" title="Lorem ipsum">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Curabitur eu pede. Ut justo. Praesent feugiat, elit in feugiat iaculis, sem risus rutrum justo, eget fermentum dolor arcu non nunc.</p>
52
+ <p name="invalid_attribute" value="invalid_attribute">Sed pretium metus et quam. Nullam odio dolor, vestibulum non, tempor ut, vehicula sed, sapien. Vestibulum placerat ligula at quam. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p>
53
+ <p>Suspendisse at ipsum a turpis viverra venenatis. Praesent ut nibh. Nullam eu odio. Donec tempor, elit ut lacinia porttitor, augue neque vehicula diam, in elementum ligula nisi a tellus. Aliquam vestibulum ultricies tortor. </p>
54
+ <p>Dubito, ergo cogito, ergo sum.</p>
55
+ <p></p>
56
+ <pre></pre>
57
+ <div id="best_language" onclick="this.innerHTML = 'Ruby!'" style="color: red; text-decoration: underline; cursor: pointer;">What's the best programming language?</div>
58
+ <h2>Ruby RSpec example</h2>
59
+ <pre class="ruby" id="rspec">
60
+ browser.pre(id: "rspec").should exist
61
+ </pre>
62
+ <h2>PHP Hello World</h2>
63
+ <pre class="php">
64
+ &lt;?php
65
+ echo "Hello, World!\n";
66
+ ?&gt;
67
+ </pre>
68
+ <h2>Ruby Hello World</h2>
69
+ <pre class="ruby">
70
+ puts "Hello, World!"
71
+ </pre>
72
+ <h2>C++ Hello World</h2>
73
+ <pre class="c-plus-plus">
74
+ main() {
75
+ cout << "Hello World!\n";
76
+ return 0;
77
+ }
78
+ </pre>
79
+ <h2>Haskell</h2>
80
+ <pre class="haskell">main = putStrLn "Hello World"</pre>
81
+ <h2>Brainfuck</h2>
82
+ <pre class="brainfuck" title="The brainfuck language is an esoteric programming language noted for its extreme minimalism">
83
+ ++++++++++
84
+ [>+++++++>++++++++++>+++>+<<<<-] The initial loop to set up useful values in the array
85
+ >++. Print 'H'
86
+ >+. Print 'e'
87
+ +++++++. Print 'l'
88
+ . Print 'l'
89
+ +++. Print 'o'
90
+ >++. Print ' '
91
+ <<+++++++++++++++. Print 'W'
92
+ >. Print 'o'
93
+ +++. Print 'r'
94
+ ------. Print 'l'
95
+ --------. Print 'd'
96
+ >+. Print '!'
97
+ >. Print newline
98
+ </pre>
99
+ </div>
100
+ <div id="html_test" class=some_class title="This is a title" ondblclick="WatirSpec.addMessage('double clicked')">
101
+ <h1 id="header1">Header 1</h1>
102
+ <h2 id="header2">Header 2</h2>
103
+ <h3 id="header3">Header 3</h3>
104
+ <h4 id="header4">Header 4</h4>
105
+ <h5 id="header5">Header 5</h5>
106
+ <h6 id="header6">Header 6</h6>
107
+ <h6 id="empty_header"></h6>
108
+ </div>
109
+ <div id="footer" title="Closing remarks" class="profile">
110
+ <span class="footer" onclick="this.innerHTML = 'This is a footer with text set by Javascript.'">This is a footer.</span>
111
+ </div>
112
+ <a href="strip_space ">Space should be stripped from href</a>
113
+ <div id="shown"><div id="hidden" style="display: none;">Not shown</div><div>Not hidden</div></div>
114
+ </div>
115
+
116
+ <div id="messages"></div>
117
+
118
+ <div id="ins_tag_test">
119
+ <ins id="lead" class="lead" title='Lorem ipsum'>This is an inserted text tag 1</ins>
120
+ <ins value="invalid_attribute">This is an inserted text tag 2</ins>
121
+ <ins>This is an inserted text tag 3</ins>
122
+ <ins></ins>
123
+ <ins class="footer" onclick="this.innerHTML = 'This is an ins with text set by Javascript.'">This is an ins.</ins>
124
+ </div>
125
+
126
+ <div id="del_tag_test">
127
+ <del id="lead" class="lead" title='Lorem ipsum'>This is a deleted text tag 1</del>
128
+ <del value="invalid_attribute">This is a deleted text tag 2</del>
129
+ <del>This is a deleted text tag 3</del>
130
+ <del></del>
131
+ <del class="footer" onclick="this.innerHTML = 'This is a del with text set by Javascript.'">This is a del.</del>
132
+ </div>
133
+ <div custom-attribute=custom>Custom</div>
134
+ <div id="visible_link">
135
+ <a id="all_visible_link">all visible</a>
136
+ <a id="some_visible_link">some visible<span style="display:none;"> some hidden</span></a>
137
+ <a id="no_visible_link" style="display:none;">none visible</a>
138
+ </div>
139
+ <div id="visible_text">
140
+ <div id="all_visible_text">all visible</div>
141
+ <div id="some_visible_text">some visible<span style="display:none;"> some hidden</span></div>
142
+ <div id="no_visible_text" style="display:none;">none visible</div>
143
+ </div>
144
+ </body>
145
+ </html>
@@ -0,0 +1,36 @@
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8">
4
+ <title>Obscured</title>
5
+ </head>
6
+ <body>
7
+ <h1>No Overlap</h1>
8
+ <button style="height: 100px; width: 100px;" id="not_obscured"></button>
9
+
10
+ <h1>Overlap By Descendant</h1>
11
+ <button style="height: 100px; width: 100px;" id="has_descendant">
12
+ <div style="height: 90px; width: 90px; background: rgba(0,255,0,.5);">foobar</div>
13
+ </button>
14
+
15
+ <h1>Overlap By Other</h1>
16
+ <p>
17
+ <button style="width: 100px; margin: 40px 0;" id="obscured">foobar</button>
18
+ </p>
19
+ <div style="position: absolute; height: 100px; width: 100px; background: rgba(255,0,0,.5); margin-left: 40px; margin-top: -120px;"></div>
20
+
21
+ <h1>Overlap But Not At Center</h1>
22
+ <p>
23
+ <button style="width: 100px; height: 100px;" id="surrounded">foobar</button>
24
+ </p>
25
+ <div style="position: absolute; height: 50px; width: 100px; background: rgba(255,0,0,.5); margin-top: -120px;"></div>
26
+ <div style="position: absolute; height: 50px; width: 100px; background: rgba(255,0,0,.5); margin-top: -60px;"></div>
27
+ <div style="position: absolute; height: 100px; width: 50px; background: rgba(255,0,0,.5); margin-top: -120px; margin-left: -5px;"></div>
28
+ <div style="position: absolute; height: 100px; width: 50px; background: rgba(255,0,0,.5); margin-top: -120px; margin-left: 55px;"></div>
29
+
30
+ <button style="position: absolute; width: 0; height: 0; top: -500px; left: -500px; overflow: hidden" id="off_screen">off-screen</button>
31
+ <button style="display: none;" id="hidden">hidden</button>
32
+ <div id="requires_scrolling_container">
33
+ <button style="position: absolute; top: 5000px;" id="requires_scrolling">requires scrolling</button>'
34
+ </div>
35
+ </body>
36
+ </html>
@@ -0,0 +1,24 @@
1
+ <!DOCTYPE HTML>
2
+ <html>
3
+ <head>
4
+ <title>obsolete element</title>
5
+ <script type="text/javascript" charset="utf-8">
6
+ function removeText() {
7
+ var e = document.getElementById("text");
8
+ e.parentNode.removeChild(e);
9
+ }
10
+ </script>
11
+ </head>
12
+
13
+ <body>
14
+ <button id='remove-button' onclick="removeText()">Remove text</button>
15
+ <div id="text">Text</div>
16
+
17
+ <div id='top'>Top Element>
18
+ <div id='middle'>Middle Element>
19
+ <div id='bottom'>Bottom Element</div>
20
+ </div>
21
+ </div>
22
+
23
+ </body>
24
+ </html>
@@ -0,0 +1,23 @@
1
+ <html>
2
+ <head>
3
+ <meta http-equiv="Content-type" content="text/html; charset=utf-8">
4
+ <title>Right Click Test</title>
5
+ <script src="javascript/helpers.js" type="text/javascript" charset="utf-8"></script>
6
+ <script src="javascript/jquery-1.7.1.min.js" type="text/javascript" charset="utf-8"></script>
7
+ </head>
8
+ <script>
9
+ $(document).ready(function() {
10
+ $(document).on("contextmenu", "#click-logger", function(evt){
11
+ $("#log").append("<p>control=" + evt.ctrlKey + " alt=" + evt.altKey + "</p>");
12
+ return false;
13
+ });
14
+ });
15
+ </script>
16
+ <body>
17
+ <div id="messages"></div>
18
+ <div id="click" oncontextmenu='WatirSpec.addMessage("right-clicked"); return false'>Right click!</div>
19
+ <br />
20
+ <div id="click-logger">Right click with modifiers!</div>
21
+ <div id="log"></div>
22
+ </body>
23
+ </html>
@@ -0,0 +1,15 @@
1
+ <html>
2
+ <head>
3
+ <style media="screen">
4
+ div { color: blue; }
5
+ div:hover { color: orange; }
6
+ </style>
7
+ </head>
8
+ <body>
9
+ <div style="height: 300%; position: relative;">
10
+ <div id="top" style="position: absolute; top: 0;">top</div>
11
+ <div id="center" style="position: absolute; top: 50%;">Center</div>
12
+ <div id="bottom" style="position: absolute; top: 100%;">bottom</div>
13
+ </div>
14
+ </body>
15
+ </html>
@@ -0,0 +1,17 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Welcome Page</title>
5
+ <meta name="author" content="Software Freedom Conservancy">
6
+ <link rel="author" href="https://github.com/SeleniumHQ/selenium/blob/selenium-4.2.0/common/src/web/scrolling_tests/frame_with_height_above_200.html">
7
+ <link rel="license" href="https://github.com/SeleniumHQ/selenium/blob/trunk/LICENSE">
8
+ </head>
9
+ <body>
10
+ <div>
11
+ <iframe name="nested_scrolling_frame" src="child_frame.html" width="800" height="200" ></iframe>
12
+ </div>
13
+ <div><a href="https://github.com/SeleniumHQ/selenium/blob/selenium-4.2.0/common/src/web/scrolling_tests/frame_with_nested_scrolling_frame_out_of_view.html">
14
+ &copy; Software Freedom Conservancy
15
+ </a></div>
16
+ </body>
17
+ </html>
@@ -0,0 +1,18 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Welcome Page</title>
5
+ <meta name="author" content="Software Freedom Conservancy">
6
+ <link rel="author" href="https://github.com/SeleniumHQ/selenium/blob/selenium-4.2.0/common/src/web/scrolling_tests/frame_with_height_above_200.html">
7
+ <link rel="license" href="https://github.com/SeleniumHQ/selenium/blob/trunk/LICENSE">
8
+ </head>
9
+ <body>
10
+ <div style="height: 5000px;"><a href="https://github.com/SeleniumHQ/selenium/blob/selenium-4.2.0/common/src/web/scrolling_tests/frame_with_nested_scrolling_frame_out_of_view.html">
11
+ HTML copyright Software Freedom Conservancy
12
+ </a></div>
13
+ <div>
14
+ <iframe name="nested_scrolling_frame" src="child_frame.html" width="800" height="200" ></iframe>
15
+ </div>
16
+ <footer>IFrame Above</footer>
17
+ </body>
18
+ </html>
@@ -0,0 +1,28 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5
+ <title>Shadow DOM</title>
6
+ </head>
7
+ <body>
8
+ <div id="non_host"></div>
9
+ <div id="shadow_host"></div>
10
+ <a href="scroll.html">scroll.html</a>
11
+ <script>
12
+ let shadowRoot = document.getElementById('shadow_host').attachShadow({mode: 'open'});
13
+ shadowRoot.innerHTML = `
14
+ <span class="wrapper" id="shadow_content"><span class="info">some text</span></span>
15
+ <div id="nested_shadow_host"></div>
16
+ <div id="chrome_workaround"><a href="scroll.html">scroll.html</a></div>
17
+ <input type="text" />
18
+ <input type="checkbox" />
19
+ <input type="file" />
20
+ `;
21
+
22
+ let nestedShadowRoot = shadowRoot.getElementById('nested_shadow_host').attachShadow({mode: 'open'});
23
+ nestedShadowRoot.innerHTML = `
24
+ <div id="nested_shadow_content"><div>nested text</div></div>
25
+ `;
26
+ </script>
27
+ </body>
28
+ </html>
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5
+ <title>Special Chars</title>
6
+ </head>
7
+
8
+ <body>
9
+ <div id='single-quote'>single 'quotes'</div>
10
+ <div id='double-quote'>double "quotes"</div>
11
+ <div underscored_attribute='true'>underscored attribute</div>
12
+ <div id='special' we{ird='foo'>attribute with non-standard XML characters</div>
13
+ <custom-tag id='custom_tag'>custom tag</custom-tag>
14
+ </body>
15
+ </html>
@@ -0,0 +1,10 @@
1
+ <html>
2
+ <body>
3
+ <div style="height: 300%; position: relative;">
4
+ <header style="position: sticky; z-index: 10; top: 0;"><h1>Sticky Header</h1></header>
5
+ <div id="top" style="position: absolute; top: 0;">top</div>
6
+ <div id="center" style="position: absolute; top: 50%;">Center</div>
7
+ <div id="bottom" style="position: absolute; top: 100%;">bottom</div>
8
+ </div>
9
+ </body>
10
+ </html>