watir 7.0.0 → 7.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (258) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/chrome.yml +29 -16
  3. data/.github/workflows/edge.yml +19 -11
  4. data/.github/workflows/firefox.yml +28 -16
  5. data/.github/workflows/ie.yml +13 -7
  6. data/.github/workflows/safari.yml +22 -11
  7. data/.github/workflows/unit.yml +31 -23
  8. data/.rubocop.yml +33 -13
  9. data/.rubocop_todo.yml +7 -26
  10. data/CHANGES.md +33 -0
  11. data/Gemfile +6 -1
  12. data/LICENSE +2 -2
  13. data/README.md +15 -11
  14. data/Rakefile +9 -7
  15. data/lib/watir/adjacent.rb +3 -1
  16. data/lib/watir/after_hooks.rb +5 -3
  17. data/lib/watir/alert.rb +2 -0
  18. data/lib/watir/aliases.rb +2 -0
  19. data/lib/watir/attribute_helper.rb +4 -2
  20. data/lib/watir/browser.rb +10 -14
  21. data/lib/watir/capabilities.rb +53 -33
  22. data/lib/watir/cell_container.rb +2 -0
  23. data/lib/watir/container.rb +2 -0
  24. data/lib/watir/cookies.rb +5 -5
  25. data/lib/watir/element_collection.rb +3 -1
  26. data/lib/watir/elements/button.rb +2 -0
  27. data/lib/watir/elements/cell.rb +2 -0
  28. data/lib/watir/elements/checkbox.rb +2 -0
  29. data/lib/watir/elements/date_field.rb +2 -0
  30. data/lib/watir/elements/date_time_field.rb +2 -0
  31. data/lib/watir/elements/dlist.rb +3 -1
  32. data/lib/watir/elements/element.rb +68 -118
  33. data/lib/watir/elements/file_field.rb +2 -0
  34. data/lib/watir/elements/font.rb +2 -0
  35. data/lib/watir/elements/form.rb +2 -0
  36. data/lib/watir/elements/hidden.rb +2 -0
  37. data/lib/watir/elements/iframe.rb +2 -0
  38. data/lib/watir/elements/image.rb +2 -0
  39. data/lib/watir/elements/input.rb +2 -0
  40. data/lib/watir/elements/link.rb +2 -0
  41. data/lib/watir/elements/list.rb +2 -0
  42. data/lib/watir/elements/option.rb +2 -0
  43. data/lib/watir/elements/radio.rb +2 -0
  44. data/lib/watir/elements/row.rb +2 -0
  45. data/lib/watir/elements/select.rb +2 -0
  46. data/lib/watir/elements/table.rb +3 -1
  47. data/lib/watir/elements/table_cell.rb +2 -0
  48. data/lib/watir/elements/table_row.rb +2 -0
  49. data/lib/watir/elements/table_section.rb +2 -0
  50. data/lib/watir/elements/text_area.rb +2 -0
  51. data/lib/watir/elements/text_field.rb +2 -0
  52. data/lib/watir/exception.rb +2 -0
  53. data/lib/watir/extensions/nokogiri.rb +2 -0
  54. data/lib/watir/generator/base/generator.rb +2 -0
  55. data/lib/watir/generator/base/idl_sorter.rb +3 -1
  56. data/lib/watir/generator/base/spec_extractor.rb +6 -4
  57. data/lib/watir/generator/base/util.rb +2 -0
  58. data/lib/watir/generator/base/visitor.rb +5 -5
  59. data/lib/watir/generator/base.rb +2 -1
  60. data/lib/watir/generator/html/generator.rb +2 -0
  61. data/lib/watir/generator/html/spec_extractor.rb +2 -0
  62. data/lib/watir/generator/html/visitor.rb +2 -0
  63. data/lib/watir/generator/html.rb +2 -0
  64. data/lib/watir/generator/svg/generator.rb +2 -0
  65. data/lib/watir/generator/svg/spec_extractor.rb +2 -0
  66. data/lib/watir/generator/svg/visitor.rb +2 -0
  67. data/lib/watir/generator/svg.rb +2 -0
  68. data/lib/watir/generator.rb +2 -0
  69. data/lib/watir/has_window.rb +3 -1
  70. data/lib/watir/http_client.rb +2 -0
  71. data/lib/watir/js_execution.rb +2 -0
  72. data/lib/watir/js_snippets/isElementInViewport.js +20 -0
  73. data/lib/watir/js_snippets.rb +2 -0
  74. data/lib/watir/locators/anchor/selector_builder.rb +5 -0
  75. data/lib/watir/locators/button/matcher.rb +2 -0
  76. data/lib/watir/locators/button/selector_builder/xpath.rb +15 -19
  77. data/lib/watir/locators/button/selector_builder.rb +2 -0
  78. data/lib/watir/locators/cell/selector_builder/xpath.rb +2 -0
  79. data/lib/watir/locators/cell/selector_builder.rb +2 -0
  80. data/lib/watir/locators/element/locator.rb +2 -0
  81. data/lib/watir/locators/element/matcher.rb +4 -1
  82. data/lib/watir/locators/element/selector_builder/regexp_disassembler.rb +4 -1
  83. data/lib/watir/locators/element/selector_builder/xpath.rb +16 -15
  84. data/lib/watir/locators/element/selector_builder/xpath_support.rb +4 -2
  85. data/lib/watir/locators/element/selector_builder.rb +16 -6
  86. data/lib/watir/locators/option/matcher.rb +2 -0
  87. data/lib/watir/locators/option/selector_builder/xpath.rb +2 -0
  88. data/lib/watir/locators/option/selector_builder.rb +2 -0
  89. data/lib/watir/locators/row/selector_builder/xpath.rb +2 -0
  90. data/lib/watir/locators/row/selector_builder.rb +2 -0
  91. data/lib/watir/locators/text_area/selector_builder/xpath.rb +2 -0
  92. data/lib/watir/locators/text_area/selector_builder.rb +2 -0
  93. data/lib/watir/locators/text_field/matcher.rb +2 -4
  94. data/lib/watir/locators/text_field/selector_builder/xpath.rb +2 -0
  95. data/lib/watir/locators/text_field/selector_builder.rb +2 -0
  96. data/lib/watir/locators.rb +2 -0
  97. data/lib/watir/logger.rb +2 -0
  98. data/lib/watir/navigation.rb +3 -1
  99. data/lib/watir/radio_set.rb +2 -0
  100. data/lib/watir/row_container.rb +2 -0
  101. data/lib/watir/screenshot.rb +2 -0
  102. data/lib/watir/scroll.rb +29 -3
  103. data/lib/watir/search_context.rb +96 -0
  104. data/lib/watir/shadow_root.rb +60 -0
  105. data/lib/watir/user_editable.rb +3 -1
  106. data/lib/watir/version.rb +3 -1
  107. data/lib/watir/wait/timer.rb +3 -1
  108. data/lib/watir/wait.rb +5 -5
  109. data/lib/watir/window.rb +7 -3
  110. data/lib/watir/window_collection.rb +4 -1
  111. data/lib/watir.rb +4 -0
  112. data/lib/watirspec/guards.rb +2 -0
  113. data/lib/watirspec/implementation.rb +14 -10
  114. data/lib/watirspec/rake_tasks.rb +4 -4
  115. data/lib/watirspec/remote_server.rb +5 -3
  116. data/lib/watirspec/runner.rb +3 -1
  117. data/lib/watirspec/server/app.rb +2 -0
  118. data/lib/watirspec/server.rb +2 -0
  119. data/lib/watirspec.rb +7 -4
  120. data/spec/locator_spec_helper.rb +2 -8
  121. data/spec/spec_helper.rb +2 -0
  122. data/spec/unit/capabilities_spec.rb +561 -550
  123. data/spec/unit/element_locator_spec.rb +71 -58
  124. data/spec/unit/match_elements/button_spec.rb +58 -49
  125. data/spec/unit/match_elements/element_spec.rb +305 -309
  126. data/spec/unit/match_elements/text_field_spec.rb +78 -73
  127. data/spec/unit/selector_builder/anchor_spec.rb +41 -33
  128. data/spec/unit/selector_builder/button_spec.rb +211 -201
  129. data/spec/unit/selector_builder/cell_spec.rb +50 -42
  130. data/spec/unit/selector_builder/element_spec.rb +636 -628
  131. data/spec/unit/selector_builder/row_spec.rb +121 -104
  132. data/spec/unit/selector_builder/text_field_spec.rb +197 -182
  133. data/spec/unit/selector_builder/textarea_spec.rb +24 -14
  134. data/spec/unit/unit_helper.rb +2 -0
  135. data/spec/unit/wait_spec.rb +77 -71
  136. data/spec/watirspec/adjacent_spec.rb +251 -247
  137. data/spec/watirspec/after_hooks_spec.rb +160 -162
  138. data/spec/watirspec/alert_spec.rb +63 -58
  139. data/spec/watirspec/browser_spec.rb +411 -407
  140. data/spec/watirspec/capabilities_spec.rb +566 -0
  141. data/spec/watirspec/cookies_spec.rb +122 -118
  142. data/spec/watirspec/drag_and_drop_spec.rb +30 -14
  143. data/spec/watirspec/element_hidden_spec.rb +68 -60
  144. data/spec/watirspec/elements/area_spec.rb +51 -47
  145. data/spec/watirspec/elements/areas_spec.rb +29 -25
  146. data/spec/watirspec/elements/button_spec.rb +255 -251
  147. data/spec/watirspec/elements/buttons_spec.rb +38 -34
  148. data/spec/watirspec/elements/checkbox_spec.rb +50 -36
  149. data/spec/watirspec/elements/checkboxes_spec.rb +31 -27
  150. data/spec/watirspec/elements/collections_spec.rb +128 -119
  151. data/spec/watirspec/elements/date_field_spec.rb +187 -183
  152. data/spec/watirspec/elements/date_fields_spec.rb +31 -27
  153. data/spec/watirspec/elements/date_time_field_spec.rb +199 -195
  154. data/spec/watirspec/elements/date_time_fields_spec.rb +32 -28
  155. data/spec/watirspec/elements/dd_spec.rb +89 -85
  156. data/spec/watirspec/elements/dds_spec.rb +29 -25
  157. data/spec/watirspec/elements/del_spec.rb +108 -104
  158. data/spec/watirspec/elements/dels_spec.rb +28 -24
  159. data/spec/watirspec/elements/div_spec.rb +227 -211
  160. data/spec/watirspec/elements/divs_spec.rb +39 -35
  161. data/spec/watirspec/elements/dl_spec.rb +112 -110
  162. data/spec/watirspec/elements/dls_spec.rb +30 -26
  163. data/spec/watirspec/elements/dt_spec.rb +88 -84
  164. data/spec/watirspec/elements/dts_spec.rb +29 -25
  165. data/spec/watirspec/elements/element_spec.rb +815 -715
  166. data/spec/watirspec/elements/elements_spec.rb +42 -38
  167. data/spec/watirspec/elements/em_spec.rb +64 -60
  168. data/spec/watirspec/elements/ems_spec.rb +30 -26
  169. data/spec/watirspec/elements/filefield_spec.rb +100 -96
  170. data/spec/watirspec/elements/filefields_spec.rb +30 -26
  171. data/spec/watirspec/elements/font_spec.rb +22 -18
  172. data/spec/watirspec/elements/form_spec.rb +53 -49
  173. data/spec/watirspec/elements/forms_spec.rb +31 -27
  174. data/spec/watirspec/elements/frame_spec.rb +91 -87
  175. data/spec/watirspec/elements/frames_spec.rb +29 -25
  176. data/spec/watirspec/elements/hidden_spec.rb +81 -77
  177. data/spec/watirspec/elements/hiddens_spec.rb +30 -26
  178. data/spec/watirspec/elements/hn_spec.rb +61 -57
  179. data/spec/watirspec/elements/hns_spec.rb +28 -24
  180. data/spec/watirspec/elements/iframe_spec.rb +197 -191
  181. data/spec/watirspec/elements/iframes_spec.rb +33 -29
  182. data/spec/watirspec/elements/image_spec.rb +146 -142
  183. data/spec/watirspec/elements/images_spec.rb +28 -24
  184. data/spec/watirspec/elements/input_spec.rb +11 -7
  185. data/spec/watirspec/elements/ins_spec.rb +108 -104
  186. data/spec/watirspec/elements/inses_spec.rb +28 -24
  187. data/spec/watirspec/elements/label_spec.rb +58 -54
  188. data/spec/watirspec/elements/labels_spec.rb +28 -24
  189. data/spec/watirspec/elements/li_spec.rb +76 -72
  190. data/spec/watirspec/elements/link_spec.rb +175 -179
  191. data/spec/watirspec/elements/links_spec.rb +47 -43
  192. data/spec/watirspec/elements/lis_spec.rb +29 -25
  193. data/spec/watirspec/elements/list_spec.rb +46 -42
  194. data/spec/watirspec/elements/map_spec.rb +59 -55
  195. data/spec/watirspec/elements/maps_spec.rb +29 -25
  196. data/spec/watirspec/elements/meta_spec.rb +18 -14
  197. data/spec/watirspec/elements/metas_spec.rb +28 -24
  198. data/spec/watirspec/elements/ol_spec.rb +58 -65
  199. data/spec/watirspec/elements/ols_spec.rb +28 -24
  200. data/spec/watirspec/elements/option_spec.rb +93 -89
  201. data/spec/watirspec/elements/p_spec.rb +79 -75
  202. data/spec/watirspec/elements/pre_spec.rb +77 -73
  203. data/spec/watirspec/elements/pres_spec.rb +28 -24
  204. data/spec/watirspec/elements/ps_spec.rb +28 -24
  205. data/spec/watirspec/elements/radio_spec.rb +253 -249
  206. data/spec/watirspec/elements/radios_spec.rb +30 -26
  207. data/spec/watirspec/elements/select_list_spec.rb +539 -522
  208. data/spec/watirspec/elements/select_lists_spec.rb +34 -30
  209. data/spec/watirspec/elements/span_spec.rb +114 -110
  210. data/spec/watirspec/elements/spans_spec.rb +28 -24
  211. data/spec/watirspec/elements/strong_spec.rb +60 -58
  212. data/spec/watirspec/elements/strongs_spec.rb +30 -26
  213. data/spec/watirspec/elements/table_spec.rb +194 -139
  214. data/spec/watirspec/elements/tables_spec.rb +30 -26
  215. data/spec/watirspec/elements/tbody_spec.rb +71 -67
  216. data/spec/watirspec/elements/tbodys_spec.rb +42 -38
  217. data/spec/watirspec/elements/td_spec.rb +68 -64
  218. data/spec/watirspec/elements/tds_spec.rb +43 -39
  219. data/spec/watirspec/elements/text_field_spec.rb +208 -204
  220. data/spec/watirspec/elements/text_fields_spec.rb +32 -28
  221. data/spec/watirspec/elements/textarea_spec.rb +22 -18
  222. data/spec/watirspec/elements/textareas_spec.rb +20 -16
  223. data/spec/watirspec/elements/tfoot_spec.rb +67 -63
  224. data/spec/watirspec/elements/tfoots_spec.rb +44 -40
  225. data/spec/watirspec/elements/thead_spec.rb +67 -63
  226. data/spec/watirspec/elements/theads_spec.rb +44 -40
  227. data/spec/watirspec/elements/tr_spec.rb +50 -46
  228. data/spec/watirspec/elements/trs_spec.rb +44 -40
  229. data/spec/watirspec/elements/ul_spec.rb +58 -54
  230. data/spec/watirspec/elements/uls_spec.rb +28 -24
  231. data/spec/watirspec/html/child_frame.html +29 -0
  232. data/spec/watirspec/html/class_locator.html +2 -0
  233. data/spec/watirspec/html/scroll.html +8 -25
  234. data/spec/watirspec/html/scroll_nested.html +17 -0
  235. data/spec/watirspec/html/scroll_nested_offscreen.html +18 -0
  236. data/spec/watirspec/html/shadow_dom.html +28 -0
  237. data/spec/watirspec/html/sticky_elements.html +10 -0
  238. data/spec/watirspec/radio_set_spec.rb +271 -267
  239. data/spec/watirspec/screenshot_spec.rb +22 -18
  240. data/spec/watirspec/scroll_spec.rb +179 -77
  241. data/spec/watirspec/shadow_root_spec.rb +106 -0
  242. data/spec/watirspec/support/rspec_matchers.rb +35 -32
  243. data/spec/watirspec/user_editable_spec.rb +202 -198
  244. data/spec/watirspec/wait_spec.rb +291 -295
  245. data/spec/watirspec/window_switching_spec.rb +426 -428
  246. data/spec/watirspec_helper.rb +25 -42
  247. data/support/doctest_helper.rb +2 -0
  248. data/support/version_differ.rb +2 -0
  249. data/watir.gemspec +14 -10
  250. metadata +91 -240
  251. data/.github/actions/enable-safari/action.yml +0 -11
  252. data/.github/actions/install-chrome/action.yml +0 -12
  253. data/.github/actions/setup-linux/action.yml +0 -8
  254. data/lib/watir-webdriver.rb +0 -2
  255. data/spec/watirspec/attributes_spec.rb +0 -16
  256. data/spec/watirspec/elements/table_nesting_spec.rb +0 -49
  257. data/spec/watirspec/html/hover.html +0 -12
  258. data/spec/watirspec/special_chars_spec.rb +0 -21
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: watir
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.0.0
4
+ version: 7.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alex Rodionov
@@ -10,22 +10,8 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2021-10-18 00:00:00.000000000 Z
13
+ date: 2023-01-03 00:00:00.000000000 Z
14
14
  dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: selenium-webdriver
