watir 6.10.1 → 6.10.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (279) hide show
  1. checksums.yaml +4 -4
  2. data/.document +5 -5
  3. data/.github/ISSUE_TEMPLATE.md +16 -16
  4. data/.gitignore +21 -21
  5. data/.travis.yml +72 -72
  6. data/CHANGES.md +4 -0
  7. data/Gemfile +16 -16
  8. data/LICENSE +23 -23
  9. data/README.md +106 -106
  10. data/Rakefile +153 -153
  11. data/appveyor.yml +13 -13
  12. data/lib/watir-webdriver.rb +2 -2
  13. data/lib/watir.rb +158 -158
  14. data/lib/watir/adjacent.rb +126 -126
  15. data/lib/watir/after_hooks.rb +132 -132
  16. data/lib/watir/alert.rb +120 -120
  17. data/lib/watir/aliases.rb +6 -6
  18. data/lib/watir/attribute_helper.rb +96 -96
  19. data/lib/watir/browser.rb +349 -349
  20. data/lib/watir/capabilities.rb +123 -123
  21. data/lib/watir/cell_container.rb +25 -25
  22. data/lib/watir/container.rb +51 -51
  23. data/lib/watir/cookies.rb +134 -134
  24. data/lib/watir/element_collection.rb +138 -138
  25. data/lib/watir/elements/area.rb +12 -12
  26. data/lib/watir/elements/button.rb +37 -37
  27. data/lib/watir/elements/cell.rb +17 -17
  28. data/lib/watir/elements/checkbox.rb +56 -56
  29. data/lib/watir/elements/dlist.rb +12 -12
  30. data/lib/watir/elements/element.rb +2 -2
  31. data/lib/watir/elements/file_field.rb +41 -41
  32. data/lib/watir/elements/font.rb +25 -25
  33. data/lib/watir/elements/form.rb +16 -16
  34. data/lib/watir/elements/hidden.rb +25 -25
  35. data/lib/watir/elements/html_elements.rb +2035 -2035
  36. data/lib/watir/elements/iframe.rb +166 -166
  37. data/lib/watir/elements/image.rb +21 -21
  38. data/lib/watir/elements/input.rb +15 -15
  39. data/lib/watir/elements/link.rb +18 -18
  40. data/lib/watir/elements/list.rb +49 -49
  41. data/lib/watir/elements/option.rb +72 -72
  42. data/lib/watir/elements/radio.rb +60 -60
  43. data/lib/watir/elements/row.rb +17 -17
  44. data/lib/watir/elements/select.rb +250 -250
  45. data/lib/watir/elements/svg_elements.rb +613 -613
  46. data/lib/watir/elements/table.rb +76 -76
  47. data/lib/watir/elements/table_cell.rb +31 -31
  48. data/lib/watir/elements/table_row.rb +32 -32
  49. data/lib/watir/elements/table_section.rb +15 -15
  50. data/lib/watir/elements/text_area.rb +5 -5
  51. data/lib/watir/elements/text_field.rb +39 -39
  52. data/lib/watir/exception.rb +16 -16
  53. data/lib/watir/extensions/nokogiri.rb +14 -14
  54. data/lib/watir/generator.rb +3 -3
  55. data/lib/watir/generator/base.rb +11 -11
  56. data/lib/watir/generator/base/generator.rb +115 -115
  57. data/lib/watir/generator/base/idl_sorter.rb +47 -47
  58. data/lib/watir/generator/base/spec_extractor.rb +138 -138
  59. data/lib/watir/generator/base/util.rb +21 -21
  60. data/lib/watir/generator/base/visitor.rb +162 -162
  61. data/lib/watir/generator/html.rb +15 -15
  62. data/lib/watir/generator/html/generator.rb +36 -36
  63. data/lib/watir/generator/html/spec_extractor.rb +50 -50
  64. data/lib/watir/generator/html/visitor.rb +21 -21
  65. data/lib/watir/generator/svg.rb +7 -7
  66. data/lib/watir/generator/svg/generator.rb +38 -38
  67. data/lib/watir/generator/svg/spec_extractor.rb +53 -53
  68. data/lib/watir/generator/svg/visitor.rb +21 -21
  69. data/lib/watir/has_window.rb +68 -68
  70. data/lib/watir/js_execution.rb +143 -143
  71. data/lib/watir/js_snippets.rb +16 -16
  72. data/lib/watir/js_snippets/backgroundColor.js +7 -7
  73. data/lib/watir/js_snippets/fireEvent.js +31 -31
  74. data/lib/watir/js_snippets/focus.js +3 -3
  75. data/lib/watir/js_snippets/getInnerHtml.js +19 -19
  76. data/lib/watir/js_snippets/getInnerText.js +19 -19
  77. data/lib/watir/js_snippets/getOuterHtml.js +20 -20
  78. data/lib/watir/js_snippets/getTextContent.js +19 -19
  79. data/lib/watir/js_snippets/isImageLoaded.js +3 -3
  80. data/lib/watir/js_snippets/selectOptionsLabel.js +10 -10
  81. data/lib/watir/js_snippets/selectOptionsText.js +10 -10
  82. data/lib/watir/js_snippets/selectOptionsValue.js +10 -10
  83. data/lib/watir/js_snippets/selectText.js +64 -64
  84. data/lib/watir/js_snippets/selectedOptions.js +11 -11
  85. data/lib/watir/js_snippets/setValue.js +3 -3
  86. data/lib/watir/legacy_wait.rb +126 -126
  87. data/lib/watir/locators.rb +60 -60
  88. data/lib/watir/locators/button/locator.rb +31 -31
  89. data/lib/watir/locators/button/selector_builder.rb +30 -30
  90. data/lib/watir/locators/button/selector_builder/xpath.rb +29 -29
  91. data/lib/watir/locators/button/validator.rb +15 -15
  92. data/lib/watir/locators/cell/locator.rb +15 -15
  93. data/lib/watir/locators/cell/selector_builder.rb +24 -24
  94. data/lib/watir/locators/element/selector_builder.rb +150 -150
  95. data/lib/watir/locators/element/selector_builder/xpath.rb +119 -119
  96. data/lib/watir/locators/element/validator.rb +18 -18
  97. data/lib/watir/locators/row/locator.rb +15 -15
  98. data/lib/watir/locators/row/selector_builder.rb +29 -29
  99. data/lib/watir/locators/text_area/locator.rb +13 -13
  100. data/lib/watir/locators/text_area/selector_builder.rb +22 -22
  101. data/lib/watir/locators/text_field/locator.rb +30 -30
  102. data/lib/watir/locators/text_field/selector_builder.rb +31 -31
  103. data/lib/watir/locators/text_field/selector_builder/xpath.rb +17 -17
  104. data/lib/watir/locators/text_field/validator.rb +12 -12
  105. data/lib/watir/logger.rb +109 -109
  106. data/lib/watir/radio_set.rb +231 -231
  107. data/lib/watir/row_container.rb +36 -36
  108. data/lib/watir/screenshot.rb +50 -50
  109. data/lib/watir/user_editable.rb +56 -56
  110. data/lib/watir/wait.rb +200 -200
  111. data/lib/watir/wait/timer.rb +52 -52
  112. data/lib/watir/window.rb +257 -257
  113. data/lib/watir/xpath_support.rb +20 -20
  114. data/lib/watirspec.rb +86 -86
  115. data/lib/watirspec/guards.rb +60 -60
  116. data/lib/watirspec/implementation.rb +51 -51
  117. data/lib/watirspec/rake_tasks.rb +115 -115
  118. data/lib/watirspec/remote_server.rb +38 -38
  119. data/lib/watirspec/runner.rb +53 -53
  120. data/lib/watirspec/server.rb +99 -99
  121. data/lib/watirspec/server/app.rb +76 -76
  122. data/spec/browser_spec.rb +278 -278
  123. data/spec/click_spec.rb +19 -19
  124. data/spec/container_spec.rb +34 -34
  125. data/spec/element_locator_spec.rb +517 -517
  126. data/spec/element_spec.rb +158 -158
  127. data/spec/implementation_spec.rb +24 -24
  128. data/spec/input_spec.rb +14 -14
  129. data/spec/locator_spec_helper.rb +55 -55
  130. data/spec/logger_spec.rb +46 -46
  131. data/spec/spec_helper.rb +22 -22
  132. data/spec/special_chars_spec.rb +13 -13
  133. data/spec/watirspec/adjacent_spec.rb +227 -227
  134. data/spec/watirspec/after_hooks_spec.rb +182 -182
  135. data/spec/watirspec/alert_spec.rb +108 -108
  136. data/spec/watirspec/attributes_spec.rb +16 -16
  137. data/spec/watirspec/browser_spec.rb +281 -281
  138. data/spec/watirspec/cookies_spec.rb +154 -154
  139. data/spec/watirspec/drag_and_drop_spec.rb +49 -49
  140. data/spec/watirspec/element_hidden_spec.rb +75 -75
  141. data/spec/watirspec/elements/area_spec.rb +72 -72
  142. data/spec/watirspec/elements/areas_spec.rb +42 -42
  143. data/spec/watirspec/elements/button_spec.rb +277 -277
  144. data/spec/watirspec/elements/buttons_spec.rb +55 -55
  145. data/spec/watirspec/elements/checkbox_spec.rb +275 -275
  146. data/spec/watirspec/elements/checkboxes_spec.rb +44 -44
  147. data/spec/watirspec/elements/collections_spec.rb +52 -52
  148. data/spec/watirspec/elements/dd_spec.rb +124 -124
  149. data/spec/watirspec/elements/dds_spec.rb +42 -42
  150. data/spec/watirspec/elements/del_spec.rb +126 -126
  151. data/spec/watirspec/elements/dels_spec.rb +40 -40
  152. data/spec/watirspec/elements/div_spec.rb +245 -245
  153. data/spec/watirspec/elements/divs_spec.rb +42 -42
  154. data/spec/watirspec/elements/dl_spec.rb +142 -142
  155. data/spec/watirspec/elements/dls_spec.rb +43 -43
  156. data/spec/watirspec/elements/dt_spec.rb +122 -122
  157. data/spec/watirspec/elements/dts_spec.rb +42 -42
  158. data/spec/watirspec/elements/element_spec.rb +483 -483
  159. data/spec/watirspec/elements/elements_spec.rb +47 -47
  160. data/spec/watirspec/elements/em_spec.rb +96 -96
  161. data/spec/watirspec/elements/ems_spec.rb +43 -43
  162. data/spec/watirspec/elements/filefield_spec.rb +170 -170
  163. data/spec/watirspec/elements/filefields_spec.rb +43 -43
  164. data/spec/watirspec/elements/font_spec.rb +29 -29
  165. data/spec/watirspec/elements/form_spec.rb +66 -66
  166. data/spec/watirspec/elements/forms_spec.rb +46 -46
  167. data/spec/watirspec/elements/frame_spec.rb +123 -123
  168. data/spec/watirspec/elements/frames_spec.rb +41 -41
  169. data/spec/watirspec/elements/hidden_spec.rb +104 -104
  170. data/spec/watirspec/elements/hiddens_spec.rb +43 -43
  171. data/spec/watirspec/elements/hn_spec.rb +92 -92
  172. data/spec/watirspec/elements/hns_spec.rb +38 -38
  173. data/spec/watirspec/elements/iframe_spec.rb +3 -0
  174. data/spec/watirspec/elements/iframes_spec.rb +47 -47
  175. data/spec/watirspec/elements/image_spec.rb +158 -158
  176. data/spec/watirspec/elements/images_spec.rb +40 -40
  177. data/spec/watirspec/elements/ins_spec.rb +127 -127
  178. data/spec/watirspec/elements/inses_spec.rb +40 -40
  179. data/spec/watirspec/elements/label_spec.rb +75 -75
  180. data/spec/watirspec/elements/labels_spec.rb +40 -40
  181. data/spec/watirspec/elements/li_spec.rb +111 -111
  182. data/spec/watirspec/elements/link_spec.rb +171 -171
  183. data/spec/watirspec/elements/links_spec.rb +44 -44
  184. data/spec/watirspec/elements/lis_spec.rb +42 -42
  185. data/spec/watirspec/elements/list_spec.rb +32 -32
  186. data/spec/watirspec/elements/map_spec.rb +75 -75
  187. data/spec/watirspec/elements/maps_spec.rb +41 -41
  188. data/spec/watirspec/elements/meta_spec.rb +23 -23
  189. data/spec/watirspec/elements/metas_spec.rb +40 -40
  190. data/spec/watirspec/elements/ol_spec.rb +87 -87
  191. data/spec/watirspec/elements/ols_spec.rb +40 -40
  192. data/spec/watirspec/elements/option_spec.rb +121 -121
  193. data/spec/watirspec/elements/p_spec.rb +111 -111
  194. data/spec/watirspec/elements/pre_spec.rb +111 -111
  195. data/spec/watirspec/elements/pres_spec.rb +40 -40
  196. data/spec/watirspec/elements/ps_spec.rb +40 -40
  197. data/spec/watirspec/elements/radio_spec.rb +273 -273
  198. data/spec/watirspec/elements/radios_spec.rb +43 -43
  199. data/spec/watirspec/elements/select_list_spec.rb +553 -553
  200. data/spec/watirspec/elements/select_lists_spec.rb +46 -46
  201. data/spec/watirspec/elements/span_spec.rb +128 -128
  202. data/spec/watirspec/elements/spans_spec.rb +40 -40
  203. data/spec/watirspec/elements/strong_spec.rb +88 -88
  204. data/spec/watirspec/elements/strongs_spec.rb +43 -43
  205. data/spec/watirspec/elements/table_nesting_spec.rb +51 -51
  206. data/spec/watirspec/elements/table_spec.rb +156 -156
  207. data/spec/watirspec/elements/tables_spec.rb +42 -42
  208. data/spec/watirspec/elements/tbody_spec.rb +93 -93
  209. data/spec/watirspec/elements/tbodys_spec.rb +62 -62
  210. data/spec/watirspec/elements/td_spec.rb +93 -93
  211. data/spec/watirspec/elements/tds_spec.rb +53 -53
  212. data/spec/watirspec/elements/text_field_spec.rb +360 -360
  213. data/spec/watirspec/elements/text_fields_spec.rb +44 -44
  214. data/spec/watirspec/elements/textarea_spec.rb +26 -26
  215. data/spec/watirspec/elements/textareas_spec.rb +24 -24
  216. data/spec/watirspec/elements/tfoot_spec.rb +86 -86
  217. data/spec/watirspec/elements/tfoots_spec.rb +68 -68
  218. data/spec/watirspec/elements/thead_spec.rb +86 -86
  219. data/spec/watirspec/elements/theads_spec.rb +68 -68
  220. data/spec/watirspec/elements/tr_spec.rb +78 -78
  221. data/spec/watirspec/elements/trs_spec.rb +61 -61
  222. data/spec/watirspec/elements/ul_spec.rb +76 -76
  223. data/spec/watirspec/elements/uls_spec.rb +39 -39
  224. data/spec/watirspec/html/alerts.html +12 -12
  225. data/spec/watirspec/html/aria_attributes.html +9 -9
  226. data/spec/watirspec/html/class_locator.html +8 -8
  227. data/spec/watirspec/html/clicks.html +19 -19
  228. data/spec/watirspec/html/closeable.html +12 -12
  229. data/spec/watirspec/html/collections.html +14 -14
  230. data/spec/watirspec/html/css/jquery-ui-1.8.17.custom.css +286 -286
  231. data/spec/watirspec/html/data_attributes.html +9 -9
  232. data/spec/watirspec/html/definition_lists.html +47 -47
  233. data/spec/watirspec/html/drag_and_drop.html +106 -106
  234. data/spec/watirspec/html/font.html +10 -10
  235. data/spec/watirspec/html/forms_with_input_elements.html +174 -174
  236. data/spec/watirspec/html/frame_1.html +22 -22
  237. data/spec/watirspec/html/frame_2.html +15 -15
  238. data/spec/watirspec/html/frames.html +10 -10
  239. data/spec/watirspec/html/hover.html +11 -11
  240. data/spec/watirspec/html/iframe_1.html +22 -22
  241. data/spec/watirspec/html/iframes.html +12 -12
  242. data/spec/watirspec/html/images.html +27 -27
  243. data/spec/watirspec/html/inner_outer.html +4 -4
  244. data/spec/watirspec/html/javascript/angular.min.js +331 -331
  245. data/spec/watirspec/html/javascript/helpers.js +16 -16
  246. data/spec/watirspec/html/javascript/jquery-1.7.1.min.js +3 -3
  247. data/spec/watirspec/html/javascript/jquery-ui-1.8.17.custom.min.js +67 -67
  248. data/spec/watirspec/html/keylogger.html +14 -14
  249. data/spec/watirspec/html/modal_dialog.html +9 -9
  250. data/spec/watirspec/html/multiple_ids.html +14 -14
  251. data/spec/watirspec/html/nested_elements.html +33 -33
  252. data/spec/watirspec/html/nested_frame_2.html +9 -9
  253. data/spec/watirspec/html/nested_frame_3.html +14 -14
  254. data/spec/watirspec/html/nested_frames.html +10 -10
  255. data/spec/watirspec/html/nested_iframe_2.html +12 -12
  256. data/spec/watirspec/html/nested_iframes.html +13 -13
  257. data/spec/watirspec/html/nested_tables.html +202 -202
  258. data/spec/watirspec/html/non_control_elements.html +140 -140
  259. data/spec/watirspec/html/removed_element.html +24 -24
  260. data/spec/watirspec/html/right_click.html +10 -10
  261. data/spec/watirspec/html/special_chars.html +11 -11
  262. data/spec/watirspec/html/tables.html +120 -120
  263. data/spec/watirspec/html/timeout_window_location.html +19 -19
  264. data/spec/watirspec/html/uneven_table.html +20 -20
  265. data/spec/watirspec/html/wait.html +84 -84
  266. data/spec/watirspec/html/window_switching.html +11 -11
  267. data/spec/watirspec/radio_set_spec.rb +336 -336
  268. data/spec/watirspec/relaxed_locate_spec.rb +99 -99
  269. data/spec/watirspec/screenshot_spec.rb +29 -29
  270. data/spec/watirspec/support/raise_exception_matchers.rb +36 -36
  271. data/spec/watirspec/wait_spec.rb +381 -381
  272. data/spec/watirspec/window_switching_spec.rb +415 -415
  273. data/spec/watirspec_helper.rb +161 -161
  274. data/support/appveyor.cmd +9 -9
  275. data/support/doctest_helper.rb +101 -101
  276. data/support/travis.sh +11 -11
  277. data/support/version_differ.rb +59 -59
  278. data/watir.gemspec +1 -1
  279. metadata +169 -3
