capybara 2.7.0 → 3.35.3

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 (318) hide show
  1. checksums.yaml +5 -5
  2. data/.yardopts +1 -0
  3. data/History.md +1147 -11
  4. data/License.txt +1 -1
  5. data/README.md +252 -131
  6. data/lib/capybara/config.rb +92 -0
  7. data/lib/capybara/cucumber.rb +3 -3
  8. data/lib/capybara/driver/base.rb +52 -21
  9. data/lib/capybara/driver/node.rb +48 -14
  10. data/lib/capybara/dsl.rb +16 -9
  11. data/lib/capybara/helpers.rb +72 -81
  12. data/lib/capybara/minitest/spec.rb +267 -0
  13. data/lib/capybara/minitest.rb +385 -0
  14. data/lib/capybara/node/actions.rb +337 -89
  15. data/lib/capybara/node/base.rb +50 -32
  16. data/lib/capybara/node/document.rb +19 -3
  17. data/lib/capybara/node/document_matchers.rb +22 -24
  18. data/lib/capybara/node/element.rb +388 -125
  19. data/lib/capybara/node/finders.rb +231 -121
  20. data/lib/capybara/node/matchers.rb +503 -217
  21. data/lib/capybara/node/simple.rb +64 -27
  22. data/lib/capybara/queries/ancestor_query.rb +27 -0
  23. data/lib/capybara/queries/base_query.rb +87 -11
  24. data/lib/capybara/queries/current_path_query.rb +24 -24
  25. data/lib/capybara/queries/match_query.rb +15 -10
  26. data/lib/capybara/queries/selector_query.rb +675 -81
  27. data/lib/capybara/queries/sibling_query.rb +26 -0
  28. data/lib/capybara/queries/style_query.rb +45 -0
  29. data/lib/capybara/queries/text_query.rb +88 -20
  30. data/lib/capybara/queries/title_query.rb +9 -11
  31. data/lib/capybara/rack_test/browser.rb +63 -39
  32. data/lib/capybara/rack_test/css_handlers.rb +6 -4
  33. data/lib/capybara/rack_test/driver.rb +26 -16
  34. data/lib/capybara/rack_test/errors.rb +6 -0
  35. data/lib/capybara/rack_test/form.rb +73 -58
  36. data/lib/capybara/rack_test/node.rb +187 -67
  37. data/lib/capybara/rails.rb +4 -8
  38. data/lib/capybara/registration_container.rb +44 -0
  39. data/lib/capybara/registrations/drivers.rb +42 -0
  40. data/lib/capybara/registrations/patches/puma_ssl.rb +29 -0
  41. data/lib/capybara/registrations/servers.rb +45 -0
  42. data/lib/capybara/result.rb +142 -14
  43. data/lib/capybara/rspec/features.rb +17 -42
  44. data/lib/capybara/rspec/matcher_proxies.rb +82 -0
  45. data/lib/capybara/rspec/matchers/base.rb +111 -0
  46. data/lib/capybara/rspec/matchers/become_closed.rb +33 -0
  47. data/lib/capybara/rspec/matchers/compound.rb +88 -0
  48. data/lib/capybara/rspec/matchers/count_sugar.rb +37 -0
  49. data/lib/capybara/rspec/matchers/have_ancestor.rb +28 -0
  50. data/lib/capybara/rspec/matchers/have_current_path.rb +29 -0
  51. data/lib/capybara/rspec/matchers/have_selector.rb +77 -0
  52. data/lib/capybara/rspec/matchers/have_sibling.rb +27 -0
  53. data/lib/capybara/rspec/matchers/have_text.rb +33 -0
  54. data/lib/capybara/rspec/matchers/have_title.rb +29 -0
  55. data/lib/capybara/rspec/matchers/match_selector.rb +27 -0
  56. data/lib/capybara/rspec/matchers/match_style.rb +43 -0
  57. data/lib/capybara/rspec/matchers/spatial_sugar.rb +39 -0
  58. data/lib/capybara/rspec/matchers.rb +143 -244
  59. data/lib/capybara/rspec.rb +10 -12
  60. data/lib/capybara/selector/builders/css_builder.rb +84 -0
  61. data/lib/capybara/selector/builders/xpath_builder.rb +71 -0
  62. data/lib/capybara/selector/css.rb +102 -0
  63. data/lib/capybara/selector/definition/button.rb +63 -0
  64. data/lib/capybara/selector/definition/checkbox.rb +26 -0
  65. data/lib/capybara/selector/definition/css.rb +10 -0
  66. data/lib/capybara/selector/definition/datalist_input.rb +35 -0
  67. data/lib/capybara/selector/definition/datalist_option.rb +25 -0
  68. data/lib/capybara/selector/definition/element.rb +28 -0
  69. data/lib/capybara/selector/definition/field.rb +40 -0
  70. data/lib/capybara/selector/definition/fieldset.rb +14 -0
  71. data/lib/capybara/selector/definition/file_field.rb +13 -0
  72. data/lib/capybara/selector/definition/fillable_field.rb +33 -0
  73. data/lib/capybara/selector/definition/frame.rb +17 -0
  74. data/lib/capybara/selector/definition/id.rb +6 -0
  75. data/lib/capybara/selector/definition/label.rb +62 -0
  76. data/lib/capybara/selector/definition/link.rb +54 -0
  77. data/lib/capybara/selector/definition/link_or_button.rb +16 -0
  78. data/lib/capybara/selector/definition/option.rb +27 -0
  79. data/lib/capybara/selector/definition/radio_button.rb +27 -0
  80. data/lib/capybara/selector/definition/select.rb +81 -0
  81. data/lib/capybara/selector/definition/table.rb +109 -0
  82. data/lib/capybara/selector/definition/table_row.rb +21 -0
  83. data/lib/capybara/selector/definition/xpath.rb +5 -0
  84. data/lib/capybara/selector/definition.rb +278 -0
  85. data/lib/capybara/selector/filter.rb +3 -46
  86. data/lib/capybara/selector/filter_set.rb +124 -0
  87. data/lib/capybara/selector/filters/base.rb +77 -0
  88. data/lib/capybara/selector/filters/expression_filter.rb +22 -0
  89. data/lib/capybara/selector/filters/locator_filter.rb +29 -0
  90. data/lib/capybara/selector/filters/node_filter.rb +31 -0
  91. data/lib/capybara/selector/regexp_disassembler.rb +214 -0
  92. data/lib/capybara/selector/selector.rb +155 -0
  93. data/lib/capybara/selector/xpath_extensions.rb +17 -0
  94. data/lib/capybara/selector.rb +232 -369
  95. data/lib/capybara/selenium/atoms/getAttribute.min.js +1 -0
  96. data/lib/capybara/selenium/atoms/isDisplayed.min.js +1 -0
  97. data/lib/capybara/selenium/atoms/src/getAttribute.js +161 -0
  98. data/lib/capybara/selenium/atoms/src/isDisplayed.js +454 -0
  99. data/lib/capybara/selenium/driver.rb +380 -142
  100. data/lib/capybara/selenium/driver_specializations/chrome_driver.rb +117 -0
  101. data/lib/capybara/selenium/driver_specializations/edge_driver.rb +124 -0
  102. data/lib/capybara/selenium/driver_specializations/firefox_driver.rb +89 -0
  103. data/lib/capybara/selenium/driver_specializations/internet_explorer_driver.rb +26 -0
  104. data/lib/capybara/selenium/driver_specializations/safari_driver.rb +24 -0
  105. data/lib/capybara/selenium/extensions/file_input_click_emulation.rb +34 -0
  106. data/lib/capybara/selenium/extensions/find.rb +110 -0
  107. data/lib/capybara/selenium/extensions/html5_drag.rb +228 -0
  108. data/lib/capybara/selenium/extensions/modifier_keys_stack.rb +28 -0
  109. data/lib/capybara/selenium/extensions/scroll.rb +76 -0
  110. data/lib/capybara/selenium/logger_suppressor.rb +40 -0
  111. data/lib/capybara/selenium/node.rb +528 -97
  112. data/lib/capybara/selenium/nodes/chrome_node.rb +137 -0
  113. data/lib/capybara/selenium/nodes/edge_node.rb +104 -0
  114. data/lib/capybara/selenium/nodes/firefox_node.rb +136 -0
  115. data/lib/capybara/selenium/nodes/ie_node.rb +22 -0
  116. data/lib/capybara/selenium/nodes/safari_node.rb +118 -0
  117. data/lib/capybara/selenium/patches/action_pauser.rb +26 -0
  118. data/lib/capybara/selenium/patches/atoms.rb +18 -0
  119. data/lib/capybara/selenium/patches/is_displayed.rb +16 -0
  120. data/lib/capybara/selenium/patches/logs.rb +45 -0
  121. data/lib/capybara/selenium/patches/pause_duration_fix.rb +9 -0
  122. data/lib/capybara/selenium/patches/persistent_client.rb +20 -0
  123. data/lib/capybara/server/animation_disabler.rb +63 -0
  124. data/lib/capybara/server/checker.rb +44 -0
  125. data/lib/capybara/server/middleware.rb +71 -0
  126. data/lib/capybara/server.rb +74 -71
  127. data/lib/capybara/session/config.rb +126 -0
  128. data/lib/capybara/session/matchers.rb +44 -27
  129. data/lib/capybara/session.rb +500 -297
  130. data/lib/capybara/spec/fixtures/no_extension +1 -0
  131. data/lib/capybara/spec/public/jquery.js +5 -5
  132. data/lib/capybara/spec/public/offset.js +6 -0
  133. data/lib/capybara/spec/public/test.js +168 -14
  134. data/lib/capybara/spec/session/accept_alert_spec.rb +37 -14
  135. data/lib/capybara/spec/session/accept_confirm_spec.rb +7 -6
  136. data/lib/capybara/spec/session/accept_prompt_spec.rb +38 -10
  137. data/lib/capybara/spec/session/all_spec.rb +179 -59
  138. data/lib/capybara/spec/session/ancestor_spec.rb +88 -0
  139. data/lib/capybara/spec/session/assert_all_of_selectors_spec.rb +140 -0
  140. data/lib/capybara/spec/session/assert_current_path_spec.rb +75 -0
  141. data/lib/capybara/spec/session/assert_selector_spec.rb +143 -0
  142. data/lib/capybara/spec/session/assert_style_spec.rb +26 -0
  143. data/lib/capybara/spec/session/assert_text_spec.rb +258 -0
  144. data/lib/capybara/spec/session/assert_title_spec.rb +93 -0
  145. data/lib/capybara/spec/session/attach_file_spec.rb +154 -48
  146. data/lib/capybara/spec/session/body_spec.rb +12 -13
  147. data/lib/capybara/spec/session/check_spec.rb +168 -41
  148. data/lib/capybara/spec/session/choose_spec.rb +75 -23
  149. data/lib/capybara/spec/session/click_button_spec.rb +243 -175
  150. data/lib/capybara/spec/session/click_link_or_button_spec.rb +57 -32
  151. data/lib/capybara/spec/session/click_link_spec.rb +100 -53
  152. data/lib/capybara/spec/session/current_scope_spec.rb +11 -10
  153. data/lib/capybara/spec/session/current_url_spec.rb +61 -35
  154. data/lib/capybara/spec/session/dismiss_confirm_spec.rb +7 -7
  155. data/lib/capybara/spec/session/dismiss_prompt_spec.rb +5 -4
  156. data/lib/capybara/spec/session/element/{assert_match_selector.rb → assert_match_selector_spec.rb} +13 -6
  157. data/lib/capybara/spec/session/element/match_css_spec.rb +21 -7
  158. data/lib/capybara/spec/session/element/match_xpath_spec.rb +9 -7
  159. data/lib/capybara/spec/session/element/matches_selector_spec.rb +91 -34
  160. data/lib/capybara/spec/session/evaluate_async_script_spec.rb +23 -0
  161. data/lib/capybara/spec/session/evaluate_script_spec.rb +45 -3
  162. data/lib/capybara/spec/session/execute_script_spec.rb +24 -4
  163. data/lib/capybara/spec/session/fill_in_spec.rb +166 -64
  164. data/lib/capybara/spec/session/find_button_spec.rb +37 -18
  165. data/lib/capybara/spec/session/find_by_id_spec.rb +10 -9
  166. data/lib/capybara/spec/session/find_field_spec.rb +57 -34
  167. data/lib/capybara/spec/session/find_link_spec.rb +47 -10
  168. data/lib/capybara/spec/session/find_spec.rb +290 -144
  169. data/lib/capybara/spec/session/first_spec.rb +91 -48
  170. data/lib/capybara/spec/session/frame/frame_title_spec.rb +23 -0
  171. data/lib/capybara/spec/session/frame/frame_url_spec.rb +23 -0
  172. data/lib/capybara/spec/session/frame/switch_to_frame_spec.rb +116 -0
  173. data/lib/capybara/spec/session/frame/within_frame_spec.rb +112 -0
  174. data/lib/capybara/spec/session/go_back_spec.rb +3 -2
  175. data/lib/capybara/spec/session/go_forward_spec.rb +3 -2
  176. data/lib/capybara/spec/session/has_all_selectors_spec.rb +69 -0
  177. data/lib/capybara/spec/session/has_ancestor_spec.rb +46 -0
  178. data/lib/capybara/spec/session/has_any_selectors_spec.rb +25 -0
  179. data/lib/capybara/spec/session/has_button_spec.rb +76 -19
  180. data/lib/capybara/spec/session/has_css_spec.rb +277 -131
  181. data/lib/capybara/spec/session/has_current_path_spec.rb +98 -26
  182. data/lib/capybara/spec/session/has_field_spec.rb +177 -107
  183. data/lib/capybara/spec/session/has_link_spec.rb +13 -12
  184. data/lib/capybara/spec/session/has_none_selectors_spec.rb +78 -0
  185. data/lib/capybara/spec/session/has_select_spec.rb +191 -95
  186. data/lib/capybara/spec/session/has_selector_spec.rb +128 -64
  187. data/lib/capybara/spec/session/has_sibling_spec.rb +50 -0
  188. data/lib/capybara/spec/session/has_table_spec.rb +172 -5
  189. data/lib/capybara/spec/session/has_text_spec.rb +126 -60
  190. data/lib/capybara/spec/session/has_title_spec.rb +35 -12
  191. data/lib/capybara/spec/session/has_xpath_spec.rb +74 -53
  192. data/lib/capybara/spec/session/{headers.rb → headers_spec.rb} +3 -2
  193. data/lib/capybara/spec/session/html_spec.rb +14 -6
  194. data/lib/capybara/spec/session/matches_style_spec.rb +35 -0
  195. data/lib/capybara/spec/session/node_spec.rb +1028 -131
  196. data/lib/capybara/spec/session/node_wrapper_spec.rb +39 -0
  197. data/lib/capybara/spec/session/refresh_spec.rb +34 -0
  198. data/lib/capybara/spec/session/reset_session_spec.rb +75 -34
  199. data/lib/capybara/spec/session/{response_code.rb → response_code_spec.rb} +2 -1
  200. data/lib/capybara/spec/session/save_and_open_page_spec.rb +3 -2
  201. data/lib/capybara/spec/session/save_and_open_screenshot_spec.rb +11 -15
  202. data/lib/capybara/spec/session/save_page_spec.rb +42 -55
  203. data/lib/capybara/spec/session/save_screenshot_spec.rb +16 -14
  204. data/lib/capybara/spec/session/screenshot_spec.rb +2 -2
  205. data/lib/capybara/spec/session/scroll_spec.rb +117 -0
  206. data/lib/capybara/spec/session/select_spec.rb +112 -85
  207. data/lib/capybara/spec/session/selectors_spec.rb +71 -8
  208. data/lib/capybara/spec/session/sibling_spec.rb +52 -0
  209. data/lib/capybara/spec/session/text_spec.rb +38 -23
  210. data/lib/capybara/spec/session/title_spec.rb +17 -5
  211. data/lib/capybara/spec/session/uncheck_spec.rb +71 -12
  212. data/lib/capybara/spec/session/unselect_spec.rb +44 -43
  213. data/lib/capybara/spec/session/visit_spec.rb +99 -32
  214. data/lib/capybara/spec/session/window/become_closed_spec.rb +33 -29
  215. data/lib/capybara/spec/session/window/current_window_spec.rb +5 -3
  216. data/lib/capybara/spec/session/window/open_new_window_spec.rb +5 -3
  217. data/lib/capybara/spec/session/window/switch_to_window_spec.rb +39 -30
  218. data/lib/capybara/spec/session/window/window_opened_by_spec.rb +17 -10
  219. data/lib/capybara/spec/session/window/window_spec.rb +121 -73
  220. data/lib/capybara/spec/session/window/windows_spec.rb +12 -10
  221. data/lib/capybara/spec/session/window/within_window_spec.rb +52 -82
  222. data/lib/capybara/spec/session/within_spec.rb +76 -43
  223. data/lib/capybara/spec/spec_helper.rb +67 -33
  224. data/lib/capybara/spec/test_app.rb +85 -36
  225. data/lib/capybara/spec/views/animated.erb +49 -0
  226. data/lib/capybara/spec/views/buttons.erb +1 -1
  227. data/lib/capybara/spec/views/fieldsets.erb +1 -1
  228. data/lib/capybara/spec/views/form.erb +227 -20
  229. data/lib/capybara/spec/views/frame_child.erb +10 -2
  230. data/lib/capybara/spec/views/frame_one.erb +2 -1
  231. data/lib/capybara/spec/views/frame_parent.erb +2 -2
  232. data/lib/capybara/spec/views/frame_two.erb +1 -1
  233. data/lib/capybara/spec/views/header_links.erb +1 -1
  234. data/lib/capybara/spec/views/host_links.erb +1 -1
  235. data/lib/capybara/spec/views/initial_alert.erb +10 -0
  236. data/lib/capybara/spec/views/obscured.erb +47 -0
  237. data/lib/capybara/spec/views/offset.erb +32 -0
  238. data/lib/capybara/spec/views/path.erb +1 -1
  239. data/lib/capybara/spec/views/popup_one.erb +1 -1
  240. data/lib/capybara/spec/views/popup_two.erb +1 -1
  241. data/lib/capybara/spec/views/postback.erb +1 -1
  242. data/lib/capybara/spec/views/react.erb +45 -0
  243. data/lib/capybara/spec/views/scroll.erb +20 -0
  244. data/lib/capybara/spec/views/spatial.erb +31 -0
  245. data/lib/capybara/spec/views/tables.erb +69 -2
  246. data/lib/capybara/spec/views/with_animation.erb +82 -0
  247. data/lib/capybara/spec/views/with_base_tag.erb +1 -1
  248. data/lib/capybara/spec/views/with_count.erb +1 -1
  249. data/lib/capybara/spec/views/with_dragula.erb +24 -0
  250. data/lib/capybara/spec/views/with_fixed_header_footer.erb +17 -0
  251. data/lib/capybara/spec/views/with_hover.erb +7 -1
  252. data/lib/capybara/spec/views/with_hover1.erb +10 -0
  253. data/lib/capybara/spec/views/with_html.erb +100 -10
  254. data/lib/capybara/spec/views/with_html5_svg.erb +20 -0
  255. data/lib/capybara/spec/views/with_html_entities.erb +1 -1
  256. data/lib/capybara/spec/views/with_jquery_animation.erb +24 -0
  257. data/lib/capybara/spec/views/with_js.erb +49 -3
  258. data/lib/capybara/spec/views/with_jstree.erb +26 -0
  259. data/lib/capybara/spec/views/with_namespace.erb +20 -0
  260. data/lib/capybara/spec/views/with_scope.erb +1 -1
  261. data/lib/capybara/spec/views/with_scope_other.erb +6 -0
  262. data/lib/capybara/spec/views/with_simple_html.erb +1 -1
  263. data/lib/capybara/spec/views/with_sortable_js.erb +21 -0
  264. data/lib/capybara/spec/views/with_title.erb +1 -1
  265. data/lib/capybara/spec/views/with_unload_alert.erb +3 -1
  266. data/lib/capybara/spec/views/with_windows.erb +7 -1
  267. data/lib/capybara/spec/views/within_frames.erb +6 -3
  268. data/lib/capybara/version.rb +2 -1
  269. data/lib/capybara/window.rb +39 -21
  270. data/lib/capybara.rb +208 -186
  271. data/spec/basic_node_spec.rb +52 -39
  272. data/spec/capybara_spec.rb +72 -50
  273. data/spec/css_builder_spec.rb +101 -0
  274. data/spec/css_splitter_spec.rb +38 -0
  275. data/spec/dsl_spec.rb +81 -61
  276. data/spec/filter_set_spec.rb +46 -0
  277. data/spec/fixtures/capybara.csv +1 -0
  278. data/spec/fixtures/certificate.pem +25 -0
  279. data/spec/fixtures/key.pem +27 -0
  280. data/spec/fixtures/selenium_driver_rspec_failure.rb +7 -3
  281. data/spec/fixtures/selenium_driver_rspec_success.rb +7 -3
  282. data/spec/minitest_spec.rb +164 -0
  283. data/spec/minitest_spec_spec.rb +162 -0
  284. data/spec/per_session_config_spec.rb +68 -0
  285. data/spec/rack_test_spec.rb +189 -96
  286. data/spec/regexp_dissassembler_spec.rb +250 -0
  287. data/spec/result_spec.rb +143 -13
  288. data/spec/rspec/features_spec.rb +38 -32
  289. data/spec/rspec/scenarios_spec.rb +9 -7
  290. data/spec/rspec/shared_spec_matchers.rb +959 -0
  291. data/spec/rspec/views_spec.rb +9 -3
  292. data/spec/rspec_matchers_spec.rb +62 -0
  293. data/spec/rspec_spec.rb +127 -30
  294. data/spec/sauce_spec_chrome.rb +43 -0
  295. data/spec/selector_spec.rb +458 -37
  296. data/spec/selenium_spec_chrome.rb +196 -9
  297. data/spec/selenium_spec_chrome_remote.rb +100 -0
  298. data/spec/selenium_spec_edge.rb +47 -0
  299. data/spec/selenium_spec_firefox.rb +210 -0
  300. data/spec/selenium_spec_firefox_remote.rb +80 -0
  301. data/spec/selenium_spec_ie.rb +150 -0
  302. data/spec/selenium_spec_safari.rb +148 -0
  303. data/spec/server_spec.rb +200 -101
  304. data/spec/session_spec.rb +91 -0
  305. data/spec/shared_selenium_node.rb +83 -0
  306. data/spec/shared_selenium_session.rb +558 -0
  307. data/spec/spec_helper.rb +94 -2
  308. data/spec/xpath_builder_spec.rb +93 -0
  309. metadata +420 -60
  310. data/lib/capybara/query.rb +0 -7
  311. data/lib/capybara/spec/session/assert_current_path.rb +0 -60
  312. data/lib/capybara/spec/session/assert_selector.rb +0 -148
  313. data/lib/capybara/spec/session/assert_text.rb +0 -196
  314. data/lib/capybara/spec/session/assert_title.rb +0 -70
  315. data/lib/capybara/spec/session/source_spec.rb +0 -0
  316. data/lib/capybara/spec/session/within_frame_spec.rb +0 -53
  317. data/spec/rspec/matchers_spec.rb +0 -827
  318. data/spec/selenium_spec.rb +0 -151
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 13e267dd4eab833671b7653e9cec855306653102
4
- data.tar.gz: 80707daeb161eac1ac1cabff4edef7c06823b707
2
+ SHA256:
3
+ metadata.gz: 516861530f59d3d9713daba7379838146575b920f787ac2c3f5c4bbffc6bf44d
4
+ data.tar.gz: 85b3fb81bf05e43122c2eef320a7a2dbd500033723ebbc04ebc414b0a42d0881
5
5
  SHA512:
6
- metadata.gz: 03a372cfdbdd251f39577df0b83bd8286af62cc4d02bdedd49d91594fb3c2de88babacf628366f49c3a8d10470203bccfe371e461f3789f8c7dae0be94d6eda2
7
- data.tar.gz: 77db21ebef969917a1a8836d5d95e6a725f1fe6dc235fe0e795eeca25fd46b209f77487ddb5e38a523c80f7772ea6d17627ddabda78081e335e002847f8da53e
6
+ metadata.gz: 7f745dac92b73afa56f43a2a509052c7fc5d1efa458863b0b3f05507c664847d6f67720a2c2a680e21126888e63a6eaf6a0e9be7d1a4df9d6aaa9ec61d832e29
7
+ data.tar.gz: 53532156dd31631879a0a8fda93126f259a5cd856a6cec82e6283f9f96e1cc2d98b788e4414ffee5756024d14819450d358529aa90d4c948618e82b878342ebd
data/.yardopts ADDED
@@ -0,0 +1 @@
1
+ --markup markdown
data/History.md CHANGED
@@ -1,9 +1,1126 @@
1
+ # Version 3.35.3
2
+ Release date: 2021-01-29
3
+
4
+ ### Fixed
5
+ * Just a release to have the correct dates in the History.md in released gem
6
+
7
+ # Version 3.35.2
8
+ Release date: 2021-01-29
9
+
10
+ ### Fixed
11
+
12
+ * Selenium deprecation suppressor with Selenium 3.x
13
+
14
+ # Version 3.35.1
15
+ Release date: 2021-01-26
16
+
17
+ ### Fixed
18
+
19
+ * Default chrome driver registrations use chrome - Issue #2442 [Yuriy Alekseyev]
20
+ * 'Capybara.test_id' usage with the :button selector - Issue #2443
21
+
22
+ # Version 3.35.0
23
+ Release date: 2021-01-25
24
+
25
+ ### Added
26
+
27
+ * Support Regexp matching for individual class names in :class filter passed an Array
28
+ * Animation disabler now supports JQuery animation disabling when JQuery loaded from body [Chien-Wei Huang]
29
+
30
+ ### Fixed
31
+
32
+ * :button selector type use with `enable_aria_role` [Sean Doyle]
33
+ * <label> elements don't associate with aria-role buttons
34
+ * Ignore Selenium::WebDriver::Error::InvalidSessionIdError when quitting driver [Robin Daugherty]
35
+ * Firefox: Don't click input when sending keys if already focused
36
+ * Miscellaneous issues with selenium-webdriver 4.0.0.alphas
37
+ * Nil return error in node details optimizations
38
+ * Animation disabler now inserts XHTML compliant content [Dale Morgan]
39
+
40
+ # Version 3.34.0
41
+ Release date: 2020-11-26
42
+
43
+ ### Added
44
+
45
+ * Ability to fill in with emoji when using Chrome with selenium driver (Firefox already worked)
46
+ * Current path assertions/expectations accept optional filter block
47
+ * Animation disabler now specifies `scroll-behavior: auto;` [Nathan Broadbent]
48
+ * :button selector can now find elements by label text [Sean Doyle]
49
+ * `Session#send_keys` to send keys to the current element with focus in drivers that support the
50
+ concept of a current element [Sean Doyle]
51
+
52
+ ### Changed
53
+
54
+ * Text query validates the type parameter to prevent undefined behavior
55
+
56
+ ### Fixed
57
+
58
+ * racktest driver better handles fragments and redirection to urls that include fragments
59
+ * Don't error when attempting to get XPath location of a shadow element
60
+ * Missing `readonly?` added to Node::Simple
61
+ * Selenium version detection when loaded via alternate method [Joel Hawksley]
62
+ * Connection count issue if REQUEST_URI value changed by app [Blake Williams]
63
+ * Maintain URI fragment when redirecting in rack-test driver
64
+ * Text query error message [Wojciech Wnętrzak]
65
+ * Checking a checkbox/radio button with `allow_label_click` now works if there are multiple labels (Issue #2421)
66
+ * `drop` with `Pathname` (Issue #2424)[Máximo Mussini]
67
+
68
+ # Version 3.33.0
69
+ Release date: 2020-06-21
70
+
71
+ ### Added
72
+
73
+ * Block passed to `within_session` now receives the new and old session
74
+ * Support for aria-role button when enabled [Seiei Miyagi]
75
+ * Support for aria-role link when enabled
76
+ * Support for `validation_message` filter with :field and :fillable_field selectors
77
+ * Deprecation warnings show source location [Koichi ITO]
78
+
79
+ ### Changed
80
+
81
+ * Ruby 2.5.0+ is now required
82
+ * Deprecated direct manipulation of the driver and server registries
83
+
84
+ ### Fixed
85
+
86
+ * Ruby 2.7 warning in minitest `assert_text` [Eileen M. Uchitelle]
87
+
88
+
89
+ # Version 3.32.2
90
+ Release date: 2020-05-16
91
+
92
+ ### Fixed
93
+
94
+ * Don't use lazy enumerator with JRuby due to leaking threads
95
+ * Ruby 2.7 deprecation warning when registering Webrick [Jon Zeppieri]
96
+ * `have_text` description [Juan Pablo Rinaldi]
97
+
98
+ # Version 3.32.1
99
+ Release date: 2020-04-05
100
+
101
+ ### Fixed
102
+
103
+ * Rapid set now respects field maxlength (Issue #2332)
104
+ * Only patch pause into legacy actions in Selenium < 4 (Issue #2334)
105
+
106
+ # Version 3.32.0
107
+ Release date: 2020-03-29
108
+
109
+ ### Added
110
+
111
+ * Support `delay` setting on click with Selenium
112
+ * Implement rapid set for values longer than 30 characters in text fields with Selenium
113
+
114
+ ### Fixed
115
+
116
+ * Result#[] and negative max on ranges (Issue #2302/2303) [Jeremy Evans]
117
+ * RackTest form submission rewrites query string when using GET method
118
+ * Ruby 2.7 deprecation warnings in RSpec matcher proxies
119
+
120
+ # Version 3.31.0
121
+ Release date: 2020-01-26
122
+
123
+ ### Added
124
+
125
+ * Support setting range inputs with the selenium driver [Andrew White]
126
+ * Support setting range inputs with the rack driver
127
+ * Support drop modifier keys in drag & drop [Elliot Crosby-McCullough]
128
+ * `enabled_options` and `disabled options` filters for select selector
129
+ * Support beginless ranges
130
+ * Optionally allow `all` results to be reloaded when stable - Beta feature - may be removed in
131
+ future version if problems occur
132
+
133
+ ### Fixed
134
+
135
+ * Fix Ruby 2.7 deprecation notices around keyword arguments. I have tried to do this without
136
+ any breaking changes, but due to the nature of the 2.7 changes and some selector types accepting
137
+ Hashes as locators there are a lot of edge cases. If you find any broken cases please report
138
+ them and I'll see if they're fixable.
139
+ * Clicking on details/summary element behavior in rack_test driver_
140
+
141
+ # Version 3.30.0
142
+ Release date: 2019-12-24
143
+
144
+ ### Added
145
+
146
+ * Display pending requests when they don't complete in time [Juan Carlos Medina]
147
+ * :order option in selector queries - set to :reverse to for reverse document order results
148
+ * Support regexp for :name and :placeholder options in selectors that import filters from
149
+ _field filter set
150
+
151
+ ### Fixed
152
+
153
+ * Issue around automatic port assignment - Issue #2245
154
+ * Label selector when label has no id - Issue #2260
155
+ * Preserve clientX/clientY in Selenium HTML5 drag emulation [Nicolò G.]
156
+ * table selector using :with_cols option if last specified column matched but others didn't - Issue #2287
157
+ * Some tests updated for Ruby 2.7 behavior change around keyword args
158
+
159
+ # Version 3.29.0
160
+ Release date: 2019-09-02
161
+
162
+ ### Added
163
+
164
+ * Allow clicking on file input when using the block version of `attach_file` with Chrome and Firefox
165
+ * Spatial filters (`left_of`, `right_of`, `above`, `below`, `near`)
166
+ * rack_test driver now supports clicking on details elements to open/close them
167
+
168
+ ### Fixed
169
+
170
+ * rack_test driver correctly determines visibility for open details elements descendants
171
+
172
+ ### Changed
173
+
174
+ * Results will now be lazily evaluated when using JRuby >= 9.2.8.0
175
+
176
+
177
+ # Version 3.28.0
178
+ Release date: 2019-08-03
179
+
180
+ ### Added
181
+
182
+ * Allow forcing HTML5 or legacy dragging via the `:html5` option to `drag_to` when using Selenium with Chrome or Firefox
183
+ * Autodetection of drag type interprets not seeing the mousedown event as legacy.
184
+ * HTML5 form validation `:valid` node filter added to `:field` and `:fillable_field` selectors
185
+ * When using Capybara registered :puma server - patches Puma 4.0.x to fix SSL connection behavior. Removes
186
+ default `queue_requests` setting - Issue #2227
187
+
188
+ # Version 3.27.0
189
+ Release date: 2019-07-28
190
+
191
+ ### Added
192
+
193
+ * Allow to use chromedriver/geckodriver native `is_element_displayed` endpoint via Selenium
194
+ driver `native_displayed` option for performance reasons. Disabled by default due to endpoints
195
+ currently not handling &lt;details> element descendants visibility correctly.
196
+
197
+ ### Fixed
198
+
199
+ * Ignore negative lookahead/lookbehind regex when performing initial XPath text matching
200
+ * Reloading of elements found via `ancestor` and `sibling`
201
+ * Only default puma settings to `queue_requests: false` when using SSL
202
+ * Visibility of descendants of &lt;details> elements is correctly determined when using rack_test
203
+ and the selenium driver with Capybara optimized atoms
204
+ * local/session storage clearance in Chrome when clearing only one of them - Issue #2233
205
+
206
+ # Version 3.26.0
207
+ Release date: 2019-07-15
208
+
209
+ ### Added
210
+
211
+ * `w3c_click_offset` configuration option applies to `right_click` and `double_click` as well as `click`
212
+ * Warning when passing `nil` to the text/content assertions/expectations
213
+ * `Session#server_url` returns the base url the AUT is being run at (when controlled by Capybara)
214
+ * `option` selector type accepts an integer as locator
215
+
216
+ ### Fixed
217
+
218
+ * Default puma server registration now specifies `queue_requests: false` - Issue #2227
219
+ * Workaround issue with FF 68 and hanging during reset if a system modal is visible
220
+ * Don't expand file path if it's already absolute - Issue #2228
221
+
222
+ # Version 3.25.0
223
+ Release date: 2019-06-27
224
+
225
+ ### Added
226
+
227
+ * Animation disabler also disables before and after pseudoelements - Issue #2221 [Daniel Heath]
228
+ * `w3c_click_offset` configuration option to determine whether click offsets are calculated from element
229
+ center or top left corner
230
+
231
+ ### Fixed
232
+
233
+ * Work around issue with chromedriver 76/77 in W3C mode losing mouse state during legacy drag. Only fixed if
234
+ both source and target are simultaneously inside the viewport - Issue #2223
235
+ * Negative ancestor expectations/predicates were incorrectly checking siblings rather than ancestors
236
+
237
+ # Version 3.24.0
238
+ Release date: 2019-06-13
239
+
240
+ ### Added
241
+
242
+ * Log access when using the Selenium driver with Chrome 75 in W3C mode has been reenabled.
243
+
244
+ ### Changed
245
+
246
+ * Selenium driver now selects all current content and then sends keys rather than clearing field by JS
247
+ and then sending keys when setting values to text inputs in order to more closely simulate user behavior
248
+
249
+ ### Fixed
250
+
251
+ * Relative paths passed to `attach_file` will be assumed to be relative to the current working directory when using the
252
+ Selenium driver
253
+
254
+ # Version 3.23.0
255
+ Release date: 2019-06-10
256
+
257
+ ### Added
258
+
259
+ * Improved error message when using Chrome in W3C mode and attempting to access logs
260
+ * Support driver specific options for Element#drag_to
261
+ * Support setting `<input type="color">` elements with the selenium driver
262
+
263
+ ### Fixed
264
+
265
+ * Tightened conditions when in expression text option matching will be used
266
+ * Improved Selenium drivers HTML5 drag and drop emulation compatibility with SortableJS library (and others)
267
+
268
+ # Version 3.22.0
269
+ Release date: 2019-05-29
270
+
271
+ ### Added
272
+
273
+ * `ancestor`/`sibling` assertions and matchers added
274
+ * Documentation Updates and Fixes - Many thanks again to Masafumi Koba! [Masafumi Koba]
275
+ * Added `:with` alias for `:option` filter on `:checkbox` and `:radio_button` selectors
276
+
277
+ ### Changed
278
+
279
+ * Selenium driver with Chrome >= 73 now resets cookies and local/session storage after navigating
280
+ to 'about:blank' when possible to minimize potential race condition
281
+
282
+ # Version 3.21.0
283
+ Release date: 2019-05-24
284
+
285
+ ### Added
286
+
287
+ * Element#drop - Chrome and Firefox, via the selenium driver, support dropping files/data on elements
288
+ * Default CSS used for `attach_file` `make_visible: true` now includes auto for
289
+ height and width to handle more ways of hiding the file input element
290
+ * Documentation Updates and Fixes - Many thanks to Masafumi Koba! [Masafumi Koba]
291
+
292
+ ### Changed
293
+
294
+ * Deprecate support for CSS locator being a Symbol
295
+
296
+ # Version 3.20.2
297
+ Release date: 2019-05-19
298
+
299
+ ### Fixed
300
+
301
+ * Move `uglifier` from runtime to development dependency [miyucy]
302
+
303
+ # Version 3.20.1
304
+ Release date: 2019-05-17
305
+
306
+ ### Fixed
307
+
308
+ * RackTest driver considers &lt;template> elements to be non-visible and ignores the contents
309
+
310
+ # Version 3.20.0
311
+ Release date: 2019-05-14
312
+
313
+ ### Added
314
+
315
+ * `Node#obscured?` to check viewport presence and element overlap
316
+ * `:obscured` system filter to check whether elements are obscured in finders, assertions, and expectations
317
+ * :label selector :for option can be a regexp
318
+ * Significantly smaller `isDisplayed`/`getAttribute` atoms for selenium driver. If these produce issues you can disable their use
319
+ by setting an environment variable named 'DISABLE_CAPYBARA_SELENIUM_OPTIMIZATIONS' (Please also report any issues).
320
+ * `href: false` option with `find_link`/`click_link`/:link selector ignores `href` presence/absence
321
+
322
+ ### Fixed
323
+
324
+ * Workaround Safari issue with send_keys not correctly using top level modifiers
325
+ * Workaround Safari not retrying click due to incorrect error type
326
+ * Fix Safari attach_file block mode when clicking elements associated to the file input
327
+ * Workaround Safari issue with repeated hover
328
+
329
+ # Version 3.19.1
330
+ Release date: 2019-05-11
331
+
332
+ ### Fixed
333
+
334
+ * Fix access to specializations when Selenium::Driver is subclassed [James Mead]
335
+
336
+ # Version 3.19.0
337
+ Release date: 2019-05-09
338
+
339
+ ### Added
340
+
341
+
342
+ * Syntactic sugar `#once`, `#twice`, `#thrice`, `#exactly`, `#at_least`, `#at_most`, and `#times`
343
+ added to `have_selector`, `have_css`, `have_xpath`, and `have_text` RSpec matchers
344
+ * Support for multiple expression types in Selector definitions
345
+ * Reduced wirecalls for common actions in Selenium driver
346
+
347
+ ### Fixed
348
+
349
+ * Workaround Chrome 75 appending files to multiple file inputs
350
+ * Suppressed retry when detecting http vs https server connection
351
+
352
+ # Version 3.18.0
353
+ Release date: 2019-04-22
354
+
355
+ ### Added
356
+
357
+ * XPath Selector query optimized to make use of Regexp :text option in initial element find
358
+
359
+ ### Fixed
360
+
361
+ * Workaround issue where Chrome/chromedriver 74 can return the wrong error type when a click is intercepted
362
+
363
+ # Version 3.17.0
364
+ Release date: 2019-04-18
365
+
366
+ ### Added
367
+
368
+ * Initial support for selenium-webdriver 4.0.0.alpha1
369
+ * :button selector will now also match on `name` attribute
370
+
371
+ ### Fixed
372
+
373
+ * Suppress warnings generated by using selenium-webdriver 3.141.5926
374
+ * Mask Appium issue with finder visibility optimizations (non-optimal)
375
+
376
+ # Version 3.16.2
377
+ Release date: 2019-04-10
378
+
379
+ ### Fixed
380
+
381
+ * Fix Session#quit resetting of memoized document
382
+
383
+ # Version 3.16.1
384
+ Release date: 2019-03-30
385
+
386
+ ### Fixed
387
+
388
+ * Fix potential 'uninitialized constant' error when using the :selenium_chrome driver [jeffclemens-ab]
389
+
390
+ # Version 3.16
391
+ Release date: 2019-03-28
392
+
393
+ ### Changed
394
+
395
+ * Ruby 2.4.0+ is now required
396
+ * Selenium driver now defaults to using a persistent http client connection
397
+
398
+ ### Added
399
+
400
+ * :wait option in predicates now accepts `true` to selectively override when `Capybara.predicates_wait == false`
401
+
402
+ # Version 3.15
403
+ Release date: 2019-03-19
404
+
405
+ ### Added
406
+
407
+ * `attach_file` now supports a block mode on JS capable drivers to more accurately test user behavior when file inputs are hidden (beta)
408
+ * :table selector now supports `with_rows`, 'rows', `with_cols`, and 'cols' filters
409
+
410
+ ### Fixed
411
+
412
+ * Fix link selector when `Capybara.test_id` is set - Issue #2166 [bingjyang]
413
+
414
+
415
+ # Version 3.14
416
+ Release date: 2019-02-25
417
+
418
+ ### Added
419
+
420
+ * rack_test driver now supports reloading elements when the document changes - Issue #2157
421
+ * Selenium driver HTML5 drag-drop emulation now emits multiple move events so drag direction
422
+ is determinable [Erkki Eilonen, Thomas Walpole]
423
+ * Capybara.server_errors now defaults to [Exception] - Issue #2160 [Edgars Beigarts]
424
+ ### Fixed
425
+
426
+ * Workaround hover issue with FF 65 - Issue #2156
427
+ * Workaround chromedriver issue when setting blank strings to react controlled text fields
428
+ * Workaround chromedriver issue with popup windows not loading content - https://bugs.chromium.org/p/chromedriver/issues/detail?id=2650&q=load&sort=-id&colspec=ID%20Status%20Pri%20Owner%20Summary
429
+
430
+ # Version 3.13.2
431
+ Release date: 2019-01-24
432
+
433
+ ### Fixed
434
+
435
+ * Remove extraneous output
436
+
437
+ # Version 3.13.1
438
+ Release date: 2019-01-24
439
+
440
+ ### Fixed
441
+
442
+ * Only use Selenium visibility optimization when JS atom is available - Issue #2151
443
+
444
+ # Version 3.13.0
445
+ Release date: 2019-01-23
446
+
447
+ ### Added
448
+
449
+ * Session#quit added
450
+ * #scroll_to added to allow scrolling page/elements to specified locations
451
+ * Speed optimizations around multiple element location and path generation when using the Selenium driver
452
+ * Support for locator type checking in custom selectors
453
+ * Allow configuration of gumbo use - defaults to off
454
+ * `assert_style`/`has_style`/`have_style` deprecated in favor of `assert_matches_style`/`matches_styles?`/`match_style`
455
+ * :style filter added to selectors
456
+
457
+ # Version 3.12.0
458
+ Release date: 2018-11-28
459
+
460
+ ### Added
461
+
462
+ * Support Ruby 2.6 endless range in Result#[] and query `:between` option
463
+ * Pre-registered headless firefox driver :selenium_headless [Andrew Havens]
464
+ * Selenium driver now defaults to clearing `sessionStorage` and `localStorage`. To disable pass `clear_local_storage: false` and/or `clear_session_storage: false` when creating Capybara::Selenium::Driver instance in your driver registration
465
+
466
+ ### Fixed
467
+
468
+ * Raise error if only :x or :y are passed as an offset to click methods
469
+
470
+ ### Removed
471
+
472
+ * Support for RSpec < 3.5
473
+
474
+ # Version 3.11.1
475
+ Release date: 2018-11-16
476
+
477
+ ### Fixed
478
+
479
+ * Fixed :link_or_button XPath generation when it has had an expression filter added
480
+
481
+ # Version 3.11.0
482
+ Release date: 2018-11-14
483
+
484
+ ### Added
485
+
486
+ * Ability for node filters to set detailed error messages
487
+ * `Capybara::HTML` Will use `nokogumbo` for HTML parsing if installed
488
+ * `Selector#locator_filter` added to allow for dynamic locator in selectors
489
+
490
+ ### Fixed
491
+
492
+ * Node filters are evaluated in the context of the Selector they are used in to ensure the correct options are used
493
+
494
+ # Version 3.10.1
495
+ Release date: 2018-11-03
496
+
497
+ ### Fixed
498
+
499
+ * Fix `aria-label` and `test_id` matching for `link_or_button` selector type - Issue #2125
500
+ * Fixed crash in element path creation for matcher failure messages - Issue #2120
501
+
502
+ # Version 3.10.0
503
+ Release date: 2018-10-23
504
+
505
+ ### Added
506
+
507
+ * :class filter can now check for class names starting with !
508
+ * Selector `xpath`/`css` expression definitions will get filter names from block parameters if not explicitly provided
509
+ * `any_of_selectors` assertions and matchers to complement `all_of_selectors` and `none_of_selectors`
510
+
511
+ ### Fixed
512
+
513
+ * Selector `css` expression definition declared filters now work again
514
+ * Cleaned up warnings [Yuji Yaginuma]
515
+ * Workaround installation of rspec matcher proxies under jruby by reverting to the old solution not using prepend, so jruby bugs are not hit - Issue #2115
516
+
517
+ # Version 3.9.0
518
+ Release date: 2018-10-03
519
+
520
+ ### Added
521
+
522
+ * Selenium with Chrome removes all cookies at session reset instead of just cookies from current domain if possible
523
+ * Support for Regexp for system :id and :class filters where possible
524
+ * `using_session` now accepts a session object as well as the name of the session for users who manually manage sessions
525
+ * The `:field` selector will now find `type = "hidden"` fields if the `type: "hidden"` filter option is provided
526
+
527
+ # Version 3.8.2
528
+ Release date: 2018-09-26
529
+
530
+ ### Fixed
531
+
532
+ * Fixed negated class selector option - Issue #2103
533
+
534
+ # Version 3.8.1
535
+ Release date: 2018-09-22
536
+
537
+ ### Fixed
538
+
539
+ * Filling in of date fields with a string when using selenium chrome regression [Micah Geisel]
540
+
541
+ # Version 3.8.0
542
+ Release date: 2018-09-20
543
+
544
+ ### Added
545
+
546
+ * Workaround geckodriver 0.22 issue with undefined pause durations
547
+ * :element selector ignores XML namespaces
548
+
549
+ ### Fixed
550
+
551
+ * Added Errno::ECONNRESET to the errors which will allows https server detection
552
+
553
+ # Version 3.7.2
554
+ Release date: 2018-09-12
555
+
556
+ ### Fixed
557
+
558
+ * Fix MatchQuery based matchers when used on a root element found using any type of parent/ancestor query - Issue #2097
559
+
560
+ * Fix Chrome/FF HTML5 drag simulation for elements (a, img) which default to draggable - Issue #2098
561
+
562
+ # Version 3.7.1
563
+ Release date: 2018-09-05
564
+
565
+ ### Fixed
566
+
567
+ * Restored ability to pass symbol as the CSS selector when calling `has_css?`/`have_css`/etc - Issue #2093
568
+
569
+ # Version 3.7.0
570
+ Release date: 2018-09-02
571
+
572
+ ### Added
573
+
574
+ * `Capybara.disable_animation` can be set to a CSS selector to identify which elements will have animation disabled [Michael Glass]
575
+ * `Capybara.default_normalize_ws` option which sets whether or not text predicates and matchers (`has_text?`, `has_content?`, `assert_text`, etc) use `normalize_ws` option by default. Defaults to false. [Stegalin Ivan]
576
+ * Selector based predicates, matchers, and finders now support the `:normalize_ws` option for the `:text`/`:exact_text` filters. Defaults to the `Capybara.default_normalize_ws`setting above.
577
+ * Element `choose`/`check`/`uncheck`/`attach_file`/`fill_in` can now operate on the element they're called on or a descendant if no locator is passed.
578
+
579
+ ### Fixed
580
+
581
+ * All CSS styles applied by the `Element#attach_file` `:make_visible` option will now have `!important` priority set to ensure they override any other specified style.
582
+ * Firefox file inputs are only manually cleared when necessary.
583
+
584
+ # Version 3.6.0
585
+ Release date: 2018-08-14
586
+
587
+ ### Added
588
+
589
+ * Workaround geckodriver/firefox send_keys issues as much as possible using the Selenium actions API
590
+ * Workaround lack of HTML5 native drag and drop events when using Selenium driver with Chrome and FF >= 62
591
+ * `Capybara.predicates_wait` option which sets whether or not Capybaras matcher predicate methods (`has_css?`, `has_selector?`, `has_text?`, etc.) default to using waiting/retrying behavior (defaults to true)
592
+
593
+ # Version 3.5.1
594
+ Release date: 2018-08-03
595
+
596
+ ### Fixed
597
+
598
+ * Fixed misspelled method name `refute_matches_elector` => `refute_matches_selector`
599
+
600
+ # Version 3.5.0
601
+ Release date: 2018-08-01
602
+
603
+ ### Added
604
+
605
+ * text predicates and matchers (`has_text?`, `has_content?`, `assert_text`, etc) now support a `normalize_ws` option
606
+
607
+ ### Fixed
608
+
609
+ * `attach_file` with Selenium and local Firefox 62+ now correctly generates only one change event when attaching multiple files
610
+
611
+ # Version 3.4.2
612
+ Release date: 2018-07-24
613
+
614
+ ### Fixed
615
+
616
+ * `match_xxx` selectors and `matches_xxx?` predicates work correctly with elements found using a sibling selector - Issue #2073
617
+
618
+ # Version 3.4.1
619
+ Release date: 2018-07-20
620
+
621
+ ### Fixed
622
+
623
+ * `Session#evaluate_script` now strips the script in `Session` rather than only in the Selenium driver
624
+
625
+ # Version 3.4.0
626
+ Release date: 2018-07-19
627
+
628
+ ### Fixed
629
+
630
+ * Make selenium driver :backspace clear strategy work even if caret location is in middle of field content [Champier Cyril]
631
+ * Selenium issue with fieldset nested in disabled fieldset not being considered disabled
632
+ * `Session#evaluate_script` and `Element#evaluate_script` now strip leading/trailing whitespace from scripts [Ian Lesperance]
633
+
634
+ ### Added
635
+
636
+ * Work around Selenium lack of support for `file_detector` with remote geckodriver
637
+ * `#within_frame` locator is optional when only one frame exists
638
+ * `Capybara.test_id` option that allows for matching the Capybara provided selector types on an arbitrary attribute
639
+ (defaults to nil), set to your test id attribute ('data-test-id, etc) if using test id attributes in your project
640
+
641
+ # Version 3.3.1
642
+ Release date: 2018-06-27
643
+
644
+ ### Fixed
645
+
646
+ * `selenium-webdriver` version check [ahorek]
647
+ * Selenium driver correctly responds to `disabled?` for fieldset elements - Issue #2059 [Thomas Walpole]
648
+
649
+ # Version 3.3.0
650
+ Release date: 2018-06-25
651
+
652
+ ### Added
653
+
654
+ * RackTest driver now handles 307/308 redirects
655
+ * `execute_async_script` can now be called on elements to run the JS in the context of the element
656
+ * `:download` filter option on `:link' selector
657
+ * `Window#fullscreen`
658
+ * `Element#style` and associated matchers
659
+
660
+ ### Changed
661
+
662
+ * Minimum "supported" `selenium-webdriver` is raised to 3.5.0 (but you really should be using newer than that)
663
+
664
+ ### Fixes
665
+
666
+ * Selenium driver with Firefox workaround for clicking on table row - https://github.com/mozilla/geckodriver/issues/1228
667
+ * :class and :id filters applied to CSS based selectors now correctly handle the CSS comma
668
+ * Selenium driver handles namespaces when generating an elements `#path` - Issue #2048
669
+
670
+ # Version 3.2.1
671
+ Release date: 2018-06-04
672
+
673
+ ### Fixes
674
+
675
+ * Only split CSS selectors when :class or :id options are given. Restores 3.1.1 functionality for now but the underlying issue
676
+ will require a larger fix, hopefully coming soon. - Issue #2044 [Thomas Walpole]
677
+
678
+ # Version 3.2.0
679
+ Release date: 2018-06-01
680
+
681
+ ### Changed
682
+
683
+ * Ruby 2.3.0+ is now required
684
+ * `ElementNotFound` errors raised in selector filters are interpreted as non-matches
685
+
686
+ ### Added
687
+
688
+ * New global configuration `default_set_options` used in `Capybara::Node::Element#set` as default `options` hash [Champier Cyril]
689
+ * `execute_script` and `evaluate_script` can now be called on elements to run the JS in the context of the element [Thomas Walpole]
690
+ * Filters in custom selectors now support a `matcher` Regexp to handle multiple filter options [Thomas Walpole]
691
+ * `:element` selector type which will match on any attribute (other than the reserved names) passed as a filter option [Thomas Walpole]
692
+ * `:class` filter option now supports preceding class names with `!` to indicate not having that class [Thomas Walpole]
693
+ * `:class` and `:id` filter options now accept `XPath::Expression` objects to allow for more flexibility in matching [Thomas Walpole]
694
+ * `Capybara.disable_animation` setting which triggers loading of a middleware that attempts to disable animations in pages.
695
+ This is very much a beta feature and may change/disappear in the future. [Thomas Walpole]
696
+
697
+ # Version 3.1.1
698
+ Release date: 2018-05-25
699
+
700
+ ### Fixes
701
+
702
+ * Ensure keystrokes are sent when setting time/date fields to a string with the Selenium driver [Thomas Walpole]
703
+
704
+ # Version 3.1.0
705
+ Release date: 2018-05-10
706
+
707
+ ### Added
708
+
709
+ * Support for using `select` with text inputs associated with a datalist element
710
+ * `type` filter on `:button` selector
711
+ * Support for server operating in https mode
712
+ * Selenium driver now uses JS to fill_in/set date and time fields when passed date or time objects [Aleksei Gusev, Thomas Walpole]
713
+
714
+ # Version 3.0.3
715
+ Release date: 2018-04-30
716
+
717
+ ### Fixes
718
+
719
+ * Issue in `check` where the locator string could not be omitted
720
+ * Selenium browser type detection when using remote [Ian Ker-Seymer]
721
+ * Potential hang when waiting for requests to complete [Chris Zetter]
722
+
723
+ # Version 3.0.2
724
+ Release date: 2018-04-13
725
+
726
+ ### Fixes
727
+
728
+ * Fix expression filter descriptions in some selector failure messages
729
+ * Fix compounding of negated matchers - Issue #2010
730
+
731
+ # Version 3.0.1
732
+ Release date: 2018-04-06
733
+
734
+ ### Changed
735
+
736
+ * Restored ability for `Capybara.server=` to accept a proc which was accidentally removed in 3.0.0
737
+
738
+ # Version 3.0.0
739
+ Release date: 2018-04-05
740
+
741
+ ### Changed
742
+
743
+ * Selenium driver only closes extra windows for browsers where that is known to work (Firefox, Chrome)
744
+ * "threadsafe" mode is no longer considered beta
745
+
746
+ ### Fixes
747
+
748
+ * Multiple file attach_file with Firefox
749
+ * Use Puma::Server directly rather than Rack::Handler::Puma so signal handlers don't prevent test quitting
750
+
751
+ # Version 3.0.0.rc2
752
+ Release date: 2018-03-23
753
+
754
+ ### Changed
755
+
756
+ * Visibile text whitespace is no longer fully normalized in favor of being more in line with the WebDriver spec for visible text
757
+ * Drivers are expected to close extra windows when resetting the session
758
+ * Selenium driver supports Date/Time when filling in date/time/datetime-local inputs
759
+ * `current_url` returns the url for the top level browsing context
760
+ * `title` returns the title for the top level browsing context
761
+
762
+ ### Added
763
+
764
+ * `Driver#frame_url` returns the url for the current frame
765
+ * `Driver#frame_title` returns the title for the current frame
766
+
767
+ # Version 3.0.0.rc1
768
+ Release date: 2018-03-02
769
+
770
+ ### Added
771
+ * Support for libraries wrapping Capybara elements and providing a `#to_capybara_node` method
772
+
773
+ ### Changed
774
+
775
+ * `first` now raises ElementNotFound, by default, instead of returning nil when no matches are found - Issue #1507
776
+ * 'all' now waits for at least one matching element by default. Pass `wait: false` if you want the previous
777
+ behavior where an empty result would be returned immediately if no matching elements exist yet.
778
+ * ArgumentError raised if extra parameters passed to selector queries
779
+
780
+ ### Removed
781
+
782
+ * Ruby < 2.2.2 support
783
+ * `Capybara.exact_options` no longer exists. Just use `exact: true` on relevant actions/finders if necessary.
784
+ * All previously deprecated methods removed
785
+ * RSpec 2.x support
786
+ * selenium-webdriver 2.x support
787
+ * Nokogiri < 1.8 support
788
+ * `field_labeled` alias for `find_field`
789
+
790
+ # Version 2.18.0
791
+ Release date: 2018-02-12
792
+
793
+ ### Fixed
794
+
795
+ * Firefox/geckodriver setting of contenteditable childs contents
796
+ * Ignore Selenium::WebDriver::Error::SessionNotCreatedError when quitting driver [Tim Connor]
797
+
798
+ ### Removed
799
+
800
+ * Headless chrome modal JS injection that is no longer needed for Chrome 64+/chromedriver 2.35+
801
+
802
+
803
+ # Version 2.17.0
804
+ Release date: 2018-01-02
805
+
806
+ ### Added
807
+
808
+ * `have_all_of_selectors`, `have_none_of_selectors` RSpec matchers for parity with minitest assertions [Thomas Walpole]
809
+
810
+ ### Fixed
811
+
812
+ * Allow xpath 3.x gem [Thomas Walpole]
813
+ * Issue when drivers returned nil for `current_path` and a matcher was used with a Regexp [Thomas Walpole]
814
+ * Error message when visible element not found, but non-visible was [Andy Klimczak]
815
+
816
+ # Version 2.16.1
817
+ Release date: 2017-11-20
818
+
819
+ ### Fixed
820
+
821
+ * Fix rack_test driver for rack_test 0.7.1/0.8.0 [Thomas Walpole]
822
+ * `accept_prompt` response text can contain quotes when using selenium with headless chrome [Thomas Walpole]
823
+
824
+ # Version 2.16.0
825
+ Release date: 2017-11-13
826
+
827
+ ### Added
828
+
829
+ * Attempt to move element into view when selenium doesn't correctly do it - See PR #1917 [Thomas Walpole]
830
+ * `current_path` matchers will now autodetect path vs url based on string to be matched. Deprecates
831
+ `:only_path` in favor of `:ignore_query` option [Thomas Walpole]
832
+ * Session#evaluate_async_script [Thomas Walpole]
833
+
834
+ ### Fixed
835
+
836
+ * Default prompt value when using headless Chrome works correctly [Thomas Walpole]
837
+ * Support new modal error returned by selenium-webdriver 3.7 for W3C drivers [Thomas Walpole]
838
+ * Calling `respond_to?` on the object passed to `Capybara.configure` block - Issue #1935
839
+
840
+ # Version 2.15.4
841
+ Release date: 2017-10-07
842
+
843
+ ### Fixed
844
+ * Visiting an absolute URL shouldn't overwrite the port when no server or always_include_port=false - Issue #1921
845
+
846
+ # Version 2.15.3
847
+ Release date: 2017-10-03
848
+
849
+ ### Fixed
850
+ * Visiting '/' when Capybara.app_host has a trailing '/' - Issue #1918 [Thomas Walpole]
851
+
852
+ # Version 2.15.2
853
+ Release date: 2017-10-02
854
+
855
+ ### Fixed
856
+
857
+ * Include within scope description in element not found/ambiguous errors [Thomas Walpole]
858
+ * Raise error when no activation block is passed to modal methods if using headless chrome [Thomas Walpole]
859
+ * Don't retry element access when inspecting [Ivan Neverov]
860
+ * Don't override a specified port (even if it is default port) in visited url [Thomas Walpole]
861
+
862
+ # Version 2.15.1
863
+
864
+ Release date: 2017-08-04
865
+
866
+ ### Fixed
867
+
868
+ * `attach_file` with no extension/MIME type when using the `:rack_test` driver [Thomas Walpole]
869
+
870
+ # Version 2.15.0
871
+
872
+ Release date: 2017-08-04
873
+
874
+ ### Added
875
+
876
+ * `sibling` and `ancestor` finders added [Thomas Walpole]
877
+ * Added ability to pass options to registered servers when setting
878
+ * Added basic built-in driver registrations `:selenium_chrome` and `:selenium_chrome_headless` [Thomas Walpole]
879
+ * Add `and_then` to Capybara RSpec matchers which behaves like the previous `and` compounder. [Thomas Walpole]
880
+ * Compound RSpec expectations with Capybara matchers now run both matchers inside a retry loop rather
881
+ than waiting for one to pass/fail before checking the second. Will make `#or` more performant and confirm
882
+ both conditions are true "simultaneously" for `and`. [Thomas Walpole]
883
+ If you still want the
884
+ * Default filter values are now included in error descriptions [Thomas Walpole]
885
+ * Add `Session#refresh` [Thomas Walpole]
886
+ * Loosened restrictions on where `Session#within_window` can be called from [Thomas Walpole]
887
+ * Switched from `mime-types` dependency to `mini_mime` [Jason Frey]
888
+
889
+ # Version 2.14.4
890
+
891
+ Release date: 2017-06-27
892
+
893
+ ### Fixed
894
+
895
+ * Fix retrieval of session_options for HaveSelector matcher descriptions - Issue #1883
896
+
897
+ # Version 2.14.3
898
+
899
+ Release date: 2017-06-15
900
+
901
+ ### Fixed
902
+
903
+ * Minitest assertions now raise the correct error type - Issue #1879 [Thomas Walpole]
904
+ * Improve flexibility of detecting Chrome headless mode [Thomas Walpole]
905
+
906
+ # Version 2.14.2
907
+
908
+ Release date: 2017-06-09
909
+
910
+ ### Fixed
911
+
912
+ * Workaround for system modals when using headless Chrome now works if the page changes
913
+
914
+ # Version 2.14.1
915
+
916
+ Release date: 2017-06-07
917
+
918
+ ### Fixed
919
+
920
+ * Catch correct error when unexpected system modals are discovered in latest selenium [Thomas Walpole]
921
+ * Update default `puma` server registration to encourage it to run in single mode [Thomas Walpole]
922
+ * Suppress invalid element errors raised while lazily evaluating the results of `all` [Thomas Walpole]
923
+ * Added missing `with_selected` option to the :select selector to match `options`/`with_options` options - Issue #1865 [Bartosz Nowak]
924
+ * Workaround broken system modals when using selenium with headless Chrome
925
+
926
+ # Version 2.14.0
927
+
928
+ Release date: 2017-05-01
929
+
930
+ ### Added
931
+
932
+ * "threadsafe" mode that allows per-session configuration
933
+ * `:type` filter added to the `:fillable_field` selector
934
+ * Proxy methods when using RSpec for `all`/`within` that call either the Capybara::DSL or RSpec matchers
935
+ depending on arguments passed
936
+ * Support for the new errors in selenium-webdriver 3.4
937
+
938
+ ### Fixed
939
+
940
+ * Element#inspect doesn't raise an error on obsolete elements
941
+ * Setting a contenteditable element with Selenium and Chrome 59
942
+ * Workaround a hang while setting the window size when using geckodriver 0.16 and Firefox 53
943
+ * Clicking on url with a blank href goes to the current url when using the RackTest driver
944
+
945
+ # Version 2.13.0
946
+
947
+ Release date: 2017-03-16
948
+
949
+ ### Added
950
+
951
+ * Selenium driver supports returning element(s) from evaluate_script [Thomas Walpole]
952
+ * rack_test driver supports click on checkboxes and radio buttons to change their states [Thomas Walpole]
953
+ * Support RSpec equivalent assertions and expectations for MiniTest [Thomas Walpole]
954
+
955
+ ### Fixed
956
+
957
+ * Editing of content editable children with selenium
958
+
959
+ # Version 2.12.1
960
+
961
+ Release date: 2017-02-16
962
+
963
+ ### Fixed
964
+ * Disable lazy Capybara::Results evaluation for JRuby due to ongoing issues
965
+
966
+ # Version 2.12.0
967
+
968
+ Release date: 2017-01-22
969
+
970
+ ### Added
971
+
972
+ * Session#switch_to_frame for manually handling frame switching - Issue #1365 [Thomas Walpole]
973
+ * Session#within_frame now accepts a selector type (defaults to :frame) and locator [Thomas Walpole]
974
+ * Session#execute_script and Session#evaluate_script now accept optional arguments that will be passed to the JS function. This may not be supported
975
+ by all drivers, and the types of arguments that may be passed is limited. If drivers opt to support this feature they should support passing page elements. [Thomas Walpole]
976
+ * :exact option for text and title matchers - Issue #1256 [Thomas Walpole]
977
+ * :exact_text option for selector finders/minders - Issue #1256 [Thomas Walpole]
978
+ * Capybara.exact_text setting that affects the text matchers and :text options passed to selector finders/matchers. Issue #1256 [Thomas Walpole]
979
+ * :make_visible option for #attach_file that allows for convenient changing of the CSS style of a file input element before attaching the file to it. Requires driver
980
+ support for passing page elements to Session#execute_script [Thomas Walpole]
981
+ * assert_all_selectors/assert_none_of_selectors assertions added
982
+ * :link selector (used by find_link/click_link) now supports finding hyperlink placeholders (no href attribute) when href: nil option is specified [Thomas Walpole]
983
+ * `within_element` as an alias of `within` due to RSpec collision
984
+
985
+ ### Fixed
986
+
987
+ * Fields inside a disabled fieldset are now correctly considered disabled - Issue #1816 [Thomas Walpole]
988
+ * Lazy Capybara::Results evaluation enabled for JRuby 9.1.6.0+
989
+ * A driver returning nil for #current_url won't raise an exception when calling #current_path [Dylan Reichstadt]
990
+ * Support Ruby 2.4.0 unified Integer [Koichi ITO]
991
+ * RackTest driver no longer modifies the text content of textarea elements in order to behave more like a real browser [Thomas Walpole]
992
+ * TextQuery (assert_text/have_text/etc) now ignores errors when trying to generate more helpful errors messages so the original error isn't hidden [Thomas Walpole]
993
+
994
+ # Version 2.11.0
995
+
996
+ Release date: 2016-12-05
997
+
998
+ ### Added
999
+
1000
+ * Options for clearing session/local storage on reset added to the Selenium driver
1001
+ * Window size changes wait for the size to stabilize
1002
+ * Defined return value for most actions
1003
+ * Ignore specific error when quitting selenium driver instance - Issue #1773 [Dylan Reichstadt, Thomas Walpole]
1004
+ * Warn on selenium unknown errors rather than raising when quitting driver [Adam Pohorecki, Thomas Walpole]
1005
+ * Capybara::Result#each now returns an `Enumerator` when called without a block - Issue #1777 [Thomas Walpole]
1006
+
1007
+ ### Fixed
1008
+
1009
+ * Selenium driver with Chrome should support multiple file upload [Thomas Walpole]
1010
+ * Fix visible: :hidden with :text option behavior [Thomas Walpole]
1011
+
1012
+ # Version 2.10.2
1013
+
1014
+ Release date: 2016-11-30
1015
+
1016
+ ### Fixed
1017
+
1018
+ * App exceptions with multiple parameter initializers now re-raised correctly - Issue #1785 [Michael Lutsiuk]
1019
+ * Use Addressable::URI when parsing current_path since it's more lenient of technically invalid URLs - Issue #1801 [Marcos Duque, Thomas Walpole]
1020
+
1021
+ # Version 2.10.1
1022
+
1023
+ Release date: 2016-10-08
1024
+
1025
+ ### Fixed
1026
+ * App errors are now correctly raised with the explanatory cause in JRuby [Thomas Walpole]
1027
+ * Capybara::Result optimization disabled in JRuby due to issue with lazy enumerator evaluation [Thomas Walpole]
1028
+ See: https://github.com/jruby/jruby/issues/4212
1029
+
1030
+ # Version 2.10.0
1031
+
1032
+ Release date: 2016-10-05
1033
+
1034
+ ### Added
1035
+
1036
+ * Select `<button>` elements with descendant images with `alt` attributes matching the locator [Ian Lesperance]
1037
+ * Locator string is optional in selector based matchers [Thomas Walpole]
1038
+ * Selectors can specify their default visible setting [Thomas Walpole]
1039
+ * Selector based finders and matchers can be passed a block to filter the results within the retry behavior [Thomas Walpole]
1040
+
1041
+ # Version 2.9.2
1042
+
1043
+ Release date: 2016-09-29
1044
+
1045
+ ### Fixed
1046
+
1047
+ * :label built-in selector finds nested label/control by control id if the label has no 'for' attribute [Thomas Walpole]
1048
+ * Warning issued if an unknown selector type is specified [Thomas Walpole]
1049
+
1050
+ # Version 2.9.1
1051
+
1052
+ Release date: 2016-09-23
1053
+
1054
+ ### Fixed
1055
+
1056
+ * allow_label_click option did not work in some cases with Poltergeist - Issue #1762 [Thomas Walpole]
1057
+ * matches_selector? should have access to all of a selectors options except the count options [Thomas Walpole]
1058
+
1059
+ # Version 2.9.0
1060
+
1061
+ Release date: 2016-09-19
1062
+
1063
+ ### Fixed
1064
+
1065
+ * Issue with rack-test driver and obsolete mime-types when using `#attach_file` - Issue #1756 [Thomas Walpole]
1066
+
1067
+ ### Added
1068
+
1069
+ * `:class` option to many of the built-in selectors [Thomas Walpole]
1070
+ * Removed need to specify value when creating `:boolean` filter type in custom selectors [Thomas Walpole]
1071
+ * Filters can now be implemented through the XPath/CSS expressions in custom selectors [Thomas Walpole]
1072
+ * `Element#matches_xpath?` and `Element#matches_css?` [Thomas Walpole]
1073
+
1074
+ # Version 2.8.1
1075
+
1076
+ Release date: 2016-08-25
1077
+
1078
+ ### Fixed
1079
+
1080
+ * Fixed error message from have_text when text is not found but contains regex special characters [Ryunosuke Sato]
1081
+ * Warn when :exact option is passed that has no effect [Thomas Walpole]
1082
+
1083
+ # Version 2.8.0
1084
+
1085
+ Release date: 2016-08-16
1086
+
1087
+ ### Fixed
1088
+
1089
+ * Issue with modals present when closing the page using selenium - Issue #1696 [Jonas Nicklas, Thomas Walpole]
1090
+ * Server errors raised in test code have the cause set to an explanatory exception
1091
+ in rubies that support Exception#cause rather than a confusing ExpectationNotMet - Issue #1719 [Thomas Walpole]
1092
+ * background/given/given! RSpec aliases will work if RSpec config.shared_context_metadata_behavior == :apply_to_host_groups [Thomas Walpole]
1093
+ * Fixed setting of unexpectedAlertError now that Selenium will be freezing the Capabilities::DEFAULTS [Thomas Walpole]
1094
+
1095
+ ### Added
1096
+
1097
+ * 'check', 'uncheck', and 'choose' can now optionally click the associated label if the checkbox/radio button is not visible [Thomas Walpole]
1098
+ * Raise error if Capybara.app_host/default_host are specified incorrectly [Thomas Walpole]
1099
+ * Capybara::Selector::FilterSet allows for sharing filter definitions between selectors [Thomas Walpole]
1100
+ * Remove need to pass nil locator in most node actions when locator is not needed [Thomas Walpole]
1101
+ * New frames API for drivers - Issue #1365 [Thomas Walpole]
1102
+ * Deprecated Element#parent in favor of Element#query_scope to better indicate what it is [Thomas Walpole]
1103
+ * Improved error messages for have_text matcher [Alex Chaffee, Thomas Walpole]
1104
+ * The `:with` option for the field selector now accepts a regular expression for matching the field value [Uwe Kubosch]
1105
+ * Support matching on aria-label attribute when finding fields/links/buttons - Issue #1528 [Thomas Walpole]
1106
+ * Optimize Capybara::Result to only apply fields as necessary in common use-case of `.all[idx]` [Thomas Walpole]
1107
+
1108
+ # Version 2.7.1
1109
+
1110
+ Release date: 2016-05-01
1111
+
1112
+ ### Fixed
1113
+
1114
+ * Issue where within_Frame would fail with Selenium if the frame is removed from within itself [Thomas Walpole]
1115
+ * Reset sessions in reverse order so sessions with active servers are reset last - Issue #1692 [Jonas Nicklas, Thomas Walpole]
1116
+
1
1117
  # Version 2.7.0
2
- Release date: unreleased
1118
+
1119
+ Release date: 2016-04-07
3
1120
 
4
1121
  ### Fixed
5
- * Element#visible?/checked?/disabled?/selected? Now return boolean
6
- as expected when using the rack_test driver [Thomas Walpole]
1122
+
1123
+ * Element#visible?/checked?/disabled?/selected? Now return boolean as expected when using the rack_test driver [Thomas Walpole]
7
1124
  * The rack_test driver now considers \<input type="hidden"> elements as non-visible [Thomas Walpole]
8
1125
  * A nil locator passed to the built-in html type selectors now behaves consistently, and finds elements of the expected types [Thomas Walpole]
9
1126
  * Capybara::Server now searches for available ports on the same interface it binds to [Aaron Stone]
@@ -11,7 +1128,8 @@ Release date: unreleased
11
1128
  * Warning output if unused parameters are passed to a selector query [Thomas Walpole]
12
1129
 
13
1130
  ### Added
14
- * Capybara now waits for requests to Capybaras server to complete while restting the session [John Hawthorn, Thomas Walpole]
1131
+
1132
+ * Capybara now waits for requests to Capybaras server to complete while resetting the session [John Hawthorn, Thomas Walpole]
15
1133
  * Capybara.reuse_server option to allow disabling of sharing server instance between sessions [Thomas Walpole]
16
1134
  * :multiple filter added to relevant selectors [Thomas Walpole]
17
1135
  * Provided server registrations for :webrick and :puma. Capybara.server = :puma for testing with Rails 5 [Thomas Walpole]
@@ -23,22 +1141,28 @@ Release date: unreleased
23
1141
  save_page/save_screenshot [Thomas Walpole]
24
1142
  * :label selector [Thomas Walpole]
25
1143
 
26
- #Version 2.6.2
27
- Relase date: 2016-01-27
1144
+ # Version 2.6.2
1145
+
1146
+ Release date: 2016-01-27
28
1147
 
29
1148
  ### Fixed
1149
+
30
1150
  * support for more than just addressable 2.4.0 [Thomas Walpole]
31
1151
 
32
1152
  # Version 2.6.1
1153
+
33
1154
  Release date: 2016-01-27
34
1155
 
35
1156
  ### Fixed
1157
+
36
1158
  * Add missing require for addressable [Jorge Bejar]
37
1159
 
38
1160
  # Version 2.6.0
1161
+
39
1162
  Relase date: 2016-01-17
40
1163
 
41
1164
  ### Fixed
1165
+
42
1166
  * Fixed path escaping issue with current_path matchers [Thomas Walpole, Luke Rollans] (Issue #1611)
43
1167
  * Fixed circular require [David Rodríguez]
44
1168
  * Capybara::RackTest::Form no longer overrides Object#method [David Rodriguez]
@@ -47,6 +1171,7 @@ Relase date: 2016-01-17
47
1171
 
48
1172
 
49
1173
  ### Added
1174
+
50
1175
  * Capybara.modify_selector [Thomas Walpole]
51
1176
  * xfeature and ffeature aliases added when using RSpec [Filip Bartuzi]
52
1177
  * Selenium driver supports a :clear option to #set to handle different strategies for clearing a field [Thomas Walpole]
@@ -55,15 +1180,18 @@ Relase date: 2016-01-17
55
1180
  * Modal API methods now default wait time to Capybara.default_max_wait_time [Thomas Walpole]
56
1181
 
57
1182
  # Version 2.5.0
1183
+
58
1184
  Release date: 2015-08-25
59
1185
 
60
1186
  ### Fixed
1187
+
61
1188
  * Error message now raised correctly when invalid options passed to 'have_text'/'have_content' [Thomas Walpole]
62
1189
  * Rack-test driver correctly gets document title when elements on the page have nested title elements (SVG) [Thomas Walpole]
63
1190
  * 'save_page' no longer errors when using Capybara.asset_host if the page has no \<head> element [Travis Grathwell]
64
1191
  * rack-test driver will ignore clicks on links with href starting with '#' or 'javascript:'
65
1192
 
66
1193
  ### Added
1194
+
67
1195
  * has_current_path? and associated asserts/matchers added [Thomas Walpole]
68
1196
  * Implement Node#path in selenium driver [Soutaro Matsumoto]
69
1197
  * 'using_session' is now nestable [Thomas Walpole]
@@ -81,25 +1209,32 @@ Release date: 2015-08-25
81
1209
  * Clear field using backspaces in Selenium driver by using `:fill_options => { :clear => :backspace }` [Joe Lencioni]
82
1210
 
83
1211
  ### Deprecated
1212
+
84
1213
  * Capybara.default_wait_time deprecated in favor of Capybara.default_max_wait_time to more clearly explain its purpose [Paul Pettengill]
85
1214
 
86
- #Version 2.4.4
1215
+ # Version 2.4.4
1216
+
87
1217
  Release date: 2014-10-13
88
1218
 
89
1219
  ### Fixed
1220
+
90
1221
  * Test for visit behavior updated [Phil Baker]
91
1222
  * Removed concurrency prevention in favor of a note in the README - due to load order issues
92
1223
 
93
1224
  # Version 2.4.3
1225
+
94
1226
  Relase date: 2014-09-21
95
1227
 
96
1228
  ### Fixed
1229
+
97
1230
  * Update concurrency prevention to match Rails 4.2 behavior
98
1231
 
99
1232
  # Version 2.4.2
1233
+
100
1234
  Release date: 2014-09-20
101
1235
 
102
1236
  ### Fixed
1237
+
103
1238
  * Prevent concurrency issue when testing Rails app with default test environment [Thomas Walpole]
104
1239
  * Tags for windows API tests fixed [Dmitry Vorotilin]
105
1240
  * Documentation Fixes [Andrey Botalov]
@@ -134,6 +1269,7 @@ Release date: 2014-07-03
134
1269
  Release date: 2014-06-02
135
1270
 
136
1271
  ### Added
1272
+
137
1273
  * New window management API [Andrey Botalov]
138
1274
  * Speed improvement for visible text detection in RackTest [Thomas Walpole]
139
1275
  Thanks to Phillipe Creux for instigating this
@@ -553,8 +1689,8 @@ Release date: 2011-06-14
553
1689
  * Rack::Test driver honours maxlength on input fields [Guilherme Carvalho]
554
1690
  * Rack::Test now works as expected with domains and subdomains [Jonas Nicklas]
555
1691
  * Session is reset more thoroughly between tests. [Jonas Nicklas]
556
- * Raise error when uploading non-existant file [Jonas Nicklas]
557
- * Rack reponse body should respond to #each [Piotr Sarnacki]
1692
+ * Raise error when uploading non-existent file [Jonas Nicklas]
1693
+ * Rack response body should respond to #each [Piotr Sarnacki]
558
1694
  * Deprecation warnings with selenium webdriver 0.2.0 [Aaron Gibraltar]
559
1695
  * Selenium Chrome no longer YELLS tagname [Carl Jackson & David W. Frank]
560
1696
  * Capybara no longer strips encoding before sending to Rack [Jonas Nicklas]
@@ -696,7 +1832,7 @@ Release date: 2010-05-12
696
1832
 
697
1833
  Release date: 2010-04-09
698
1834
 
699
- This is a drop in compatible maintainance release. It's mostly
1835
+ This is a drop in compatible maintenance release. It's mostly
700
1836
  important for driver authors.
701
1837
 
702
1838
  ### Added
@@ -715,7 +1851,7 @@ important for driver authors.
715
1851
 
716
1852
  Release date: 2010-03-22
717
1853
 
718
- This is a maintainance release with minor bug fixes, should be
1854
+ This is a maintenance release with minor bug fixes, should be
719
1855
  drop in compatible.
720
1856
 
721
1857
  ### Added