17
- requirement: !ruby/object:Gem::Requirement
18
- requirements:
19
- - - "~>"
20
- - !ruby/object:Gem::Version
21
- version: '4.0'
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- requirements:
26
- - - "~>"
27
- - !ruby/object:Gem::Version
28
- version: '4.0'
29
15
  - !ruby/object:Gem::Dependency
30
16
  name: regexp_parser
31
17
  requirement: !ruby/object:Gem::Requirement
@@ -47,41 +33,41 @@ dependencies:
47
33
  - !ruby/object:Gem::Version
48
34
  version: '3'
49
35
  - !ruby/object:Gem::Dependency
50
- name: activesupport
36
+ name: selenium-webdriver
51
37
  requirement: !ruby/object:Gem::Requirement
52
38
  requirements:
53
39
  - - "~>"
54
40
  - !ruby/object:Gem::Version
55
- version: '4.0'
56
- - - ">="
57
- - !ruby/object:Gem::Version
58
- version: 4.1.11
59
- type: :development
41
+ version: '4.2'
42
+ type: :runtime
60
43
  prerelease: false
61
44
  version_requirements: !ruby/object:Gem::Requirement
62
45
  requirements:
63
46
  - - "~>"
64
47
  - !ruby/object:Gem::Version
65
- version: '4.0'
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: 4.1.11
48
+ version: '4.2'
69
49
  - !ruby/object:Gem::Dependency