@@ -1,46 +1,46 @@
1
- require "watirspec_helper"
2
-
3
- describe "SelectLists" do
4
-
5
- before :each do
6
- browser.goto(WatirSpec.url_for("forms_with_input_elements.html"))
7
- end
8
-
9
- describe "with selectors" do
10
- it "returns the matching elements" do
11
- expect(browser.select_lists(name: "delete_user_username").to_a).to eq [browser.select_list(name: "delete_user_username")]
12
- end
13
- end
14
-
15
- describe "#length" do
16
- it "returns the correct number of select lists on the page" do
17
- expect(browser.select_lists.length).to eq 6
18
- end
19
- end
20
-
21
- describe "#[]" do
22
- it "returns the correct item" do
23
- expect(browser.select_lists[0].value).to eq "2"
24
- expect(browser.select_lists[0].name).to eq "new_user_country"
25
- expect(browser.select_lists[0]).to_not be_multiple
26
- expect(browser.select_lists[1]).to be_multiple
27
- end
28
- end
29
-
30
- describe "#each" do
31
- it "iterates through the select lists correctly" do
32
- count = 0
33
-
34
- browser.select_lists.each_with_index do |l, index|
35
- expect(browser.select_list(index: index).name).to eq l.name
36
- expect(browser.select_list(index: index).id).to eq l.id
37
- expect(browser.select_list(index: index).value).to eq l.value
38
-
39
- count += 1
40
- end
41
-
42
- expect(count).to be > 0
43
- end
44
- end
45
-
46
- end
1
+ require "watirspec_helper"
2
+
3
+ describe "SelectLists" do
4
+
5
+ before :each do
6
+ browser.goto(WatirSpec.url_for("forms_with_input_elements.html"))
7
+ end
8
+
9
+ describe "with selectors" do
10
+ it "returns the matching elements" do
11
+ expect(browser.select_lists(name: "delete_user_username").to_a).to eq [browser.select_list(name: "delete_user_username")]
12
+ end
13
+ end
14
+
15
+ describe "#length" do
16
+ it "returns the correct number of select lists on the page" do
17
+ expect(browser.select_lists.length).to eq 6
18
+ end
19
+ end
20
+
21
+ describe "#[]" do
22
+ it "returns the correct item" do
23
+ expect(browser.select_lists[0].value).to eq "2"
24
+ expect(browser.select_lists[0].name).to eq "new_user_country"
25
+ expect(browser.select_lists[0]).to_not be_multiple
26
+ expect(browser.select_lists[1]).to be_multiple
27
+ end
28
+ end
29
+
30
+ describe "#each" do
31
+ it "iterates through the select lists correctly" do
32
+ count = 0
33
+
34
+ browser.select_lists.each_with_index do |l, index|
35
+ expect(browser.select_list(index: index).name).to eq l.name
36
+ expect(browser.select_list(index: index).id).to eq l.id
37
+ expect(browser.select_list(index: index).value).to eq l.value
38
+
39
+ count += 1
40
+ end
41
+
42
+ expect(count).to be > 0
43
+ end
44
+ end
45
+
46
+ end
@@ -1,128 +1,128 @@
1
- require "watirspec_helper"
2
-
3
- describe "Span" do
4
-
5
- before :each do
6
- browser.goto(WatirSpec.url_for("non_control_elements.html"))
7
- end
8
-
9
- # Exists method
10
- describe "#exist?" do
11
- it "returns true if the 'span' exists" do
12
- expect(browser.span(id: "lead")).to exist
13
- expect(browser.span(id: /lead/)).to exist
14
- expect(browser.span(text: "Dubito, ergo cogito, ergo sum.")).to exist
15
- expect(browser.span(text: /Dubito, ergo cogito, ergo sum/)).to exist
16
- expect(browser.span(class: "lead")).to exist
17
- expect(browser.span(class: /lead/)).to exist
18
- expect(browser.span(index: 0)).to exist
19
- expect(browser.span(xpath: "//span[@id='lead']")).to exist
20
- end
21
-
22
- it "returns the first span if given no args" do
23
- expect(browser.span).to exist
24
- end
25
-
26
- it "returns false if the element doesn't exist" do
27
- expect(browser.span(id: "no_such_id")).to_not exist
28
- expect(browser.span(id: /no_such_id/)).to_not exist
29
- expect(browser.span(text: "no_such_text")).to_not exist
30
- msg = /:text locator with RegExp values to find elements based on only visible text is deprecated. Use :visible_text instead./
31
- expect { expect(browser.span(text: /no_such_text/)).to_not exist }.to output(msg).to_stdout_from_any_process
32
- expect(browser.span(class: "no_such_class")).to_not exist
33
- expect(browser.span(class: /no_such_class/)).to_not exist
34
- expect(browser.span(index: 1337)).to_not exist
35
- expect(browser.span(xpath: "//span[@id='no_such_id']")).to_not exist
36
- end
37
-
38
- it "raises TypeError when 'what' argument is invalid" do
39
- expect { browser.span(id: 3.14).exists? }.to raise_error(TypeError)
40
- end
41
- end
42
-
43
- # Attribute methods
44
- describe "#class_name" do
45
- it "returns the class attribute" do
46
- expect(browser.span(index: 0).class_name).to eq 'lead'
47
- end
48
-
49
- it "returns an empty string if the element exists and the attribute doesn't" do
50
- expect(browser.span(index: 2).class_name).to eq ''
51
- end
52
-
53
- it "raises UnknownObjectException if the span doesn't exist" do
54
- expect { browser.span(id: 'no_such_id').class_name }.to raise_unknown_object_exception
55
- end
56
- end
57
-
58
- describe "#id" do
59
- it "returns the id attribute" do
60
- expect(browser.span(index: 0).id).to eq "lead"
61
- end
62
-
63
- it "returns an empty string if the element exists and the attribute doesn't" do
64
- expect(browser.span(index: 2).id).to eq ''
65
- end
66
-
67
- it "raises UnknownObjectException if the span doesn't exist" do
68
- expect { browser.span(id: "no_such_id").id }.to raise_unknown_object_exception
69
- expect { browser.span(index: 1337).id }.to raise_unknown_object_exception
70
- end
71
- end
72
-
73
- describe "#title" do
74
- it "returns the title attribute" do
75
- expect(browser.span(index: 0).title).to eq 'Lorem ipsum'
76
- end
77
-
78
- it "returns an empty string if the element exists and the attribute doesn't" do
79
- expect(browser.span(index: 2).title).to eq ''
80
- end
81
-
82
- it "raises UnknownObjectException if the span doesn't exist" do
83
- expect { browser.span(id: 'no_such_id').title }.to raise_unknown_object_exception
84
- expect { browser.span(xpath: "//span[@id='no_such_id']").title }.to raise_unknown_object_exception
85
- end
86
- end
87
-
88
- describe "#text" do
89
- it "returns the text of the span" do
90
- expect(browser.span(index: 1).text).to eq '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.'
91
- end
92
-
93
- it "returns an empty string if the element doesn't contain any text" do
94
- expect(browser.span(index: 4).text).to eq ''
95
- end
96
-
97
- it "raises UnknownObjectException if the span doesn't exist" do
98
- expect { browser.span(id: 'no_such_id').text }.to raise_unknown_object_exception
99
- expect { browser.span(:xpath , "//span[@id='no_such_id']").text }.to raise_unknown_object_exception
100
- end
101
- end
102
-
103
- describe "#respond_to?" do
104
- it "returns true for all attribute methods" do
105
- expect(browser.span(index: 0)).to respond_to(:class_name)
106
- expect(browser.span(index: 0)).to respond_to(:id)
107
- expect(browser.span(index: 0)).to respond_to(:title)
108
- expect(browser.span(index: 0)).to respond_to(:text)
109
- end
110
- end
111
-
112
- # Other
113
- not_compliant_on :headless do
114
- describe "#click" do
115
- it "fires events" do
116
- expect(browser.span(class: 'footer').text).to_not include('Javascript')
117
- browser.span(class: 'footer').click
118
- expect(browser.span(class: 'footer').text).to include('Javascript')
119
- end
120
-
121
- it "raises UnknownObjectException if the span doesn't exist" do
122
- expect { browser.span(id: "no_such_id").click }.to raise_unknown_object_exception
123
- expect { browser.span(title: "no_such_title").click }.to raise_unknown_object_exception
124
- end
125
- end
126
- end
127
-
128
- end
1
+ require "watirspec_helper"
2
+
3
+ describe "Span" do
4
+
5
+ before :each do
6
+ browser.goto(WatirSpec.url_for("non_control_elements.html"))
7
+ end
8
+
9
+ # Exists method
10
+ describe "#exist?" do
11
+ it "returns true if the 'span' exists" do
12
+ expect(browser.span(id: "lead")).to exist
13
+ expect(browser.span(id: /lead/)).to exist
14
+ expect(browser.span(text: "Dubito, ergo cogito, ergo sum.")).to exist
15
+ expect(browser.span(text: /Dubito, ergo cogito, ergo sum/)).to exist
16
+ expect(browser.span(class: "lead")).to exist
17
+ expect(browser.span(class: /lead/)).to exist
18
+ expect(browser.span(index: 0)).to exist
19
+ expect(browser.span(xpath: "//span[@id='lead']")).to exist
20
+ end
21
+
22
+ it "returns the first span if given no args" do
23
+ expect(browser.span).to exist
24
+ end
25
+
26
+ it "returns false if the element doesn't exist" do
27
+ expect(browser.span(id: "no_such_id")).to_not exist
28
+ expect(browser.span(id: /no_such_id/)).to_not exist
29
+ expect(browser.span(text: "no_such_text")).to_not exist
30
+ msg = /:text locator with RegExp values to find elements based on only visible text is deprecated. Use :visible_text instead./
31
+ expect { expect(browser.span(text: /no_such_text/)).to_not exist }.to output(msg).to_stdout_from_any_process
32
+ expect(browser.span(class: "no_such_class")).to_not exist
33
+ expect(browser.span(class: /no_such_class/)).to_not exist
34
+ expect(browser.span(index: 1337)).to_not exist
35
+ expect(browser.span(xpath: "//span[@id='no_such_id']")).to_not exist
36
+ end
37
+
38
+ it "raises TypeError when 'what' argument is invalid" do
39
+ expect { browser.span(id: 3.14).exists? }.to raise_error(TypeError)
40
+ end
41
+ end
42
+
43
+ # Attribute methods
44
+ describe "#class_name" do
45
+ it "returns the class attribute" do
46
+ expect(browser.span(index: 0).class_name).to eq 'lead'
47
+ end
48
+
49
+ it "returns an empty string if the element exists and the attribute doesn't" do
50
+ expect(browser.span(index: 2).class_name).to eq ''
51
+ end
52
+
53
+ it "raises UnknownObjectException if the span doesn't exist" do
54
+ expect { browser.span(id: 'no_such_id').class_name }.to raise_unknown_object_exception
55
+ end
56
+ end
57
+
58
+ describe "#id" do
59
+ it "returns the id attribute" do
60
+ expect(browser.span(index: 0).id).to eq "lead"
61
+ end
62
+
63
+ it "returns an empty string if the element exists and the attribute doesn't" do
64
+ expect(browser.span(index: 2).id).to eq ''
65
+ end
66
+
67
+ it "raises UnknownObjectException if the span doesn't exist" do
68
+ expect { browser.span(id: "no_such_id").id }.to raise_unknown_object_exception
69
+ expect { browser.span(index: 1337).id }.to raise_unknown_object_exception
70
+ end
71
+ end
72
+
73
+ describe "#title" do
74
+ it "returns the title attribute" do
75
+ expect(browser.span(index: 0).title).to eq 'Lorem ipsum'
76
+ end
77
+
78
+ it "returns an empty string if the element exists and the attribute doesn't" do
79
+ expect(browser.span(index: 2).title).to eq ''
80
+ end
81
+
82
+ it "raises UnknownObjectException if the span doesn't exist" do
83
+ expect { browser.span(id: 'no_such_id').title }.to raise_unknown_object_exception
84
+ expect { browser.span(xpath: "//span[@id='no_such_id']").title }.to raise_unknown_object_exception
85
+ end
86
+ end
87
+
88
+ describe "#text" do
89
+ it "returns the text of the span" do
90
+ expect(browser.span(index: 1).text).to eq '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.'
91
+ end
92
+
93
+ it "returns an empty string if the element doesn't contain any text" do
94
+ expect(browser.span(index: 4).text).to eq ''
95
+ end
96
+
97
+ it "raises UnknownObjectException if the span doesn't exist" do
98
+ expect { browser.span(id: 'no_such_id').text }.to raise_unknown_object_exception
99
+ expect { browser.span(:xpath , "//span[@id='no_such_id']").text }.to raise_unknown_object_exception
100
+ end
101
+ end
102
+
103
+ describe "#respond_to?" do
104
+ it "returns true for all attribute methods" do
105
+ expect(browser.span(index: 0)).to respond_to(:class_name)
106
+ expect(browser.span(index: 0)).to respond_to(:id)
107
+ expect(browser.span(index: 0)).to respond_to(:title)
108
+ expect(browser.span(index: 0)).to respond_to(:text)
109
+ end
110
+ end
111
+
112
+ # Other
113
+ not_compliant_on :headless do
114
+ describe "#click" do
115
+ it "fires events" do
116
+ expect(browser.span(class: 'footer').text).to_not include('Javascript')
117
+ browser.span(class: 'footer').click
118
+ expect(browser.span(class: 'footer').text).to include('Javascript')
119
+ end
120
+
121
+ it "raises UnknownObjectException if the span doesn't exist" do
122
+ expect { browser.span(id: "no_such_id").click }.to raise_unknown_object_exception
123
+ expect { browser.span(title: "no_such_title").click }.to raise_unknown_object_exception
124
+ end
125
+ end
126
+ end
127
+
128
+ end
@@ -1,40 +1,40 @@
1
- require "watirspec_helper"
2
-
3
- describe "Spans" do
4
-
5
- before :each do
6
- browser.goto(WatirSpec.url_for("non_control_elements.html"))
7
- end
8
-
9
- describe "with selectors" do
10
- it "returns the matching elements" do
11
- expect(browser.spans(class: "footer").to_a).to eq [browser.span(class: "footer")]
12
- end
13
- end
14
-
15
- describe "#length" do
16
- it "returns the number of spans" do
17
- expect(browser.spans.length).to eq 7
18
- end
19
- end
20
-
21
- describe "#[]" do
22
- it "returns the p at the given index" do
23
- expect(browser.spans[0].id).to eq "lead"
24
- end
25
- end
26
-
27
- describe "#each" do
28
- it "iterates through spans correctly" do
29
- count = 0
30
-
31
- browser.spans.each_with_index do |s, index|
32
- expect(s.id).to eq browser.span(index: index).id
33
- count += 1
34
- end
35
-
36
- expect(count).to be > 0
37
- end
38
- end
39
-
40
- end
1
+ require "watirspec_helper"
2
+
3
+ describe "Spans" do
4
+
5
+ before :each do
6
+ browser.goto(WatirSpec.url_for("non_control_elements.html"))
7
+ end
8
+
9
+ describe "with selectors" do
10
+ it "returns the matching elements" do
11
+ expect(browser.spans(class: "footer").to_a).to eq [browser.span(class: "footer")]
12
+ end
13
+ end
14
+
15
+ describe "#length" do
16
+ it "returns the number of spans" do
17
+ expect(browser.spans.length).to eq 7
18
+ end
19
+ end
20
+
21
+ describe "#[]" do
22
+ it "returns the p at the given index" do
23
+ expect(browser.spans[0].id).to eq "lead"
24
+ end
25
+ end
26
+
27
+ describe "#each" do
28
+ it "iterates through spans correctly" do
29
+ count = 0
30
+
31
+ browser.spans.each_with_index do |s, index|
32
+ expect(s.id).to eq browser.span(index: index).id
33
+ count += 1
34
+ end
35
+
36
+ expect(count).to be > 0
37
+ end
38
+ end
39
+
40
+ end
@@ -1,88 +1,88 @@
1
- require "watirspec_helper"
2
-
3
- describe "Strong" do
4
-
5
- before :each do
6
- browser.goto(WatirSpec.url_for("non_control_elements.html"))
7
- end
8
-
9
- # Exists method
10
- describe "#exist?" do
11
- it "returns true if the element exists" do
12
- expect(browser.strong(id: "descartes")).to exist
13
- expect(browser.strong(id: /descartes/)).to exist
14
- expect(browser.strong(text: "Dubito, ergo cogito, ergo sum.")).to exist
15
- expect(browser.strong(text: /Dubito, ergo cogito, ergo sum/)).to exist
16
- expect(browser.strong(class: "descartes")).to exist
17
- expect(browser.strong(class: /descartes/)).to exist
18
- expect(browser.strong(index: 0)).to exist
19
- expect(browser.strong(xpath: "//strong[@id='descartes']")).to exist
20
- end
21
-
22
- it "returns the first strong if given no args" do
23
- expect(browser.strong).to exist
24
- end
25
-
26
- it "returns false if the element doesn't exist" do
27
- expect(browser.strong(id: "no_such_id")).to_not exist
28
- expect(browser.strong(id: /no_such_id/)).to_not exist
29
- expect(browser.strong(text: "no_such_text")).to_not exist
30
- expect(browser.strong(text: /no_such_text/)).to_not exist
31
- expect(browser.strong(class: "no_such_class")).to_not exist
32
- expect(browser.strong(class: /no_such_class/)).to_not exist
33
- expect(browser.strong(index: 1337)).to_not exist
34
- expect(browser.strong(xpath: "//strong[@id='no_such_id']")).to_not exist
35
- end
36
-
37
- it "raises TypeError when 'what' argument is invalid" do
38
- expect { browser.strong(id: 3.14).exists? }.to raise_error(TypeError)
39
- end
40
- end
41
-
42
- # Attribute methods
43
- describe "#class_name" do
44
- it "returns the class attribute" do
45
- expect(browser.strong(index: 0).class_name).to eq 'descartes'
46
- end
47
-
48
- it "returns an empty string if the element exists and the attribute doesn't" do
49
- expect(browser.strong(index: 1).class_name).to eq ''
50
- end
51
-
52
- it "raises UnknownObjectException if the element doesn't exist" do
53
- expect { browser.strong(id: 'no_such_id').class_name }.to raise_unknown_object_exception
54
- end
55
- end
56
-
57
- describe "#id" do
58
- it "returns the id attribute" do
59
- expect(browser.strong(index: 0).id).to eq "descartes"
60
- end
61
-
62
- it "raises UnknownObjectException if the element doesn't exist" do
63
- expect { browser.strong(id: "no_such_id").id }.to raise_unknown_object_exception
64
- expect { browser.strong(index: 1337).id }.to raise_unknown_object_exception
65
- end
66
- end
67
-
68
- describe "#text" do
69
- it "returns the text of the element" do
70
- expect(browser.strong(index: 0).text).to eq "Dubito, ergo cogito, ergo sum."
71
- end
72
-
73
- it "raises UnknownObjectException if the element doesn't exist" do
74
- expect { browser.strong(id: 'no_such_id').text }.to raise_unknown_object_exception
75
- expect { browser.strong(:xpath , "//strong[@id='no_such_id']").text }.to raise_unknown_object_exception
76
- end
77
- end
78
-
79
- describe "#respond_to?" do
80
- it "returns true for all attribute methods" do
81
- expect(browser.strong(index: 0)).to respond_to(:class_name)
82
- expect(browser.strong(index: 0)).to respond_to(:id)
83
- expect(browser.strong(index: 0)).to respond_to(:text)
84
- end
85
- end
86
-
87
- # Other
88
- end
1
+ require "watirspec_helper"
2
+
3
+ describe "Strong" do
4
+
5
+ before :each do
6
+ browser.goto(WatirSpec.url_for("non_control_elements.html"))
7
+ end
8
+
9
+ # Exists method
10
+ describe "#exist?" do
11
+ it "returns true if the element exists" do
12
+ expect(browser.strong(id: "descartes")).to exist
13
+ expect(browser.strong(id: /descartes/)).to exist
14
+ expect(browser.strong(text: "Dubito, ergo cogito, ergo sum.")).to exist
15
+ expect(browser.strong(text: /Dubito, ergo cogito, ergo sum/)).to exist
16
+ expect(browser.strong(class: "descartes")).to exist
17
+ expect(browser.strong(class: /descartes/)).to exist
18
+ expect(browser.strong(index: 0)).to exist
19
+ expect(browser.strong(xpath: "//strong[@id='descartes']")).to exist
20
+ end
21
+
22
+ it "returns the first strong if given no args" do
23
+ expect(browser.strong).to exist
24
+ end
25
+
26
+ it "returns false if the element doesn't exist" do
27
+ expect(browser.strong(id: "no_such_id")).to_not exist
28
+ expect(browser.strong(id: /no_such_id/)).to_not exist
29
+ expect(browser.strong(text: "no_such_text")).to_not exist
30
+ expect(browser.strong(text: /no_such_text/)).to_not exist
31
+ expect(browser.strong(class: "no_such_class")).to_not exist
32
+ expect(browser.strong(class: /no_such_class/)).to_not exist
33
+ expect(browser.strong(index: 1337)).to_not exist
34
+ expect(browser.strong(xpath: "//strong[@id='no_such_id']")).to_not exist
35
+ end
36
+
37
+ it "raises TypeError when 'what' argument is invalid" do
38
+ expect { browser.strong(id: 3.14).exists? }.to raise_error(TypeError)
39
+ end
40
+ end
41
+
42
+ # Attribute methods
43
+ describe "#class_name" do
44
+ it "returns the class attribute" do
45
+ expect(browser.strong(index: 0).class_name).to eq 'descartes'
46
+ end
47
+
48
+ it "returns an empty string if the element exists and the attribute doesn't" do
49
+ expect(browser.strong(index: 1).class_name).to eq ''
50
+ end
51
+
52
+ it "raises UnknownObjectException if the element doesn't exist" do
53
+ expect { browser.strong(id: 'no_such_id').class_name }.to raise_unknown_object_exception
54
+ end
55
+ end
56
+
57
+ describe "#id" do
58
+ it "returns the id attribute" do
59
+ expect(browser.strong(index: 0).id).to eq "descartes"
60
+ end
61
+
62
+ it "raises UnknownObjectException if the element doesn't exist" do
63
+ expect { browser.strong(id: "no_such_id").id }.to raise_unknown_object_exception
64
+ expect { browser.strong(index: 1337).id }.to raise_unknown_object_exception
65
+ end
66
+ end
67
+
68
+ describe "#text" do
69
+ it "returns the text of the element" do
70
+ expect(browser.strong(index: 0).text).to eq "Dubito, ergo cogito, ergo sum."
71
+ end
72
+
73
+ it "raises UnknownObjectException if the element doesn't exist" do
74
+ expect { browser.strong(id: 'no_such_id').text }.to raise_unknown_object_exception
75
+ expect { browser.strong(:xpath , "//strong[@id='no_such_id']").text }.to raise_unknown_object_exception
76
+ end
77
+ end
78
+
79
+ describe "#respond_to?" do
80
+ it "returns true for all attribute methods" do
81
+ expect(browser.strong(index: 0)).to respond_to(:class_name)
82
+ expect(browser.strong(index: 0)).to respond_to(:id)
83
+ expect(browser.strong(index: 0)).to respond_to(:text)
84
+ end
85
+ end
86
+
87
+ # Other
88
+ end