70
- name: coveralls_reborn
50
+ name: activesupport
71
51
  requirement: !ruby/object:Gem::Requirement
72
52
  requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '4.0'
73
56
  - - ">="
74
57
  - !ruby/object:Gem::Version
75
- version: '0'
58
+ version: 4.1.11
76
59
  type: :development
77
60
  prerelease: false
78
61
  version_requirements: !ruby/object:Gem::Requirement
79
62
  requirements:
63
+ - - "~>"
64
+ - !ruby/object:Gem::Version
65
+ version: '4.0'
80
66
  - - ">="
81
67
  - !ruby/object:Gem::Version
82
- version: '0'
68
+ version: 4.1.11
83
69
  - !ruby/object:Gem::Dependency
84
- name: fuubar
70
+ name: coveralls_reborn
85
71
  requirement: !ruby/object:Gem::Requirement
86
72
  requirements:
87
73
  - - ">="
@@ -100,28 +86,28 @@ dependencies:
100
86
  requirements:
101
87
  - - ">="
102
88
  - !ruby/object:Gem::Version
103
- version: '0'
89
+ version: 1.14.0.rc1
104
90
  type: :development
105
91
  prerelease: false
106
92
  version_requirements: !ruby/object:Gem::Requirement
107
93
  requirements:
108
94
  - - ">="
109
95
  - !ruby/object:Gem::Version
110
- version: '0'
96
+ version: 1.14.0.rc1
111
97
  - !ruby/object:Gem::Dependency
112
98
  name: pry
113
99
  requirement: !ruby/object:Gem::Requirement
114
100
  requirements:
115
- - - ">="
101
+ - - "~>"
116
102
  - !ruby/object:Gem::Version
117
- version: '0'
103
+ version: '0.14'
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
107
  requirements:
122
- - - ">="
108
+ - - "~>"
123
109
  - !ruby/object:Gem::Version
124
- version: '0'
110
+ version: '0.14'
125
111
  - !ruby/object:Gem::Dependency
126
112
  name: rake
127
113
  requirement: !ruby/object:Gem::Requirement
@@ -170,30 +156,58 @@ dependencies:
170
156
  requirements:
171
157
  - - "~>"
172
158
  - !ruby/object:Gem::Version
173
- version: '0.59'
159
+ version: '1.42'
174
160
  type: :development
175
161
  prerelease: false
176
162
  version_requirements: !ruby/object:Gem::Requirement
177
163
  requirements:
178
164
  - - "~>"
179
165
  - !ruby/object:Gem::Version
180
- version: '0.59'
166
+ version: '1.42'
181
167
  - !ruby/object:Gem::Dependency
182
- name: selenium_statistics
168
+ name: rubocop-performance
183
169
  requirement: !ruby/object:Gem::Requirement
184
170
  requirements:
185
- - - ">="
171
+ - - "~>"
186
172
  - !ruby/object:Gem::Version
187
- version: '0'
173
+ version: '1.15'
188
174
  type: :development
189
175
  prerelease: false
190
176
  version_requirements: !ruby/object:Gem::Requirement
191
177
  requirements:
192
- - - ">="
178
+ - - "~>"
193
179
  - !ruby/object:Gem::Version
194
- version: '0'
180
+ version: '1.15'
195
181
  - !ruby/object:Gem::Dependency
196
- name: simplecov-console
182
+ name: rubocop-rake
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: '0.6'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: '0.6'
195
+ - !ruby/object:Gem::Dependency
196
+ name: rubocop-rspec
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - "~>"
200
+ - !ruby/object:Gem::Version
201
+ version: '2.16'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - "~>"
207
+ - !ruby/object:Gem::Version
208
+ version: '2.16'
209
+ - !ruby/object:Gem::Dependency
210
+ name: selenium_statistics
197
211
  requirement: !ruby/object:Gem::Requirement
198
212
  requirements:
199
213
  - - ">="
@@ -207,7 +221,7 @@ dependencies:
207
221
  - !ruby/object:Gem::Version
208
222
  version: '0'
209
223
  - !ruby/object:Gem::Dependency
210
- name: webdrivers
224
+ name: selenium-webdriver
211
225
  requirement: !ruby/object:Gem::Requirement
212
226
  requirements:
213
227
  - - "~>"
@@ -220,6 +234,20 @@ dependencies:
220
234
  - - "~>"
221
235
  - !ruby/object:Gem::Version
222
236
  version: '4.7'
237
+ - !ruby/object:Gem::Dependency
238
+ name: simplecov-console
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
223
251
  - !ruby/object:Gem::Dependency
224
252
  name: webidl
225
253
  requirement: !ruby/object:Gem::Requirement
@@ -240,14 +268,14 @@ dependencies:
240
268
  requirements:
241
269
  - - ">"
242
270
  - !ruby/object:Gem::Version
243
- version: 0.8.2.1
271
+ version: 0.9.11
244
272
  type: :development
245
273
  prerelease: false
246
274
  version_requirements: !ruby/object:Gem::Requirement
247
275
  requirements:
248
276
  - - ">"
249
277
  - !ruby/object:Gem::Version
250
- version: 0.8.2.1
278
+ version: 0.9.11
251
279
  - !ruby/object:Gem::Dependency
252
280
  name: yard-doctest
253
281
  requirement: !ruby/object:Gem::Requirement
@@ -275,9 +303,6 @@ extra_rdoc_files: []
275
303
  files:
276
304
  - ".document"
277
305
  - ".github/ISSUE_TEMPLATE.md"
278
- - ".github/actions/enable-safari/action.yml"
279
- - ".github/actions/install-chrome/action.yml"
280
- - ".github/actions/setup-linux/action.yml"
281
306
  - ".github/workflows/chrome.yml"
282
307
  - ".github/workflows/edge.yml"
283
308
  - ".github/workflows/firefox.yml"
@@ -292,7 +317,6 @@ files:
292
317
  - LICENSE
293
318
  - README.md
294
319
  - Rakefile
295
- - lib/watir-webdriver.rb
296
320
  - lib/watir.rb
297
321
  - lib/watir/adjacent.rb
298
322
  - lib/watir/after_hooks.rb
@@ -364,6 +388,7 @@ files:
364
388
  - lib/watir/js_snippets/getInnerText.js
365
389
  - lib/watir/js_snippets/getOuterHtml.js
366
390
  - lib/watir/js_snippets/getTextContent.js
391
+ - lib/watir/js_snippets/isElementInViewport.js
367
392
  - lib/watir/js_snippets/isImageLoaded.js
368
393
  - lib/watir/js_snippets/selectOptionsLabel.js
369
394
  - lib/watir/js_snippets/selectOptionsText.js
@@ -402,6 +427,8 @@ files:
402
427
  - lib/watir/row_container.rb
403
428
  - lib/watir/screenshot.rb
404
429
  - lib/watir/scroll.rb
430
+ - lib/watir/search_context.rb
431
+ - lib/watir/shadow_root.rb
405
432
  - lib/watir/user_editable.rb
406
433
  - lib/watir/version.rb
407
434
  - lib/watir/wait.rb
@@ -435,8 +462,8 @@ files:
435
462
  - spec/watirspec/adjacent_spec.rb
436
463
  - spec/watirspec/after_hooks_spec.rb
437
464
  - spec/watirspec/alert_spec.rb
438
- - spec/watirspec/attributes_spec.rb
439
465
  - spec/watirspec/browser_spec.rb
466
+ - spec/watirspec/capabilities_spec.rb
440
467
  - spec/watirspec/cookies_spec.rb
441
468
  - spec/watirspec/drag_and_drop_spec.rb
442
469
  - spec/watirspec/element_hidden_spec.rb
@@ -509,7 +536,6 @@ files:
509
536
  - spec/watirspec/elements/spans_spec.rb
510
537
  - spec/watirspec/elements/strong_spec.rb
511
538
  - spec/watirspec/elements/strongs_spec.rb
512
- - spec/watirspec/elements/table_nesting_spec.rb
513
539
  - spec/watirspec/elements/table_spec.rb
514
540
  - spec/watirspec/elements/tables_spec.rb
515
541
  - spec/watirspec/elements/tbody_spec.rb
@@ -530,6 +556,7 @@ files:
530
556
  - spec/watirspec/elements/uls_spec.rb
531
557
  - spec/watirspec/html/alerts.html
532
558
  - spec/watirspec/html/aria_attributes.html
559
+ - spec/watirspec/html/child_frame.html
533
560
  - spec/watirspec/html/class_locator.html
534
561
  - spec/watirspec/html/clicks.html
535
562
  - spec/watirspec/html/closeable.html
@@ -543,7 +570,6 @@ files:
543
570
  - spec/watirspec/html/frame_1.html
544
571
  - spec/watirspec/html/frame_2.html
545
572
  - spec/watirspec/html/frames.html
546
- - spec/watirspec/html/hover.html
547
573
  - spec/watirspec/html/iframe_1.html
548
574
  - spec/watirspec/html/iframes.html
549
575
  - spec/watirspec/html/images.html
@@ -580,7 +606,11 @@ files:
580
606
  - spec/watirspec/html/removed_element.html
581
607
  - spec/watirspec/html/right_click.html
582
608
  - spec/watirspec/html/scroll.html
609
+ - spec/watirspec/html/scroll_nested.html
610
+ - spec/watirspec/html/scroll_nested_offscreen.html
611
+ - spec/watirspec/html/shadow_dom.html
583
612
  - spec/watirspec/html/special_chars.html
613
+ - spec/watirspec/html/sticky_elements.html
584
614
  - spec/watirspec/html/tables.html
585
615
  - spec/watirspec/html/timeout_window_location.html
586
616
  - spec/watirspec/html/uneven_table.html
@@ -590,7 +620,7 @@ files:
590
620
  - spec/watirspec/radio_set_spec.rb
591
621
  - spec/watirspec/screenshot_spec.rb
592
622
  - spec/watirspec/scroll_spec.rb
593
- - spec/watirspec/special_chars_spec.rb
623
+ - spec/watirspec/shadow_root_spec.rb
594
624
  - spec/watirspec/support/rspec_matchers.rb
595
625
  - spec/watirspec/user_editable_spec.rb
596
626
  - spec/watirspec/wait_spec.rb
@@ -600,10 +630,11 @@ files:
600
630
  - support/travis.sh
601
631
  - support/version_differ.rb
602
632
  - watir.gemspec
603
- homepage: http://github.com/watir/watir
633
+ homepage: https://github.com/watir/watir
604
634
  licenses:
605
635
  - MIT
606
- metadata: {}
636
+ metadata:
637
+ rubygems_mfa_required: 'true'
607
638
  post_install_message:
608
639
  rdoc_options: []
609
640
  require_paths:
@@ -612,195 +643,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
612
643
  requirements:
613
644
  - - ">="
614
645
  - !ruby/object:Gem::Version
615
- version: 2.6.0
646
+ version: 2.7.0
616
647
  required_rubygems_version: !ruby/object:Gem::Requirement
617
648
  requirements:
618
649
  - - ">="
619
650
  - !ruby/object:Gem::Version
620
651
  version: '0'
621
652
  requirements: []
622
- rubygems_version: 3.2.22
653
+ rubygems_version: 3.4.1
623
654
  signing_key:
624
655
  specification_version: 4
625
656
  summary: Watir powered by Selenium
626
- test_files:
627
- - spec/locator_spec_helper.rb
628
- - spec/spec_helper.rb
629
- - spec/unit/capabilities_spec.rb
630
- - spec/unit/element_locator_spec.rb
631
- - spec/unit/match_elements/button_spec.rb
632
- - spec/unit/match_elements/element_spec.rb
633
- - spec/unit/match_elements/text_field_spec.rb
634
- - spec/unit/selector_builder/anchor_spec.rb
635
- - spec/unit/selector_builder/button_spec.rb
636
- - spec/unit/selector_builder/cell_spec.rb
637
- - spec/unit/selector_builder/element_spec.rb
638
- - spec/unit/selector_builder/row_spec.rb
639
- - spec/unit/selector_builder/text_field_spec.rb
640
- - spec/unit/selector_builder/textarea_spec.rb
641
- - spec/unit/unit_helper.rb
642
- - spec/unit/wait_spec.rb
643
- - spec/watirspec/adjacent_spec.rb
644
- - spec/watirspec/after_hooks_spec.rb
645
- - spec/watirspec/alert_spec.rb
646
- - spec/watirspec/attributes_spec.rb
647
- - spec/watirspec/browser_spec.rb
648
- - spec/watirspec/cookies_spec.rb
649
- - spec/watirspec/drag_and_drop_spec.rb
650
- - spec/watirspec/element_hidden_spec.rb
651
- - spec/watirspec/elements/area_spec.rb
652
- - spec/watirspec/elements/areas_spec.rb
653
- - spec/watirspec/elements/button_spec.rb
654
- - spec/watirspec/elements/buttons_spec.rb
655
- - spec/watirspec/elements/checkbox_spec.rb
656
- - spec/watirspec/elements/checkboxes_spec.rb
657
- - spec/watirspec/elements/collections_spec.rb
658
- - spec/watirspec/elements/date_field_spec.rb
659
- - spec/watirspec/elements/date_fields_spec.rb
660
- - spec/watirspec/elements/date_time_field_spec.rb
661
- - spec/watirspec/elements/date_time_fields_spec.rb
662
- - spec/watirspec/elements/dd_spec.rb
663
- - spec/watirspec/elements/dds_spec.rb
664
- - spec/watirspec/elements/del_spec.rb
665
- - spec/watirspec/elements/dels_spec.rb
666
- - spec/watirspec/elements/div_spec.rb
667
- - spec/watirspec/elements/divs_spec.rb
668
- - spec/watirspec/elements/dl_spec.rb
669
- - spec/watirspec/elements/dls_spec.rb
670
- - spec/watirspec/elements/dt_spec.rb
671
- - spec/watirspec/elements/dts_spec.rb
672
- - spec/watirspec/elements/element_spec.rb
673
- - spec/watirspec/elements/elements_spec.rb
674
- - spec/watirspec/elements/em_spec.rb
675
- - spec/watirspec/elements/ems_spec.rb
676
- - spec/watirspec/elements/filefield_spec.rb
677
- - spec/watirspec/elements/filefields_spec.rb
678
- - spec/watirspec/elements/font_spec.rb
679
- - spec/watirspec/elements/form_spec.rb
680
- - spec/watirspec/elements/forms_spec.rb
681
- - spec/watirspec/elements/frame_spec.rb
682
- - spec/watirspec/elements/frames_spec.rb
683
- - spec/watirspec/elements/hidden_spec.rb
684
- - spec/watirspec/elements/hiddens_spec.rb
685
- - spec/watirspec/elements/hn_spec.rb
686
- - spec/watirspec/elements/hns_spec.rb
687
- - spec/watirspec/elements/iframe_spec.rb
688
- - spec/watirspec/elements/iframes_spec.rb
689
- - spec/watirspec/elements/image_spec.rb
690
- - spec/watirspec/elements/images_spec.rb
691
- - spec/watirspec/elements/input_spec.rb
692
- - spec/watirspec/elements/ins_spec.rb
693
- - spec/watirspec/elements/inses_spec.rb
694
- - spec/watirspec/elements/label_spec.rb
695
- - spec/watirspec/elements/labels_spec.rb
696
- - spec/watirspec/elements/li_spec.rb
697
- - spec/watirspec/elements/link_spec.rb
698
- - spec/watirspec/elements/links_spec.rb
699
- - spec/watirspec/elements/lis_spec.rb
700
- - spec/watirspec/elements/list_spec.rb
701
- - spec/watirspec/elements/map_spec.rb
702
- - spec/watirspec/elements/maps_spec.rb
703
- - spec/watirspec/elements/meta_spec.rb
704
- - spec/watirspec/elements/metas_spec.rb
705
- - spec/watirspec/elements/ol_spec.rb
706
- - spec/watirspec/elements/ols_spec.rb
707
- - spec/watirspec/elements/option_spec.rb
708
- - spec/watirspec/elements/p_spec.rb
709
- - spec/watirspec/elements/pre_spec.rb
710
- - spec/watirspec/elements/pres_spec.rb
711
- - spec/watirspec/elements/ps_spec.rb
712
- - spec/watirspec/elements/radio_spec.rb
713
- - spec/watirspec/elements/radios_spec.rb
714
- - spec/watirspec/elements/select_list_spec.rb
715
- - spec/watirspec/elements/select_lists_spec.rb
716
- - spec/watirspec/elements/span_spec.rb
717
- - spec/watirspec/elements/spans_spec.rb
718
- - spec/watirspec/elements/strong_spec.rb
719
- - spec/watirspec/elements/strongs_spec.rb
720
- - spec/watirspec/elements/table_nesting_spec.rb
721
- - spec/watirspec/elements/table_spec.rb
722
- - spec/watirspec/elements/tables_spec.rb
723
- - spec/watirspec/elements/tbody_spec.rb
724
- - spec/watirspec/elements/tbodys_spec.rb
725
- - spec/watirspec/elements/td_spec.rb
726
- - spec/watirspec/elements/tds_spec.rb
727
- - spec/watirspec/elements/text_field_spec.rb
728
- - spec/watirspec/elements/text_fields_spec.rb
729
- - spec/watirspec/elements/textarea_spec.rb
730
- - spec/watirspec/elements/textareas_spec.rb
731
- - spec/watirspec/elements/tfoot_spec.rb
732
- - spec/watirspec/elements/tfoots_spec.rb
733
- - spec/watirspec/elements/thead_spec.rb
734
- - spec/watirspec/elements/theads_spec.rb
735
- - spec/watirspec/elements/tr_spec.rb
736
- - spec/watirspec/elements/trs_spec.rb
737
- - spec/watirspec/elements/ul_spec.rb
738
- - spec/watirspec/elements/uls_spec.rb
739
- - spec/watirspec/html/alerts.html
740
- - spec/watirspec/html/aria_attributes.html
741
- - spec/watirspec/html/class_locator.html
742
- - spec/watirspec/html/clicks.html
743
- - spec/watirspec/html/closeable.html
744
- - spec/watirspec/html/collections.html
745
- - spec/watirspec/html/css/jquery-ui-1.8.17.custom.css
746
- - spec/watirspec/html/data_attributes.html
747
- - spec/watirspec/html/definition_lists.html
748
- - spec/watirspec/html/drag_and_drop.html
749
- - spec/watirspec/html/font.html
750
- - spec/watirspec/html/forms_with_input_elements.html
751
- - spec/watirspec/html/frame_1.html
752
- - spec/watirspec/html/frame_2.html
753
- - spec/watirspec/html/frames.html
754
- - spec/watirspec/html/hover.html
755
- - spec/watirspec/html/iframe_1.html
756
- - spec/watirspec/html/iframes.html
757
- - spec/watirspec/html/images.html
758
- - spec/watirspec/html/images/1.gif
759
- - spec/watirspec/html/images/2.gif
760
- - spec/watirspec/html/images/3.gif
761
- - spec/watirspec/html/images/button.png
762
- - spec/watirspec/html/images/circle.png
763
- - spec/watirspec/html/images/map.gif
764
- - spec/watirspec/html/images/map2.gif
765
- - spec/watirspec/html/images/minus.gif
766
- - spec/watirspec/html/images/originaltriangle.png
767
- - spec/watirspec/html/images/plus.gif
768
- - spec/watirspec/html/images/square.png
769
- - spec/watirspec/html/images/triangle.png
770
- - spec/watirspec/html/inner_outer.html
771
- - spec/watirspec/html/javascript/angular.min.js
772
- - spec/watirspec/html/javascript/helpers.js
773
- - spec/watirspec/html/javascript/jquery-1.7.1.min.js
774
- - spec/watirspec/html/javascript/jquery-ui-1.8.17.custom.min.js
775
- - spec/watirspec/html/keylogger.html
776
- - spec/watirspec/html/modal_dialog.html
777
- - spec/watirspec/html/multiple_ids.html
778
- - spec/watirspec/html/nested_elements.html
779
- - spec/watirspec/html/nested_frame_1.html
780
- - spec/watirspec/html/nested_frame_2.html
781
- - spec/watirspec/html/nested_frame_3.html
782
- - spec/watirspec/html/nested_frames.html
783
- - spec/watirspec/html/nested_iframe_2.html
784
- - spec/watirspec/html/nested_iframes.html
785
- - spec/watirspec/html/nested_tables.html
786
- - spec/watirspec/html/non_control_elements.html
787
- - spec/watirspec/html/obscured.html
788
- - spec/watirspec/html/removed_element.html
789
- - spec/watirspec/html/right_click.html
790
- - spec/watirspec/html/scroll.html
791
- - spec/watirspec/html/special_chars.html
792
- - spec/watirspec/html/tables.html
793
- - spec/watirspec/html/timeout_window_location.html
794
- - spec/watirspec/html/uneven_table.html
795
- - spec/watirspec/html/wait.html
796
- - spec/watirspec/html/watirspec.css
797
- - spec/watirspec/html/window_switching.html
798
- - spec/watirspec/radio_set_spec.rb
799
- - spec/watirspec/screenshot_spec.rb
800
- - spec/watirspec/scroll_spec.rb
801
- - spec/watirspec/special_chars_spec.rb
802
- - spec/watirspec/support/rspec_matchers.rb
803
- - spec/watirspec/user_editable_spec.rb
804
- - spec/watirspec/wait_spec.rb
805
- - spec/watirspec/window_switching_spec.rb
806
- - spec/watirspec_helper.rb
657
+ test_files: []
@@ -1,11 +0,0 @@
1
- name: 'Enable Safari Driver'
2
- description: 'Set safaridriver to run in automation mode'
3
- runs:
4
- using: composite
5
- steps:
6
- - run: |
7
- defaults write com.apple.Safari IncludeDevelopMenu YES
8
- defaults write com.apple.Safari AllowRemoteAutomation 1
9
- sudo safaridriver --enable
10
- safaridriver -p 0 &
11
- shell: bash
@@ -1,12 +0,0 @@
1
- name: 'Install Chrome'
2
- description: 'Install Chrome Stable'
3
- runs:
4
- using: "composite"
5
- steps:
6
- - run: |
7
- wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
8
- echo "deb http://dl.google.com/linux/chrome/deb/ stable main" | sudo tee -a /etc/apt/sources.list.d/google-chrome.list
9
- sudo apt-get update -qqy
10
- sudo apt-get -qqy install google-chrome-stable
11
- sudo rm /etc/apt/sources.list.d/google-chrome.list
12
- shell: bash
@@ -1,8 +0,0 @@
1
- name: 'Setup Linux'
2
- description: 'Run Linux in Virtual Desktop'
3
- runs:
4
- using: "composite"
5
- steps:
6
- - shell: bash
7
- run: |
8
- Xvfb :99 &
@@ -1,2 +0,0 @@
1
- require 'watir'
2
- warn "#{Kernel.caller.first}: `require 'watir-webdriver'` is deprecated. Please, use `require 'watir'`."
@@ -1,16 +0,0 @@
1
- require 'watirspec_helper'
2
-
3
- describe 'Attributes' do
4
- before :each do
5
- browser.goto(WatirSpec.url_for('forms_with_input_elements.html'))
6
- end
7
-
8
- it 'finds tab index' do
9
- expect(browser.checkbox(tabindex: '4').tabindex).to eq 4
10
- end
11
-
12
- it 'finds element with boolean' do
13
- expect(browser.checkbox(tabindex: false).id).to eq 'toggle_button_checkbox'
14
- expect(browser.checkbox(tabindex: true).id).to eq 'new_user_interests_books'
15
- end
16
- end
@@ -1,49 +0,0 @@
1
- require 'watirspec_helper'
2
-
3
- describe 'Table' do
4
- before :each do
5
- browser.goto(WatirSpec.url_for('nested_tables.html'))
6
- end
7
-
8
- it 'returns the correct number of rows under a table element' do
9
- tables = browser.div(id: 'table-rows-test').tables(id: /^tbl/)
10
- expect(tables.length).to be > 0
11
-
12
- tables.each do |table|
13
- expected = Integer(table.data_row_count)
14
- actual = table.rows.length
15
- browser_count = Integer(table.data_browser_count)
16
-
17
- msg = "expected #{expected} rows, got #{actual} for table id=#{table.id}, browser reported: #{browser_count}"
18
- expect(actual).to eql(expected), msg
19
- end
20
- end
21
-
22
- it 'returns the correct number of cells under a row' do
23
- rows = browser.div(id: 'row-cells-test').trs(id: /^row/)
24
- expect(rows.length).to be > 0
25
-
26
- rows.each do |row|
27
- expected = Integer(row.data_cell_count)
28
- actual = row.cells.length
29
- browser_count = Integer(row.data_browser_count)
30
-
31
- msg = "expected #{expected} cells, got #{actual} for row id=#{row.id}, browser reported: #{browser_count}"
32
- expect(actual).to eql(expected), msg
33
- end
34
- end
35
-
36
- it 'returns the correct number of rows under a table section' do
37
- tbodies = browser.table(id: 'tbody-rows-test').tbodys(id: /^body/)
38
- expect(tbodies.length).to be > 0
39
-
40
- tbodies.each do |tbody|
41
- expected = Integer(tbody.data_rows_count)
42
- actual = tbody.rows.count
43
- browser_count = Integer(tbody.data_browser_count)
44
-
45
- msg = "expected #{expected} rows, got #{actual} for tbody id=#{tbody.id}, browser reported: #{browser_count}"
46
- expect(actual).to eql(expected), msg
47
- end
48
- end
49
- end
@@ -1,12 +0,0 @@
1
- <html>
2
- <head>
3
- <style type="text/css" media="screen">
4
- a { font-size: 10px; }
5
- a:hover { font-size: 20px; }
6
- </style>
7
- </head>
8
-
9
- <body>
10
- <a href="#">hello</a>
11
- </body>
12
- </html>
@@ -1,21 +0,0 @@
1
- require 'watirspec_helper'
2
-
3
- describe Watir::Browser do
4
- before do
5
- browser.goto WatirSpec.url_for('special_chars.html')
6
- end
7
-
8
- it 'finds elements with single quotes' do
9
- expect(browser.div(text: "single 'quotes'")).to exist
10
- end
11
-
12
- it 'finds elements with non-standard character locators' do
13
- expect(browser.div('we{ird' => 'foo')).to exist
14
- expect(browser.div('we{ird': 'foo')).to exist
15
- end
16
-
17
- it 'finds element with underscored attribute' do
18
- expect(browser.div('underscored_attribute' => 'true')).to exist
19
- expect(browser.div('underscored_attribute' => true)).to exist
20
- end
21
- end