capybara 3.32.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (313) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +1 -0
  3. data/History.md +1813 -0
  4. data/License.txt +22 -0
  5. data/README.md +1099 -0
  6. data/lib/capybara.rb +511 -0
  7. data/lib/capybara/config.rb +94 -0
  8. data/lib/capybara/cucumber.rb +27 -0
  9. data/lib/capybara/driver/base.rb +170 -0
  10. data/lib/capybara/driver/node.rb +139 -0
  11. data/lib/capybara/dsl.rb +65 -0
  12. data/lib/capybara/helpers.rb +108 -0
  13. data/lib/capybara/minitest.rb +386 -0
  14. data/lib/capybara/minitest/spec.rb +264 -0
  15. data/lib/capybara/node/actions.rb +420 -0
  16. data/lib/capybara/node/base.rb +143 -0
  17. data/lib/capybara/node/document.rb +48 -0
  18. data/lib/capybara/node/document_matchers.rb +67 -0
  19. data/lib/capybara/node/element.rb +606 -0
  20. data/lib/capybara/node/finders.rb +325 -0
  21. data/lib/capybara/node/matchers.rb +883 -0
  22. data/lib/capybara/node/simple.rb +208 -0
  23. data/lib/capybara/queries/ancestor_query.rb +27 -0
  24. data/lib/capybara/queries/base_query.rb +106 -0
  25. data/lib/capybara/queries/current_path_query.rb +51 -0
  26. data/lib/capybara/queries/match_query.rb +26 -0
  27. data/lib/capybara/queries/selector_query.rb +710 -0
  28. data/lib/capybara/queries/sibling_query.rb +26 -0
  29. data/lib/capybara/queries/style_query.rb +45 -0
  30. data/lib/capybara/queries/text_query.rb +110 -0
  31. data/lib/capybara/queries/title_query.rb +39 -0
  32. data/lib/capybara/rack_test/browser.rb +140 -0
  33. data/lib/capybara/rack_test/css_handlers.rb +13 -0
  34. data/lib/capybara/rack_test/driver.rb +109 -0
  35. data/lib/capybara/rack_test/errors.rb +6 -0
  36. data/lib/capybara/rack_test/form.rb +127 -0
  37. data/lib/capybara/rack_test/node.rb +325 -0
  38. data/lib/capybara/rails.rb +16 -0
  39. data/lib/capybara/registrations/drivers.rb +36 -0
  40. data/lib/capybara/registrations/patches/puma_ssl.rb +27 -0
  41. data/lib/capybara/registrations/servers.rb +44 -0
  42. data/lib/capybara/result.rb +190 -0
  43. data/lib/capybara/rspec.rb +29 -0
  44. data/lib/capybara/rspec/features.rb +23 -0
  45. data/lib/capybara/rspec/matcher_proxies.rb +82 -0
  46. data/lib/capybara/rspec/matchers.rb +201 -0
  47. data/lib/capybara/rspec/matchers/base.rb +111 -0
  48. data/lib/capybara/rspec/matchers/become_closed.rb +33 -0
  49. data/lib/capybara/rspec/matchers/compound.rb +88 -0
  50. data/lib/capybara/rspec/matchers/count_sugar.rb +37 -0
  51. data/lib/capybara/rspec/matchers/have_ancestor.rb +28 -0
  52. data/lib/capybara/rspec/matchers/have_current_path.rb +29 -0
  53. data/lib/capybara/rspec/matchers/have_selector.rb +77 -0
  54. data/lib/capybara/rspec/matchers/have_sibling.rb +27 -0
  55. data/lib/capybara/rspec/matchers/have_text.rb +33 -0
  56. data/lib/capybara/rspec/matchers/have_title.rb +29 -0
  57. data/lib/capybara/rspec/matchers/match_selector.rb +27 -0
  58. data/lib/capybara/rspec/matchers/match_style.rb +38 -0
  59. data/lib/capybara/rspec/matchers/spatial_sugar.rb +39 -0
  60. data/lib/capybara/selector.rb +233 -0
  61. data/lib/capybara/selector/builders/css_builder.rb +84 -0
  62. data/lib/capybara/selector/builders/xpath_builder.rb +69 -0
  63. data/lib/capybara/selector/css.rb +102 -0
  64. data/lib/capybara/selector/definition.rb +276 -0
  65. data/lib/capybara/selector/definition/button.rb +51 -0
  66. data/lib/capybara/selector/definition/checkbox.rb +26 -0
  67. data/lib/capybara/selector/definition/css.rb +10 -0
  68. data/lib/capybara/selector/definition/datalist_input.rb +35 -0
  69. data/lib/capybara/selector/definition/datalist_option.rb +25 -0
  70. data/lib/capybara/selector/definition/element.rb +27 -0
  71. data/lib/capybara/selector/definition/field.rb +40 -0
  72. data/lib/capybara/selector/definition/fieldset.rb +14 -0
  73. data/lib/capybara/selector/definition/file_field.rb +13 -0
  74. data/lib/capybara/selector/definition/fillable_field.rb +33 -0
  75. data/lib/capybara/selector/definition/frame.rb +17 -0
  76. data/lib/capybara/selector/definition/id.rb +6 -0
  77. data/lib/capybara/selector/definition/label.rb +62 -0
  78. data/lib/capybara/selector/definition/link.rb +46 -0
  79. data/lib/capybara/selector/definition/link_or_button.rb +16 -0
  80. data/lib/capybara/selector/definition/option.rb +27 -0
  81. data/lib/capybara/selector/definition/radio_button.rb +27 -0
  82. data/lib/capybara/selector/definition/select.rb +81 -0
  83. data/lib/capybara/selector/definition/table.rb +109 -0
  84. data/lib/capybara/selector/definition/table_row.rb +21 -0
  85. data/lib/capybara/selector/definition/xpath.rb +5 -0
  86. data/lib/capybara/selector/filter.rb +5 -0
  87. data/lib/capybara/selector/filter_set.rb +124 -0
  88. data/lib/capybara/selector/filters/base.rb +77 -0
  89. data/lib/capybara/selector/filters/expression_filter.rb +22 -0
  90. data/lib/capybara/selector/filters/locator_filter.rb +29 -0
  91. data/lib/capybara/selector/filters/node_filter.rb +31 -0
  92. data/lib/capybara/selector/regexp_disassembler.rb +214 -0
  93. data/lib/capybara/selector/selector.rb +147 -0
  94. data/lib/capybara/selector/xpath_extensions.rb +17 -0
  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 +496 -0
  100. data/lib/capybara/selenium/driver_specializations/chrome_driver.rb +119 -0
  101. data/lib/capybara/selenium/driver_specializations/edge_driver.rb +126 -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 +78 -0
  110. data/lib/capybara/selenium/logger_suppressor.rb +34 -0
  111. data/lib/capybara/selenium/node.rb +610 -0
  112. data/lib/capybara/selenium/nodes/chrome_node.rb +119 -0
  113. data/lib/capybara/selenium/nodes/edge_node.rb +104 -0
  114. data/lib/capybara/selenium/nodes/firefox_node.rb +131 -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 +47 -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.rb +126 -0
  124. data/lib/capybara/server/animation_disabler.rb +58 -0
  125. data/lib/capybara/server/checker.rb +44 -0
  126. data/lib/capybara/server/middleware.rb +69 -0
  127. data/lib/capybara/session.rb +942 -0
  128. data/lib/capybara/session/config.rb +124 -0
  129. data/lib/capybara/session/matchers.rb +87 -0
  130. data/lib/capybara/spec/fixtures/another_test_file.txt +1 -0
  131. data/lib/capybara/spec/fixtures/capybara.jpg +3 -0
  132. data/lib/capybara/spec/fixtures/no_extension +1 -0
  133. data/lib/capybara/spec/fixtures/test_file.txt +1 -0
  134. data/lib/capybara/spec/public/jquery-ui.js +13 -0
  135. data/lib/capybara/spec/public/jquery.js +5 -0
  136. data/lib/capybara/spec/public/offset.js +6 -0
  137. data/lib/capybara/spec/public/test.js +268 -0
  138. data/lib/capybara/spec/session/accept_alert_spec.rb +81 -0
  139. data/lib/capybara/spec/session/accept_confirm_spec.rb +32 -0
  140. data/lib/capybara/spec/session/accept_prompt_spec.rb +78 -0
  141. data/lib/capybara/spec/session/all_spec.rb +278 -0
  142. data/lib/capybara/spec/session/ancestor_spec.rb +88 -0
  143. data/lib/capybara/spec/session/assert_all_of_selectors_spec.rb +140 -0
  144. data/lib/capybara/spec/session/assert_current_path_spec.rb +75 -0
  145. data/lib/capybara/spec/session/assert_selector_spec.rb +143 -0
  146. data/lib/capybara/spec/session/assert_style_spec.rb +26 -0
  147. data/lib/capybara/spec/session/assert_text_spec.rb +258 -0
  148. data/lib/capybara/spec/session/assert_title_spec.rb +93 -0
  149. data/lib/capybara/spec/session/attach_file_spec.rb +216 -0
  150. data/lib/capybara/spec/session/body_spec.rb +23 -0
  151. data/lib/capybara/spec/session/check_spec.rb +235 -0
  152. data/lib/capybara/spec/session/choose_spec.rb +121 -0
  153. data/lib/capybara/spec/session/click_button_spec.rb +506 -0
  154. data/lib/capybara/spec/session/click_link_or_button_spec.rb +129 -0
  155. data/lib/capybara/spec/session/click_link_spec.rb +229 -0
  156. data/lib/capybara/spec/session/current_scope_spec.rb +31 -0
  157. data/lib/capybara/spec/session/current_url_spec.rb +115 -0
  158. data/lib/capybara/spec/session/dismiss_confirm_spec.rb +36 -0
  159. data/lib/capybara/spec/session/dismiss_prompt_spec.rb +21 -0
  160. data/lib/capybara/spec/session/element/assert_match_selector_spec.rb +38 -0
  161. data/lib/capybara/spec/session/element/match_css_spec.rb +31 -0
  162. data/lib/capybara/spec/session/element/match_xpath_spec.rb +25 -0
  163. data/lib/capybara/spec/session/element/matches_selector_spec.rb +120 -0
  164. data/lib/capybara/spec/session/evaluate_async_script_spec.rb +23 -0
  165. data/lib/capybara/spec/session/evaluate_script_spec.rb +49 -0
  166. data/lib/capybara/spec/session/execute_script_spec.rb +28 -0
  167. data/lib/capybara/spec/session/fill_in_spec.rb +286 -0
  168. data/lib/capybara/spec/session/find_button_spec.rb +74 -0
  169. data/lib/capybara/spec/session/find_by_id_spec.rb +33 -0
  170. data/lib/capybara/spec/session/find_field_spec.rb +113 -0
  171. data/lib/capybara/spec/session/find_link_spec.rb +70 -0
  172. data/lib/capybara/spec/session/find_spec.rb +531 -0
  173. data/lib/capybara/spec/session/first_spec.rb +156 -0
  174. data/lib/capybara/spec/session/frame/frame_title_spec.rb +23 -0
  175. data/lib/capybara/spec/session/frame/frame_url_spec.rb +23 -0
  176. data/lib/capybara/spec/session/frame/switch_to_frame_spec.rb +116 -0
  177. data/lib/capybara/spec/session/frame/within_frame_spec.rb +112 -0
  178. data/lib/capybara/spec/session/go_back_spec.rb +12 -0
  179. data/lib/capybara/spec/session/go_forward_spec.rb +14 -0
  180. data/lib/capybara/spec/session/has_all_selectors_spec.rb +69 -0
  181. data/lib/capybara/spec/session/has_ancestor_spec.rb +46 -0
  182. data/lib/capybara/spec/session/has_any_selectors_spec.rb +25 -0
  183. data/lib/capybara/spec/session/has_button_spec.rb +69 -0
  184. data/lib/capybara/spec/session/has_css_spec.rb +374 -0
  185. data/lib/capybara/spec/session/has_current_path_spec.rb +138 -0
  186. data/lib/capybara/spec/session/has_field_spec.rb +349 -0
  187. data/lib/capybara/spec/session/has_link_spec.rb +39 -0
  188. data/lib/capybara/spec/session/has_none_selectors_spec.rb +78 -0
  189. data/lib/capybara/spec/session/has_select_spec.rb +310 -0
  190. data/lib/capybara/spec/session/has_selector_spec.rb +202 -0
  191. data/lib/capybara/spec/session/has_sibling_spec.rb +50 -0
  192. data/lib/capybara/spec/session/has_table_spec.rb +198 -0
  193. data/lib/capybara/spec/session/has_text_spec.rb +394 -0
  194. data/lib/capybara/spec/session/has_title_spec.rb +71 -0
  195. data/lib/capybara/spec/session/has_xpath_spec.rb +149 -0
  196. data/lib/capybara/spec/session/headers_spec.rb +8 -0
  197. data/lib/capybara/spec/session/html_spec.rb +47 -0
  198. data/lib/capybara/spec/session/matches_style_spec.rb +35 -0
  199. data/lib/capybara/spec/session/node_spec.rb +1292 -0
  200. data/lib/capybara/spec/session/node_wrapper_spec.rb +39 -0
  201. data/lib/capybara/spec/session/refresh_spec.rb +33 -0
  202. data/lib/capybara/spec/session/reset_session_spec.rb +148 -0
  203. data/lib/capybara/spec/session/response_code_spec.rb +8 -0
  204. data/lib/capybara/spec/session/save_and_open_page_spec.rb +21 -0
  205. data/lib/capybara/spec/session/save_and_open_screenshot_spec.rb +43 -0
  206. data/lib/capybara/spec/session/save_page_spec.rb +110 -0
  207. data/lib/capybara/spec/session/save_screenshot_spec.rb +55 -0
  208. data/lib/capybara/spec/session/screenshot_spec.rb +18 -0
  209. data/lib/capybara/spec/session/scroll_spec.rb +117 -0
  210. data/lib/capybara/spec/session/select_spec.rb +229 -0
  211. data/lib/capybara/spec/session/selectors_spec.rb +98 -0
  212. data/lib/capybara/spec/session/sibling_spec.rb +52 -0
  213. data/lib/capybara/spec/session/source_spec.rb +0 -0
  214. data/lib/capybara/spec/session/text_spec.rb +74 -0
  215. data/lib/capybara/spec/session/title_spec.rb +29 -0
  216. data/lib/capybara/spec/session/uncheck_spec.rb +100 -0
  217. data/lib/capybara/spec/session/unselect_spec.rb +116 -0
  218. data/lib/capybara/spec/session/visit_spec.rb +204 -0
  219. data/lib/capybara/spec/session/window/become_closed_spec.rb +89 -0
  220. data/lib/capybara/spec/session/window/current_window_spec.rb +28 -0
  221. data/lib/capybara/spec/session/window/open_new_window_spec.rb +31 -0
  222. data/lib/capybara/spec/session/window/switch_to_window_spec.rb +132 -0
  223. data/lib/capybara/spec/session/window/window_opened_by_spec.rb +99 -0
  224. data/lib/capybara/spec/session/window/window_spec.rb +203 -0
  225. data/lib/capybara/spec/session/window/windows_spec.rb +34 -0
  226. data/lib/capybara/spec/session/window/within_window_spec.rb +157 -0
  227. data/lib/capybara/spec/session/within_spec.rb +199 -0
  228. data/lib/capybara/spec/spec_helper.rb +134 -0
  229. data/lib/capybara/spec/test_app.rb +226 -0
  230. data/lib/capybara/spec/views/animated.erb +49 -0
  231. data/lib/capybara/spec/views/buttons.erb +5 -0
  232. data/lib/capybara/spec/views/fieldsets.erb +30 -0
  233. data/lib/capybara/spec/views/form.erb +685 -0
  234. data/lib/capybara/spec/views/frame_child.erb +18 -0
  235. data/lib/capybara/spec/views/frame_one.erb +10 -0
  236. data/lib/capybara/spec/views/frame_parent.erb +9 -0
  237. data/lib/capybara/spec/views/frame_two.erb +9 -0
  238. data/lib/capybara/spec/views/header_links.erb +8 -0
  239. data/lib/capybara/spec/views/host_links.erb +13 -0
  240. data/lib/capybara/spec/views/initial_alert.erb +10 -0
  241. data/lib/capybara/spec/views/obscured.erb +47 -0
  242. data/lib/capybara/spec/views/offset.erb +32 -0
  243. data/lib/capybara/spec/views/path.erb +13 -0
  244. data/lib/capybara/spec/views/popup_one.erb +9 -0
  245. data/lib/capybara/spec/views/popup_two.erb +9 -0
  246. data/lib/capybara/spec/views/postback.erb +14 -0
  247. data/lib/capybara/spec/views/react.erb +45 -0
  248. data/lib/capybara/spec/views/scroll.erb +20 -0
  249. data/lib/capybara/spec/views/spatial.erb +31 -0
  250. data/lib/capybara/spec/views/tables.erb +130 -0
  251. data/lib/capybara/spec/views/with_animation.erb +74 -0
  252. data/lib/capybara/spec/views/with_base_tag.erb +11 -0
  253. data/lib/capybara/spec/views/with_count.erb +8 -0
  254. data/lib/capybara/spec/views/with_dragula.erb +22 -0
  255. data/lib/capybara/spec/views/with_fixed_header_footer.erb +17 -0
  256. data/lib/capybara/spec/views/with_hover.erb +24 -0
  257. data/lib/capybara/spec/views/with_hover1.erb +10 -0
  258. data/lib/capybara/spec/views/with_html.erb +208 -0
  259. data/lib/capybara/spec/views/with_html5_svg.erb +20 -0
  260. data/lib/capybara/spec/views/with_html_entities.erb +2 -0
  261. data/lib/capybara/spec/views/with_js.erb +160 -0
  262. data/lib/capybara/spec/views/with_jstree.erb +26 -0
  263. data/lib/capybara/spec/views/with_namespace.erb +20 -0
  264. data/lib/capybara/spec/views/with_scope.erb +42 -0
  265. data/lib/capybara/spec/views/with_scope_other.erb +6 -0
  266. data/lib/capybara/spec/views/with_simple_html.erb +2 -0
  267. data/lib/capybara/spec/views/with_slow_unload.erb +17 -0
  268. data/lib/capybara/spec/views/with_sortable_js.erb +21 -0
  269. data/lib/capybara/spec/views/with_title.erb +5 -0
  270. data/lib/capybara/spec/views/with_unload_alert.erb +14 -0
  271. data/lib/capybara/spec/views/with_windows.erb +54 -0
  272. data/lib/capybara/spec/views/within_frames.erb +15 -0
  273. data/lib/capybara/version.rb +5 -0
  274. data/lib/capybara/window.rb +146 -0
  275. data/spec/basic_node_spec.rb +154 -0
  276. data/spec/capybara_spec.rb +112 -0
  277. data/spec/css_builder_spec.rb +101 -0
  278. data/spec/css_splitter_spec.rb +38 -0
  279. data/spec/dsl_spec.rb +276 -0
  280. data/spec/filter_set_spec.rb +46 -0
  281. data/spec/fixtures/capybara.csv +1 -0
  282. data/spec/fixtures/certificate.pem +25 -0
  283. data/spec/fixtures/key.pem +27 -0
  284. data/spec/fixtures/selenium_driver_rspec_failure.rb +13 -0
  285. data/spec/fixtures/selenium_driver_rspec_success.rb +13 -0
  286. data/spec/minitest_spec.rb +163 -0
  287. data/spec/minitest_spec_spec.rb +162 -0
  288. data/spec/per_session_config_spec.rb +68 -0
  289. data/spec/rack_test_spec.rb +268 -0
  290. data/spec/regexp_dissassembler_spec.rb +250 -0
  291. data/spec/result_spec.rb +196 -0
  292. data/spec/rspec/features_spec.rb +99 -0
  293. data/spec/rspec/scenarios_spec.rb +19 -0
  294. data/spec/rspec/shared_spec_matchers.rb +947 -0
  295. data/spec/rspec/views_spec.rb +14 -0
  296. data/spec/rspec_matchers_spec.rb +62 -0
  297. data/spec/rspec_spec.rb +145 -0
  298. data/spec/sauce_spec_chrome.rb +43 -0
  299. data/spec/selector_spec.rb +513 -0
  300. data/spec/selenium_spec_chrome.rb +188 -0
  301. data/spec/selenium_spec_chrome_remote.rb +96 -0
  302. data/spec/selenium_spec_edge.rb +47 -0
  303. data/spec/selenium_spec_firefox.rb +208 -0
  304. data/spec/selenium_spec_firefox_remote.rb +80 -0
  305. data/spec/selenium_spec_ie.rb +150 -0
  306. data/spec/selenium_spec_safari.rb +148 -0
  307. data/spec/server_spec.rb +292 -0
  308. data/spec/session_spec.rb +91 -0
  309. data/spec/shared_selenium_node.rb +83 -0
  310. data/spec/shared_selenium_session.rb +476 -0
  311. data/spec/spec_helper.rb +100 -0
  312. data/spec/xpath_builder_spec.rb +93 -0
  313. metadata +753 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 410e79ae955fb505f242247fae85f0b738307e685c2e62cc7a4fda936f5be86a
4
+ data.tar.gz: d815d9d84f898e72aa08003e3370c673e169e08a794df6804459c18a65d7d367
5
+ SHA512:
6
+ metadata.gz: 60471fefa8d5bc99eddaa19afcd35ff8b382f7fbede21ffac5d402b89ca54d89b9252ebffde8eb0565d820d3d1d0136d943912dd9da18f9366e3b75660870e4e
7
+ data.tar.gz: 3fb1b539d4a128e6e2ba3f7fcd5e9daff0f64c60691eef1a2c69c166668c3ad28fbd3bbd5414162e73f86fc51e608f18065075b0956f5ea923c572d32d585052
@@ -0,0 +1 @@
1
+ --markup markdown
@@ -0,0 +1,1813 @@
1
+ # Version 3.32.2
2
+ Release date: 2020-05-16
3
+
4
+ ### Fixed
5
+
6
+ * Don't use lazy enumerator with JRuby due to leaking threads
7
+ * Ruby 2,7 deprecation warning when registering Webrick [Jon Zeppieri]
8
+ * `have_text` description [Juan Pablo Rinaldi]
9
+
10
+ # Version 3.32.1
11
+ Release date: 2020-04-05
12
+
13
+ ### Fixed
14
+
15
+ * Rapid set now respects field maxlength (Issue #2332)
16
+ * Only patch pause into legacy actions in Selenium < 4 (Issue #2334)
17
+
18
+ # Version 3.32.0
19
+ Release date: 2020-03-29
20
+
21
+ ### Added
22
+
23
+ * Support `delay` setting on click with Selenium
24
+ * Implement rapid set for values longer thn 30 characters in text fields with Selenium
25
+
26
+ ### Fixed
27
+
28
+ * Result#[] and negative max on ranges (Issue #2302/2303) [Jeremy Evans]
29
+ * RackTest form submission rewrites query string when using GET method
30
+ * Ruby 2.7 deprecation warnings in RSpec matcher proxies
31
+
32
+ # Version 3.31.0
33
+ Release date: 2020-01-26
34
+
35
+ ### Added
36
+
37
+ * Support setting range inputs with the selenium driver [Andrew White]
38
+ * Support setting range inputs with the rack driver
39
+ * Support drop modifier keys in drag & drop [Elliot Crosby-McCullough]
40
+ * `enabled_options` and `disabled options` filters for select selector
41
+ * Support beginless ranges
42
+ * Optionally allow `all` results to be reloaded when stable - Beta feature - may be removed in
43
+ future version if problems occur
44
+
45
+ ### Fixed
46
+
47
+ * Fix Ruby 2.7 deprecation notices around keyword arguments. I have tried to do this without
48
+ any breaking changes, but due to the nature of the 2.7 changes and some selector types accepting
49
+ Hashes as locators there are a lot of edge cases. If you find any broken cases please report
50
+ them and I'll see if they're fixable.
51
+ * Clicking on details/summary element behavior in rack_test driver_
52
+
53
+ # Version 3.30.0
54
+ Release date: 2019-12-24
55
+
56
+ ### Added
57
+
58
+ * Display pending requests when they don't complete in time [Juan Carlos Medina]
59
+ * :order option in selector queries - set to :reverse to for reverse document order results
60
+ * Support regexp for :name and :placeholder options in selectors that import filters from
61
+ _field filter set
62
+
63
+ ### Fixed
64
+
65
+ * Issue around automatic port assignment - Issue #2245
66
+ * Label selector when label has no id - Issue #2260
67
+ * Preserve clientX/clientY in Selenium HTML5 drag emulation [Nicolò G.]
68
+ * table selector using :with_cols option if last specified column matched but others didn't - Issue #2287
69
+ * Some tests updated for Ruby 2.7 behavior change around keyword args
70
+
71
+ # Version 3.29.0
72
+ Release date: 2019-09-02
73
+
74
+ ### Added
75
+
76
+ * Allow clicking on file input when using the block version of `attach_file` with Chrome and Firefox
77
+ * Spatial filters (`left_of`, `right_of`, `above`, `below`, `near`)
78
+ * rack_test driver now supports clicking on details elements to open/close them
79
+
80
+ ### Fixed
81
+
82
+ * rack_test driver correctly determines visibility for open details elements descendants
83
+
84
+ ### Changed
85
+
86
+ * Results will now be lazily evaluated when using JRuby >= 9.2.8.0
87
+
88
+
89
+ # Version 3.28.0
90
+ Release date: 2019-08-03
91
+
92
+ ### Added
93
+
94
+ * Allow forcing HTML5 or legacy dragging via the `:html5` option to `drag_to` when using Selenium with Chrome or Firefox
95
+ * Autodetection of drag type interprets not seeing the mousedown event as legacy.
96
+ * HTML5 form validation `:valid` node filter added to `:field` and `:fillable_field` selectors
97
+ * When using Capybara registered :puma server - patches Puma 4.0.x to fix SSL connection behavior. Removes
98
+ default `queue_requests` setting - Issue #2227
99
+
100
+ # Version 3.27.0
101
+ Release date: 2019-07-28
102
+
103
+ ### Added
104
+
105
+ * Allow to use chromedriver/geckodriver native `is_element_displayed` endpoint via Selenium
106
+ driver `native_displayed` option for performance reasons. Disabled by default due to endpoints
107
+ currently not handling &lt;details> element descendants visibility correctly.
108
+
109
+ ### Fixed
110
+
111
+ * Ignore negative lookahead/lookbehind regex when performing initial XPath text matching
112
+ * Reloading of elements found via `ancestor` and `sibling`
113
+ * Only default puma settings to `queue_requests: false` when using SSL
114
+ * Visibility of descendants of &lt;details> elements is correctly determined when using rack_test
115
+ and the selenium driver with Capybara optimized atoms
116
+ * local/session storage clearance in Chrome when clearing only one of them - Issue #2233
117
+
118
+ # Version 3.26.0
119
+ Release date: 2019-07-15
120
+
121
+ ### Added
122
+
123
+ * `w3c_click_offset` configuration option applies to `right_click` and `double_click` as well as `click`
124
+ * Warning when passing `nil` to the text/content assertions/expectations
125
+ * `Session#server_url` returns the base url the AUT is being run at (when controlled by Capybara)
126
+ * `option` selector type accepts an integer as locator
127
+
128
+ ### Fixed
129
+
130
+ * Default puma server registration now specifies `queue_requests: false` - Issue #2227
131
+ * Workaround issue with FF 68 and hanging during reset if a system modal is visible
132
+ * Don't expand file path if it's already absolute - Issue #2228
133
+
134
+ # Version 3.25.0
135
+ Release date: 2019-06-27
136
+
137
+ ### Added
138
+
139
+ * Animation disabler also disables before and after pseudoelements - Issue #2221 [Daniel Heath]
140
+ * `w3c_click_offset` configuration option to determine whether click offsets are calculated from element
141
+ center or top left corner
142
+
143
+ ### Fixed
144
+
145
+ * Woraround issue with chromedriver 76/77 in W3C mode losing mouse state during legacy drag. Only fixed if
146
+ both source and target are simultaenously inside the viewport - Issue #2223
147
+ * Negative ancestor expectations/predicates were incorrectly checking siblings rather than ancestors
148
+
149
+ # Version 3.24.0
150
+ Release date: 2019-06-13
151
+
152
+ ### Added
153
+
154
+ * Log access when using the Selenium driver with Chrome 75 in W3C mode has been reenabled.
155
+
156
+ ### Changed
157
+
158
+ * Selenium driver now selects all current content and then sends keys rather than clearing field by JS
159
+ and then sending keys when setting values to text inputs in order to more closely simulate user behavior
160
+
161
+ ### Fixed
162
+
163
+ * Relative paths passed to `attach_file` will be assumed to be relative to the current working directory when using the
164
+ Selenium driver
165
+
166
+ # Version 3.23.0
167
+ Release date: 2019-06-10
168
+
169
+ ### Added
170
+
171
+ * Improved error message when using Chrome in W3C mode and attempting to access logs
172
+ * Support driver specific options for Element#drag_to
173
+ * Support setting `<input type="color">` elements with the selenium driver
174
+
175
+ ### Fixed
176
+
177
+ * Tightened conditions when in expression text option matching will be used
178
+ * Improved Selenium drivers HTML5 drag and drop emulation compatibility with SortableJS library (and others)
179
+
180
+ # Version 3.22.0
181
+ Release date: 2019-05-29
182
+
183
+ ### Added
184
+
185
+ * `ancestor`/`sibling` assertions and matchers added
186
+ * Documentation Updates and Fixes - Many thanks again to Masafumi Koba! [Masafumi Koba]
187
+ * Added `:with` alias for `:option` filter on `:checkbox` and `:radio_button` selectors
188
+
189
+ ### Changed
190
+
191
+ * Selenium driver with Chrome >= 73 now resets cookies and local/session storage after navigating
192
+ to 'about:blank' when possible to minimize potential race condition
193
+
194
+ # Version 3.21.0
195
+ Release date: 2019-05-24
196
+
197
+ ### Added
198
+
199
+ * Element#drop - Chrome and Firefox, via the selenium driver, support dropping files/data on elements
200
+ * Default CSS used for `attach_file` `make_visible: true` now includes auto for
201
+ height and width to handle more ways of hiding the file input element
202
+ * Documentation Updates and Fixes - Many thanks to Masafumi Koba! [Masafumi Koba]
203
+
204
+ ### Changed
205
+
206
+ * Deprecate support for CSS locator being a Symbol
207
+
208
+ # Version 3.20.2
209
+ Release date: 2019-05-19
210
+
211
+ ### Fixed
212
+
213
+ * Move `uglifier` from runtime to development dependency [miyucy]
214
+
215
+ # Version 3.20.1
216
+ Release date: 2019-05-17
217
+
218
+ ### Fixed
219
+
220
+ * RackTest driver considers &lt;template> elements to be non-visible and ignores the contents
221
+
222
+ # Version 3.20.0
223
+ Release date: 2019-05-14
224
+
225
+ ### Added
226
+
227
+ * `Node#obscured?` to check viewport presence and element overlap
228
+ * `:obscured` system filter to check whether elements are obscured in finders, assertions, and expectations
229
+ * :label selector :for option can be a regexp
230
+ * Significantly smaller `isDisplayed`/`getAttribute` atoms for selenium driver. If these produce issues you can disable their use
231
+ by setting an environment variable named 'DISABLE_CAPYBARA_SELENIUM_OPTIMIZATIONS' (Please also report any issues).
232
+ * `href: false` option with `find_link`/`click_link`/:link selector ignores `href` presence/absence
233
+
234
+ ### Fixed
235
+
236
+ * Workaround Safari issue with send_keys not correctly using top level modifiers
237
+ * Workaround Safari not retrying click due to incorrect error type
238
+ * Fix Safari attach_file block mode when clicking elements associated to the file input
239
+ * Workaround Safari issue with repeated hover
240
+
241
+ # Version 3.19.1
242
+ Release date: 2019-05-11
243
+
244
+ ### Fixed
245
+
246
+ * Fix access to specializations when Selenium::Driver is subclassed [James Mead]
247
+
248
+ # Version 3.19.0
249
+ Release date: 2019-05-09
250
+
251
+ ### Added
252
+
253
+
254
+ * Syntactic sugar `#once`, `#twice`, `#thrice`, `#exactly`, `#at_least`, `#at_most`, and `#times`
255
+ added to `have_selector`, `have_css`, `have_xpath`, and `have_text` RSpec matchers
256
+ * Support for multiple expression types in Selector definitions
257
+ * Reduced wirecalls for common actions in Selenium driver
258
+
259
+ ### Fixed
260
+
261
+ * Workaround Chrome 75 appending files to multiple file inputs
262
+ * Suppressed retry when detecting http vs https server connection
263
+
264
+ # Version 3.18.0
265
+ Release date: 2019-04-22
266
+
267
+ ### Added
268
+
269
+ * XPath Selector query optimized to make use of Regexp :text option in initial element find
270
+
271
+ ### Fixed
272
+
273
+ * Workaround issue where Chrome/chromedriver 74 can return the wrong error type when a click is intercepted
274
+
275
+ # Version 3.17.0
276
+ Release date: 2019-04-18
277
+
278
+ ### Added
279
+
280
+ * Initial support for selenium-webdriver 4.0.0.alpha1
281
+ * :button selector will now also match on `name` attribute
282
+
283
+ ### Fixed
284
+
285
+ * Suppress warnings generated by using selenium-webdriver 3.141.5926
286
+ * Mask Appium issue with finder visibility optimizations (non-optimal)
287
+
288
+ # Version 3.16.2
289
+ Release date: 2019-04-10
290
+
291
+ ### Fixed
292
+
293
+ * Fix Session#quit resetting of memoized document
294
+
295
+ # Version 3.16.1
296
+ Release date: 2019-03-30
297
+
298
+ ### Fixed
299
+
300
+ * Fix potential 'uninitialized constant' error when using the :selenium_chrome driver [jeffclemens-ab]
301
+
302
+ # Version 3.16
303
+ Release date: 2019-03-28
304
+
305
+ ### Changed
306
+
307
+ * Ruby 2.4.0+ is now required
308
+ * Selenium driver now defaults to using a persistent http client connection
309
+
310
+ ### Added
311
+
312
+ * :wait option in predicates now accepts `true` to selectively override when `Capybara.predicates_wait == false`
313
+
314
+ # Version 3.15
315
+ Release date: 2019-03-19
316
+
317
+ ### Added
318
+
319
+ * `attach_file` now supports a block mode on JS capable drivers to more accurately test user behavior when file inputs are hidden (beta)
320
+ * :table selector now supports `with_rows`, 'rows', `with_cols`, and 'cols' filters
321
+
322
+ ### Fixed
323
+
324
+ * Fix link selector when `Capybara.test_id` is set - Issue #2166 [bingjyang]
325
+
326
+
327
+ # Version 3.14
328
+ Release date: 2019-02-25
329
+
330
+ ### Added
331
+
332
+ * rack_test driver now supports reloading elements when the document changes - Issue #2157
333
+ * Selenium driver HTML5 drag-drop emulation now emits multiple move events so drag direction
334
+ is determinable [Erkki Eilonen, Thomas Walpole]
335
+ * Capybara.server_errors now defaults to [Exception] - Issue #2160 [Edgars Beigarts]
336
+ ### Fixed
337
+
338
+ * Workaround hover issue with FF 65 - Issue #2156
339
+ * Workaround chromedriver issue when setting blank strings to react controlled text fields
340
+ * 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
341
+
342
+ # Version 3.13.2
343
+ Release date: 2019-01-24
344
+
345
+ ### Fixed
346
+
347
+ * Remove extraneous output
348
+
349
+ # Version 3.13.1
350
+ Release date: 2019-01-24
351
+
352
+ ### Fixed
353
+
354
+ * Only use Selenium visibility optimization when JS atom is available - Issue #2151
355
+
356
+ # Version 3.13.0
357
+ Release date: 2019-01-23
358
+
359
+ ### Added
360
+
361
+ * Session#quit added
362
+ * #scroll_to added to allow scrolling page/elements to specified locations
363
+ * Speed optimizations around multiple element location and path generation when using the Selenium driver
364
+ * Support for locator type checking in custom selectors
365
+ * Allow configuration of gumbo use - defaults to off
366
+ * `assert_style`/`has_style`/`have_style` deprecated in favor of `assert_matches_style`/`matches_styles?`/`match_style`
367
+ * :style filter added to selectors
368
+
369
+ # Version 3.12.0
370
+ Release date: 2018-11-28
371
+
372
+ ### Added
373
+
374
+ * Support Ruby 2.6 endless range in Result#[] and query `:between` option
375
+ * Pre-registered headless firefox driver :selenium_headless [Andrew Havens]
376
+ * 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
377
+
378
+ ### Fixed
379
+
380
+ * Raise error if only :x or :y are passed as an offset to click methods
381
+
382
+ ### Removed
383
+
384
+ * Support for RSpec < 3.5
385
+
386
+ # Version 3.11.1
387
+ Release date: 2018-11-16
388
+
389
+ ### Fixed
390
+
391
+ * Fixed :link_or_button XPath generation when it has had an expression filter added
392
+
393
+ # Version 3.11.0
394
+ Release date: 2018-11-14
395
+
396
+ ### Added
397
+
398
+ * Ability for node filters to set detailed error messages
399
+ * `Capybara::HTML` Will use `nokogumbo` for HTML parsing if installed
400
+ * `Selector#locator_filter` added to allow for dynamic locator in selectors
401
+
402
+ ### Fixed
403
+
404
+ * Node filters are evaluated in the context of the Selector they are used in to ensure the correct options are used
405
+
406
+ # Version 3.10.1
407
+ Release date: 2018-11-03
408
+
409
+ ### Fixed
410
+
411
+ * Fix `aria-label` and `test_id` matching for `link_or_button` selector type - Issue #2125
412
+ * Fixed crash in element path creation for matcher failure messages - Issue #2120
413
+
414
+ # Version 3.10.0
415
+ Release date: 2018-10-23
416
+
417
+ ### Added
418
+
419
+ * :class filter can now check for class names starting with !
420
+ * Selector `xpath`/`css` expression definitions will get filter names from block parameters if not explicitly provided
421
+ * `any_of_selectors` assertions and matchers to complement `all_of_selectors` and `none_of_selectors`
422
+
423
+ ### Fixed
424
+
425
+ * Selector `css` expression definiton declared filters now work again
426
+ * Cleaned up warnings [Yuji Yaginuma]
427
+ * 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
428
+
429
+ # Version 3.9.0
430
+ Release date: 2018-10-03
431
+
432
+ ### Added
433
+
434
+ * Selenium with Chrome removes all cookies at session reset instead of just cookies from current domain if possible
435
+ * Support for Regexp for system :id and :class filters where possible
436
+ * `using_session` now accepts a session object as well as the name of the session for users who manually manage sessions
437
+ * The `:field` selector will now find `type = "hidden"` fields if the `type: "hidden"` filter option is provided
438
+
439
+ # Version 3.8.2
440
+ Release date: 2018-09-26
441
+
442
+ ### Fixed
443
+
444
+ * Fixed negated class selector option - Issue #2103
445
+
446
+ # Version 3.8.1
447
+ Release date: 2018-09-22
448
+
449
+ ### Fixed
450
+
451
+ * Filling in of date fields with a string when using selenium chrome regression [Micah Geisel]
452
+
453
+ # Version 3.8.0
454
+ Release date: 2018-09-20
455
+
456
+ ### Added
457
+
458
+ * Workaround geckodriver 0.22 issue with undefined pause durations
459
+ * :element selector ignores XML namespaces
460
+
461
+ ### Fixed
462
+
463
+ * Added Errno::ECONNRESET to the errors which will allows https server detection
464
+
465
+ # Version 3.7.2
466
+ Release date: 2018-09-12
467
+
468
+ ### Fixed
469
+
470
+ * Fix MatchQuery based matchers when used on a root element found using any type of parent/ancestor query - Issue #2097
471
+
472
+ * Fix Chrome/FF HTML5 drag simulation for elements (a, img) which default to draggable - Issue #2098
473
+
474
+ # Version 3.7.1
475
+ Release date: 2018-09-05
476
+
477
+ ### Fixed
478
+
479
+ * Restored ability to pass symbol as the CSS selector when calling `has_css?`/`have_css`/etc - Issue #2093
480
+
481
+ # Version 3.7.0
482
+ Release date: 2018-09-02
483
+
484
+ ### Added
485
+
486
+ * `Capybara.disable_animation` can be set to a CSS selector to identify which elements will have animation disabled [Michael Glass]
487
+ * `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]
488
+ * 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.
489
+ * 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.
490
+
491
+ ### Fixed
492
+
493
+ * 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.
494
+ * Firefox file inputs are only manually cleared when necessary.
495
+
496
+ # Version 3.6.0
497
+ Release date: 2018-08-14
498
+
499
+ ### Added
500
+
501
+ * Workaround geckodriver/firefox send_keys issues as much as possible using the Selenium actions API
502
+ * Workaround lack of HTML5 native drag and drop events when using Selenium driver with Chrome and FF >= 62
503
+ * `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)
504
+
505
+ # Version 3.5.1
506
+ Release date: 2018-08-03
507
+
508
+ ### Fixed
509
+
510
+ * Fixed misspelled method name `refute_matches_elector` => `refute_matches_selector`
511
+
512
+ # Version 3.5.0
513
+ Release date: 2018-08-01
514
+
515
+ ### Added
516
+
517
+ * text predicates and matchers (`has_text?`, `has_content?`, `assert_text`, etc) now support a `normalize_ws` option
518
+
519
+ ### Fixed
520
+
521
+ * `attach_file` with Selenium and local Firefox 62+ now correctly generates only one change event when attaching multiple files
522
+
523
+ # Version 3.4.2
524
+ Release date: 2018-07-24
525
+
526
+ ### Fixed
527
+
528
+ * `match_xxx` selectors and `matches_xxx?` predicates work correctly with elements found using a sibling selector - Issue #2073
529
+
530
+ # Version 3.4.1
531
+ Release date: 2018-07-20
532
+
533
+ ### Fixed
534
+
535
+ * `Session#evaluate_script` now strips the script in `Session` rather than only in the Selenium driver
536
+
537
+ # Version 3.4.0
538
+ Release date: 2018-07-19
539
+
540
+ ### Fixed
541
+
542
+ * Make selenium driver :backspace clear stategy work even if caret location is in middle of field content [Champier Cyril]
543
+ * Selenium issue with fieldset nested in disabled fieldset not being considered disabled
544
+ * `Session#evaluate_script` and `Element#evaluate_script` now strip leading/trailing whitespace from scripts [Ian Lesperance]
545
+
546
+ ### Added
547
+
548
+ * Work around Selenium lack of support for `file_detector` with remote geckodriver
549
+ * `#within_frame` locator is optional when only one frame exists
550
+ * `Capybara.test_id` option that allows for matching the Capybara provided selector types on an arbitrary attribute
551
+ (defaults to nil), set to your test id attribute ('data-test-id, etc) if using test id attributes in your project
552
+
553
+ # Version 3.3.1
554
+ Release date: 2018-06-27
555
+
556
+ ### Fixed
557
+
558
+ * `selenium-webdriver` version check [ahorek]
559
+ * Selenium driver correctly responds to `disabled?` for fieldset elements - Issue #2059 [Thomas Walpole]
560
+
561
+ # Version 3.3.0
562
+ Release date: 2018-06-25
563
+
564
+ ### Added
565
+
566
+ * RackTest driver now handles 307/308 redirects
567
+ * `execute_async_script` can now be called on elements to run the JS in the context of the element
568
+ * `:download` filter option on `:link' selector
569
+ * `Window#fullscreen`
570
+ * `Element#style` and associated matchers
571
+
572
+ ### Changed
573
+
574
+ * Minimum "supported" `selenium-webdriver` is raised to 3.5.0 (but you really should be using newer than that)
575
+
576
+ ### Fixes
577
+
578
+ * Selenium driver with Firefox workaround for clicking on table row - https://github.com/mozilla/geckodriver/issues/1228
579
+ * :class and :id filters applied to CSS based selectors now correctly handle the CSS comma
580
+ * Selenium driver handles namespaces when generating an elements `#path` - Issue #2048
581
+
582
+ # Version 3.2.1
583
+ Release date: 2018-06-04
584
+
585
+ ### Fixes
586
+
587
+ * Only split CSS selectors when :class or :id options are given. Restores 3.1.1 functionality for now but the underlying issue
588
+ will require a larger fix, hopefully coming soon. - Issue #2044 [Thomas Walpole]
589
+
590
+ # Version 3.2.0
591
+ Release date: 2018-06-01
592
+
593
+ ### Changed
594
+
595
+ * Ruby 2.3.0+ is now required
596
+ * `ElementNotFound` errors raised in selector filters are interpreted as non-matches
597
+
598
+ ### Added
599
+
600
+ * New global configuration `default_set_options` used in `Capybara::Node::Element#set` as default `options` hash [Champier Cyril]
601
+ * `execute_script` and `evaluate_script` can now be called on elements to run the JS in the context of the element [Thomas Walpole]
602
+ * Filters in custom selectors now support a `matcher` Regexp to handle multiple filter options [Thomas Walpole]
603
+ * `:element` selector type which will match on any attribute (other than the reserved names) passed as a filter option [Thomas Walpole]
604
+ * `:class` filter option now supports preceding class names with `!` to indicate not having that class [Thomas Walpole]
605
+ * `:class` and `:id` filter options now accept `XPath::Expression` objects to allow for more flexibility in matching [Thomas Walpole]
606
+ * `Capybara.disable_animation` setting which triggers loading of a middleware that attempts to disable animations in pages.
607
+ This is very much a beta feature and may change/disappear in the future. [Thomas Walpole]
608
+
609
+ # Version 3.1.1
610
+ Release date: 2018-05-25
611
+
612
+ ### Fixes
613
+
614
+ * Ensure keystrokes are sent when setting time/date fields to a string with the Selenium driver [Thomas Walpole]
615
+
616
+ # Version 3.1.0
617
+ Release date: 2018-05-10
618
+
619
+ ### Added
620
+
621
+ * Support for using `select` with text inputs associated with a datalist element
622
+ * `type` filter on `:button` selector
623
+ * Support for server operating in https mode
624
+ * Selenium driver now uses JS to fill_in/set date and time fields when passed date or time objects [Aleksei Gusev, Thomas Walpole]
625
+
626
+ # Version 3.0.3
627
+ Release date: 2018-04-30
628
+
629
+ ### Fixes
630
+
631
+ * Issue in `check` where the locator string could not be omitted
632
+ * Selenium browser type detection when using remote [Ian Ker-Seymer]
633
+ * Potential hang when waiting for requests to complete [Chris Zetter]
634
+
635
+ # Version 3.0.2
636
+ Release date: 2018-04-13
637
+
638
+ ### Fixes
639
+
640
+ * Fix expression filter descriptions in some selector failure messages
641
+ * Fix compounding of negated matechers - Issue #2010
642
+
643
+ # Version 3.0.1
644
+ Release date: 2018-04-06
645
+
646
+ ### Changed
647
+
648
+ * Restored ability for `Capybara.server=` to accept a proc which was accidentally removed in 3.0.0
649
+
650
+ # Version 3.0.0
651
+ Release date: 2018-04-05
652
+
653
+ ### Changed
654
+
655
+ * Selenium driver only closes extra windows for browsers where that is known to work (Firefox, Chrome)
656
+ * "threadsafe" mode is no longer considered beta
657
+
658
+ ### Fixes
659
+
660
+ * Multiple file attach_file with Firefox
661
+ * Use Puma::Server directly rather than Rack::Handler::Puma so signal handlers don't prevent test quitting
662
+
663
+ # Version 3.0.0.rc2
664
+ Release date: 2018-03-23
665
+
666
+ ### Changed
667
+
668
+ * Visibile text whitespace is no longer fully normalized in favor of being more in line with the WebDriver spec for visible text
669
+ * Drivers are expected to close extra windows when resetting the session
670
+ * Selenium driver supports Date/Time when filling in date/time/datetime-local inputs
671
+ * `current_url` returns the url for the top level browsing context
672
+ * `title` returns the title for the top level browsing context
673
+
674
+ ### Added
675
+
676
+ * `Driver#frame_url` returns the url for the current frame
677
+ * `Driver#frame_title` returns the title for the current frame
678
+
679
+ # Version 3.0.0.rc1
680
+ Release date: 2018-03-02
681
+
682
+ ### Added
683
+ * Support for libraries wrapping Capybara elements and providing a `#to_capybara_node` method
684
+
685
+ ### Changed
686
+
687
+ * `first` now raises ElementNotFound, by default, instead of returning nil when no matches are found - Issue #1507
688
+ * 'all' now waits for at least one matching element by default. Pass `wait: false` if you want the previous
689
+ behavior where an empty result would be returned immediately if no matching elements exist yet.
690
+ * ArgumentError raised if extra parameters passed to selector queries
691
+
692
+ ### Removed
693
+
694
+ * Ruby < 2.2.2 support
695
+ * `Capybara.exact_options` no longer exists. Just use `exact: true` on relevant actions/finders if necessary.
696
+ * All previously deprecated methods removed
697
+ * RSpec 2.x support
698
+ * selenium-webdriver 2.x support
699
+ * Nokogiri < 1.8 support
700
+ * `field_labeled` alias for `find_field`
701
+
702
+ # Version 2.18.0
703
+ Release date: 2018-02-12
704
+
705
+ ### Fixed
706
+
707
+ * Firefox/geckodriver setting of contenteditable childs contents
708
+ * Ignore Selenium::WebDriver::Error::SessionNotCreatedError when quitting driver [Tim Connor]
709
+
710
+ ### Removed
711
+
712
+ * Headless chrome modal JS injection that is no longer needed for Chrome 64+/chromedriver 2.35+
713
+
714
+
715
+ # Version 2.17.0
716
+ Release date: 2018-01-02
717
+
718
+ ### Added
719
+
720
+ * `have_all_of_selectors`, `have_none_of_selectors` RSpec matchers for parity with minitest assertions [Thomas Walpole]
721
+
722
+ ### Fixed
723
+
724
+ * Allow xpath 3.x gem [Thomas Walpole]
725
+ * Issue when drivers returned nil for `current_path` and a matcher was used with a Regexp [Thomas Walpole]
726
+ * Error message when visible element not found, but non-visible was [Andy Klimczak]
727
+
728
+ # Version 2.16.1
729
+ Release date: 2017-11-20
730
+
731
+ ### Fixed
732
+
733
+ * Fix rack_test driver for rack_test 0.7.1/0.8.0 [Thomas Walpole]
734
+ * `accept_prompt` response text can contain quotes when using selenium with headless chrome [Thomas Walpole]
735
+
736
+ # Version 2.16.0
737
+ Release date: 2017-11-13
738
+
739
+ ### Added
740
+
741
+ * Attempt to move element into view when selenium doesn't correctly do it - See PR #1917 [Thomas Walpole]
742
+ * `current_path` matchers will now autodetect path vs url based on string to be matched. Deprecates
743
+ `:only_path` in favor of `:ignore_query` option [Thomas Walpole]
744
+ * Session#evaluate_async_script [Thomas Walpole]
745
+
746
+ ### Fixed
747
+
748
+ * Default prompt value when using headless Chrome works correctly [Thomas Walpole]
749
+ * Support new modal error returned by selenium-webdriver 3.7 for W3C drivers [Thomas Walpole]
750
+ * Calling `respond_to?` on the object passed to `Capybara.configure` block - Issue #1935
751
+
752
+ # Version 2.15.4
753
+ Release date: 2017-10-07
754
+
755
+ ### Fixed
756
+ * Visiting an absolute URL shouldn't overwrite the port when no server or always_include_port=false - Issue #1921
757
+
758
+ # Version 2.15.3
759
+ Release date: 2017-10-03
760
+
761
+ ### Fixed
762
+ * Visiting '/' when Capybara.app_host has a trailing '/' - Issue #1918 [Thomas Walpole]
763
+
764
+ # Version 2.15.2
765
+ Release date: 2017-10-02
766
+
767
+ ### Fixed
768
+
769
+ * Include within scope description in element not found/ambiguous errors [Thomas Walpole]
770
+ * Raise error when no activation block is passed to modal methods if using headless chrome [Thomas Walpole]
771
+ * Don't retry element access when inspecting [Ivan Neverov]
772
+ * Don't override a specified port (even if it is default port) in visited url [Thomas Walpole]
773
+
774
+ # Version 2.15.1
775
+
776
+ Release date: 2017-08-04
777
+
778
+ ### Fixed
779
+
780
+ * `attach_file` with no extension/MIME type when using the `:rack_test` driver [Thomas Walpole]
781
+
782
+ # Version 2.15.0
783
+
784
+ Release date: 2017-08-04
785
+
786
+ ### Added
787
+
788
+ * `sibling` and `ancestor` finders added [Thomas Walpole]
789
+ * Added ability to pass options to registered servers when setting
790
+ * Added basic built-in driver registrations `:selenium_chrome` and `:selenium_chrome_headless` [Thomas Walpole]
791
+ * Add `and_then` to Capybara RSpec matchers which behaves like the previous `and` compounder. [Thomas Walpole]
792
+ * Compound RSpec expectations with Capybara matchers now run both matchers inside a retry loop rather
793
+ than waiting for one to pass/fail before checking the second. Will make `#or` more performant and confirm
794
+ both conditions are true "simultaneously" for `and`. [Thomas Walpole]
795
+ If you still want the
796
+ * Default filter values are now included in error descriptions [Thomas Walpole]
797
+ * Add `Session#refresh` [Thomas Walpole]
798
+ * Loosened restrictions on where `Session#within_window` can be called from [Thomas Walpole]
799
+ * Switched from `mime-types` dependency to `mini_mime` [Jason Frey]
800
+
801
+ # Version 2.14.4
802
+
803
+ Release date: 2017-06-27
804
+
805
+ ### Fixed
806
+
807
+ * Fix retrieval of session_options for HaveSelector matcher descriptions - Issue #1883
808
+
809
+ # Version 2.14.3
810
+
811
+ Release date: 2017-06-15
812
+
813
+ ### Fixed
814
+
815
+ * Minitest assertions now raise the correct error type - Issue #1879 [Thomas Walpole]
816
+ * Improve flexibility of detecting Chrome headless mode [Thomas Walpole]
817
+
818
+ # Version 2.14.2
819
+
820
+ Release date: 2017-06-09
821
+
822
+ ### Fixed
823
+
824
+ * Workaround for system modals when using headless Chrome now works if the page changes
825
+
826
+ # Version 2.14.1
827
+
828
+ Release date: 2017-06-07
829
+
830
+ ### Fixed
831
+
832
+ * Catch correct error when unexpected system modals are discovered in latest selenium [Thomas Walpole]
833
+ * Update default `puma` server registration to encourage it to run in single mode [Thomas Walpole]
834
+ * Suppress invalid element errors raised while lazily evaluating the results of `all` [Thomas Walpole]
835
+ * Added missing `with_selected` option to the :select selector to match `options`/`with_options` options - Issue #1865 [Bartosz Nowak]
836
+ * Workaround broken system modals when using selenium with headless Chrome
837
+
838
+ # Version 2.14.0
839
+
840
+ Release date: 2017-05-01
841
+
842
+ ### Added
843
+
844
+ * "threadsafe" mode that allows per-session configuration
845
+ * `:type` filter added to the `:fillable_field` selector
846
+ * Proxy methods when using RSpec for `all`/`within` that call either the Capybara::DSL or RSpec matchers
847
+ depending on arguments passed
848
+ * Support for the new errors in selenium-webdriver 3.4
849
+
850
+ ### Fixed
851
+
852
+ * Element#inspect doesn't raise an error on obsolete elements
853
+ * Setting a contenteditable element with Selenium and Chrome 59
854
+ * Workaround a hang while setting the window size when using geckodriver 0.16 and Firefox 53
855
+ * Clicking on url with a blank href goes to the current url when using the RackTest driver
856
+
857
+ # Version 2.13.0
858
+
859
+ Release date: 2017-03-16
860
+
861
+ ### Added
862
+
863
+ * Selenium driver supports returning element(s) from evaluate_script [Thomas Walpole]
864
+ * rack_test driver supports click on checkboxes and radio buttons to change their states [Thomas Walpole]
865
+ * Support RSpec equivalent assertions and expectations for MiniTest [Thomas Walpole]
866
+
867
+ ### Fixed
868
+
869
+ * Editing of content editable children with selenium
870
+
871
+ # Version 2.12.1
872
+
873
+ Release date: 2017-02-16
874
+
875
+ ### Fixed
876
+ * Disable lazy Capybara::Results evaluation for JRuby due to ongoing issues
877
+
878
+ # Version 2.12.0
879
+
880
+ Release date: 2017-01-22
881
+
882
+ ### Added
883
+
884
+ * Session#switch_to_frame for manually handling frame switching - Issue #1365 [Thomas Walpole]
885
+ * Session#within_frame now accepts a selector type (defaults to :frame) and locator [Thomas Walpole]
886
+ * Session#execute_script and Session#evaluate_script now accept optional arguments that will be passed to the JS function. This may not be supported
887
+ 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]
888
+ * :exact option for text and title matchers - Issue #1256 [Thomas Walpole]
889
+ * :exact_text option for selector finders/minders - Issue #1256 [Thomas Walpole]
890
+ * Capybara.exact_text setting that affects the text matchers and :text options passed to selector finders/matchers. Issue #1256 [Thomas Walpole]
891
+ * :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
892
+ support for passing page elements to Session#execute_script [Thomas Walpole]
893
+ * assert_all_selectors/assert_none_of_selectors assertions added
894
+ * :link selector (used by find_link/click_link) now supports finding hyperlink placeholders (no href attribute) when href: nil option is specified [Thomas Walpole]
895
+ * `within_element` as an alias of `within` due to RSpec collision
896
+
897
+ ### Fixed
898
+
899
+ * Fields inside a disabled fieldset are now correctly considered disabled - Issue #1816 [Thomas Walpole]
900
+ * Lazy Capybara::Results evaluation enabled for JRuby 9.1.6.0+
901
+ * A driver returning nil for #current_url won't raise an exception when calling #current_path [Dylan Reichstadt]
902
+ * Support Ruby 2.4.0 unified Integer [Koichi ITO]
903
+ * RackTest driver no longer modifies the text content of textarea elements in order to behave more like a real browser [Thomas Walpole]
904
+ * 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]
905
+
906
+ # Version 2.11.0
907
+
908
+ Release date: 2016-12-05
909
+
910
+ ### Added
911
+
912
+ * Options for clearing session/local storage on reset added to the Selenium driver
913
+ * Window size changes wait for the size to stabilize
914
+ * Defined return value for most actions
915
+ * Ignore specific error when qutting selenium driver instance - Issue #1773 [Dylan Reichstadt, Thomas Walpole]
916
+ * Warn on selenium unknown errors rather than raising when quitting driver [Adam Pohorecki, Thomas Walpole]
917
+ * Capybara::Result#each now returns an `Enumerator` when called without a block - Issue #1777 [Thomas Walpole]
918
+
919
+ ### Fixed
920
+
921
+ * Selenium driver with Chrome should support multiple file upload [Thomas Walpole]
922
+ * Fix visible: :hidden with :text option behavior [Thomas Walpole]
923
+
924
+ # Version 2.10.2
925
+
926
+ Release date: 2016-11-30
927
+
928
+ ### Fixed
929
+
930
+ * App exceptions with multiple parameter initializers now re-raised correctly - Issue #1785 [Michael Lutsiuk]
931
+ * Use Addressable::URI when parsing current_path since it's more lenient of technically invalid URLs - Issue #1801 [Marcos Duque, Thomas Walpole]
932
+
933
+ # Version 2.10.1
934
+
935
+ Release date: 2016-10-08
936
+
937
+ ### Fixed
938
+ * App errors are now correctly raised with the explanatory cause in JRuby [Thomas Walpole]
939
+ * Capybara::Result optimization disabled in JRuby due to issue with lazy enumerator evaluation [Thomas Walpole]
940
+ See: https://github.com/jruby/jruby/issues/4212
941
+
942
+ # Version 2.10.0
943
+
944
+ Release date: 2016-10-05
945
+
946
+ ### Added
947
+
948
+ * Select `<button>` elements with descendant images with `alt` attributes matching the locator [Ian Lesperance]
949
+ * Locator string is optional in selector based matchers [Thomas Walpole]
950
+ * Selectors can specify their default visible setting [Thomas Walpole]
951
+ * Selector based finders and matchers can be passed a block to filter the results within the retry behavior [Thomas Walpole]
952
+
953
+ # Version 2.9.2
954
+
955
+ Release date: 2016-09-29
956
+
957
+ ### Fixed
958
+
959
+ * :label built-in selector finds nested label/control by control id if the label has no 'for' attribute [Thomas Walpole]
960
+ * Warning issued if an unknown selector type is specified [Thomas Walpole]
961
+
962
+ # Version 2.9.1
963
+
964
+ Release date: 2016-09-23
965
+
966
+ ### Fixed
967
+
968
+ * allow_label_click option did not work in some cases with Poltergeist - Issue #1762 [Thomas Walpole]
969
+ * matches_selector? should have access to all of a selectors options except the count options [Thomas Walpole]
970
+
971
+ # Version 2.9.0
972
+
973
+ Release date: 2016-09-19
974
+
975
+ ### Fixed
976
+
977
+ * Issue with rack-test driver and obselete mime-types when using `#attach_file` - Issue #1756 [Thomas Walpole]
978
+
979
+ ### Added
980
+
981
+ * `:class` option to many of the built-in selectors [Thomas Walpole]
982
+ * Removed need to specify value when creating `:boolean` filter type in custom selectors [Thomas Walpole]
983
+ * Filters can now be implemented through the XPath/CSS expressions in custom selectors [Thomas Walpole]
984
+ * `Element#matches_xpath?` and `Element#matches_css?` [Thomas Walpole]
985
+
986
+ # Version 2.8.1
987
+
988
+ Release date: 2016-08-25
989
+
990
+ ### Fixed
991
+
992
+ * Fixed error message from have_text when text is not found but contains regex special characters [Ryunosuke Sato]
993
+ * Warn when :exact option is passed that has no effect [Thomas Walpole]
994
+
995
+ # Version 2.8.0
996
+
997
+ Release date: 2016-08-16
998
+
999
+ ### Fixed
1000
+
1001
+ * Issue with modals present when closing the page using selenium - Issue #1696 [Jonas Nicklas, Thomas Walpole]
1002
+ * Server errors raised in test code have the cause set to an explanatory exception
1003
+ in rubies that support Exception#cause rather than a confusing ExpectationNotMet - Issue #1719 [Thomas Walpole]
1004
+ * background/given/given! RSpec aliases will work if RSpec config.shared_context_metadata_behavior == :apply_to_host_groups [Thomas Walpole]
1005
+ * Fixed setting of unexpectedAlertError now that Selenium will be freezing the Capabilities::DEFAULTS [Thomas Walpole]
1006
+
1007
+ ### Added
1008
+
1009
+ * 'check', 'uncheck', and 'choose' can now optionally click the associated label if the checkbox/radio button is not visible [Thomas Walpole]
1010
+ * Raise error if Capybara.app_host/default_host are specified incorrectly [Thomas Walpole]
1011
+ * Capybara::Selector::FilterSet allows for sharing filter definitions between selectors [Thomas Walpole]
1012
+ * Remove need to pass nil locator in most node actions when locator is not needed [Thomas Walpole]
1013
+ * New frames API for drivers - Issue #1365 [Thomas Walpole]
1014
+ * Deprecated Element#parent in favor of Element#query_scope to better indicate what it is [Thomas Walpole]
1015
+ * Improved error messages for have_text matcher [Alex Chaffee, Thomas Walpole]
1016
+ * The `:with` option for the field selector now accepts a regular expression for matching the field value [Uwe Kubosch]
1017
+ * Support matching on aria-label attribute when finding fields/links/buttons - Issue #1528 [Thomas Walpole]
1018
+ * Optimize Capybara::Result to only apply fields as necessary in common use-case of `.all[idx]` [Thomas Walpole]
1019
+
1020
+ # Version 2.7.1
1021
+
1022
+ Release date: 2016-05-01
1023
+
1024
+ ### Fixed
1025
+
1026
+ * Issue where within_Frame would fail with Selenium if the frame is removed from within itself [Thomas Walpole]
1027
+ * Reset sessions in reverse order so sessions with active servers are reset last - Issue #1692 [Jonas Nicklas, Thomas Walpole]
1028
+
1029
+ # Version 2.7.0
1030
+
1031
+ Release date: 2016-04-07
1032
+
1033
+ ### Fixed
1034
+
1035
+ * Element#visible?/checked?/disabled?/selected? Now return boolean as expected when using the rack_test driver [Thomas Walpole]
1036
+ * The rack_test driver now considers \<input type="hidden"> elements as non-visible [Thomas Walpole]
1037
+ * A nil locator passed to the built-in html type selectors now behaves consistently, and finds elements of the expected types [Thomas Walpole]
1038
+ * Capybara::Server now searches for available ports on the same interface it binds to [Aaron Stone]
1039
+ * Selenium Driver handles system modals that appear when page is unloading [Thomas Walpole]
1040
+ * Warning output if unused parameters are passed to a selector query [Thomas Walpole]
1041
+
1042
+ ### Added
1043
+
1044
+ * Capybara now waits for requests to Capybaras server to complete while restting the session [John Hawthorn, Thomas Walpole]
1045
+ * Capybara.reuse_server option to allow disabling of sharing server instance between sessions [Thomas Walpole]
1046
+ * :multiple filter added to relevant selectors [Thomas Walpole]
1047
+ * Provided server registrations for :webrick and :puma. Capybara.server = :puma for testing with Rails 5 [Thomas Walpole]
1048
+ * Deprecate passing a block to Capybara::server user Capybara::register_server instead [Thomas Walpole]
1049
+ * :option selector supports :selected and :disabled filters [Thomas Walpole]
1050
+ * Element#matches_selector? and associated matchers (match_selector, match_css, etc) for comparing an element to a selector [Thomas Walpole]
1051
+ * Deprecated Driver#browser_initialized? - Driver#reset! is required to be synchronous [Jonas Nicklas, Thomas Walpole]
1052
+ * Deprecated Capybara.save_and_open_page_path in favor of Capybara.save_path with slightly different behavior when using relative paths with
1053
+ save_page/save_screenshot [Thomas Walpole]
1054
+ * :label selector [Thomas Walpole]
1055
+
1056
+ # Version 2.6.2
1057
+
1058
+ Relase date: 2016-01-27
1059
+
1060
+ ### Fixed
1061
+
1062
+ * support for more than just addressable 2.4.0 [Thomas Walpole]
1063
+
1064
+ # Version 2.6.1
1065
+
1066
+ Release date: 2016-01-27
1067
+
1068
+ ### Fixed
1069
+
1070
+ * Add missing require for addressable [Jorge Bejar]
1071
+
1072
+ # Version 2.6.0
1073
+
1074
+ Relase date: 2016-01-17
1075
+
1076
+ ### Fixed
1077
+
1078
+ * Fixed path escaping issue with current_path matchers [Thomas Walpole, Luke Rollans] (Issue #1611)
1079
+ * Fixed circular require [David Rodríguez]
1080
+ * Capybara::RackTest::Form no longer overrides Object#method [David Rodriguez]
1081
+ * options and with_options filter for :select selector have more intuitive visibility behavior [Nathan]
1082
+ * Test for nested modal API method support [Thomas Walpole]
1083
+
1084
+
1085
+ ### Added
1086
+
1087
+ * Capybara.modify_selector [Thomas Walpole]
1088
+ * xfeature and ffeature aliases added when using RSpec [Filip Bartuzi]
1089
+ * Selenium driver supports a :clear option to #set to handle different strategies for clearing a field [Thomas Walpole]
1090
+ * Support the use of rack 2.0 with the rack_test driver [Travis Grathwell, Thomas Walpole]
1091
+ * Disabled option for default selectors now supports true, false, or :all [Jillian Rosile, Thomas Walpole]
1092
+ * Modal API methods now default wait time to Capybara.default_max_wait_time [Thomas Walpole]
1093
+
1094
+ # Version 2.5.0
1095
+
1096
+ Release date: 2015-08-25
1097
+
1098
+ ### Fixed
1099
+
1100
+ * Error message now raised correctly when invalid options passed to 'have_text'/'have_content' [Thomas Walpole]
1101
+ * Rack-test driver correctly gets document title when elements on the page have nested title elements (SVG) [Thomas Walpole]
1102
+ * 'save_page' no longer errors when using Capybara.asset_host if the page has no \<head> element [Travis Grathwell]
1103
+ * rack-test driver will ignore clicks on links with href starting with '#' or 'javascript:'
1104
+
1105
+ ### Added
1106
+
1107
+ * has_current_path? and associated asserts/matchers added [Thomas Walpole]
1108
+ * Implement Node#path in selenium driver [Soutaro Matsumoto]
1109
+ * 'using_session' is now nestable [Thomas Walpole]
1110
+ * 'switch_to_window' will now use waiting behavior for a matching window to appear [Thomas Walpole]
1111
+ * Warning when attempting to select a disabled option
1112
+ * Capybara matchers are now available in RSpec view specs by default [Joshua Clayton]
1113
+ * 'have_link' and 'click_link' now accept Regexp for href matching [Yaniv Savir]
1114
+ * 'find_all' as an alias of 'all' due to collision with RSpec
1115
+ * Capybara.wait_on_first_by_default setting (default is false)
1116
+ If set to true 'first' will use Capybaras waiting behavior to wait for at least one element to appear by default
1117
+ * Capybara waiting behavior uses the monotonic clock if supported to ease restrictions on freezing time in tests [Dmitry Maksyoma, Thomas Walpole]
1118
+ * Capybara.server_errors setting that allows to configure what type of errors will be raised from the server thread [Thomas Walpole]
1119
+ * Node#send_keys to allow for sending keypresses directly to elements [Thomas Walpole]
1120
+ * 'formmethod' attribute support in RackTest driver [Emilia Andrzejewska]
1121
+ * Clear field using backspaces in Selenium driver by using `:fill_options => { :clear => :backspace }` [Joe Lencioni]
1122
+
1123
+ ### Deprecated
1124
+
1125
+ * Capybara.default_wait_time deprecated in favor of Capybara.default_max_wait_time to more clearly explain its purpose [Paul Pettengill]
1126
+
1127
+ # Version 2.4.4
1128
+
1129
+ Release date: 2014-10-13
1130
+
1131
+ ### Fixed
1132
+
1133
+ * Test for visit behavior updated [Phil Baker]
1134
+ * Removed concurrency prevention in favor of a note in the README - due to load order issues
1135
+
1136
+ # Version 2.4.3
1137
+
1138
+ Relase date: 2014-09-21
1139
+
1140
+ ### Fixed
1141
+
1142
+ * Update concurrency prevention to match Rails 4.2 behavior
1143
+
1144
+ # Version 2.4.2
1145
+
1146
+ Release date: 2014-09-20
1147
+
1148
+ ### Fixed
1149
+
1150
+ * Prevent concurrency issue when testing Rails app with default test environment [Thomas Walpole]
1151
+ * Tags for windows API tests fixed [Dmitry Vorotilin]
1152
+ * Documentation Fixes [Andrey Botalov]
1153
+ * Always convert visit url to string, fixes issue with visit when always_include_port was enabled [Jake Goulding]
1154
+ * Check correct rspec version before including ::RSpec::Matchers::Composable in Capybara RSpec matchers [Thomas Walpole, Justin Ko]
1155
+
1156
+ # Version 2.4.1
1157
+
1158
+ Release date: 2014-07-03
1159
+
1160
+ ### Added
1161
+
1162
+ * 'assert_text', 'assert_no_text', 'assert_title', 'assert_no_title' methods added [Andrey Botalov]
1163
+ * have_title matcher now supports :wait option [Andrey Botalov]
1164
+ * More descriptive have_text error messages [Andrey Botalov]
1165
+ * New modal API ('accept_alert', 'accept_confirm', 'dismiss_confirm', 'accept_prompt', 'dismiss_prompt') - [Mike Pack, Thomas Walpole]
1166
+ * Warning when attempting to set contents of a readonly element
1167
+ * Suport for and/or compounding of Capybara's RSpec matchers for RSpec 3 [Thomas Walpole]
1168
+ * :fill_options option for 'fill_in' method that propagates to 'set' to allow for driver specific modification of how fields are filled in [Gabriel Sobrinho, Thomas Walpole]
1169
+ * Improved selector/filter description in failure messages [Thomas Walpole]
1170
+
1171
+ ### Fixed
1172
+
1173
+ * HaveText error message now shows the text checked all the time
1174
+ * RackTest driver no longer attempts to follow an anchor tag without an href attribute
1175
+ * Warnings under RSpec 3
1176
+ * Handle URI schemes like about: correctly [Andrey Botalov]
1177
+ * RSpecs expose_dsl_globally option is now followed [Myron Marston, Thomas Walpole]
1178
+
1179
+ # Version 2.3.0
1180
+
1181
+ Release date: 2014-06-02
1182
+
1183
+ ### Added
1184
+
1185
+ * New window management API [Andrey Botalov]
1186
+ * Speed improvement for visible text detection in RackTest [Thomas Walpole]
1187
+ Thanks to Phillipe Creux for instigating this
1188
+ * RSpec 3 compatability
1189
+ * 'save_and_open_screenshot' functionality [Greg Lazarev]
1190
+ * Server errors raised on visit and synchronize [Jonas Nicklas]
1191
+
1192
+ ### Fixed
1193
+
1194
+ * CSSHandlers now derives from BasicObject so globally included functions (concat, etc) shouldn't cause issues [Thomas Walpole]
1195
+ * touched reset after session is reset [lesliepc16]
1196
+
1197
+ # Version 2.2.1
1198
+
1199
+ Release date: 2014-01-06
1200
+
1201
+ ### Fixed
1202
+
1203
+ * Reverted a change in 2.2.0 which navigates to an empty file on `reset`.
1204
+ Capybara, now visits `about:blank` like it did before. [Jonas Nicklas]
1205
+
1206
+ # Version 2.2.0
1207
+
1208
+ Release date: 2013-11-21
1209
+
1210
+ ### Added
1211
+
1212
+ * Add `go_back` and `go_forward` methods. [Vasiliy Ermolovich]
1213
+ * Support RSpec 3 [Thomas Holmes]
1214
+ * `has_button?`, `has_checked_field?` and `has_unchecked_field?` accept
1215
+ options, like other matchers. [Carol Nichols]
1216
+ * The `assert_selector` and `has_text?` methods now support the `:wait` option
1217
+ [Vasiliy Ermolovich]
1218
+ * RackTest's visible? method now checks for the HTML5 `hidden` attribute.
1219
+ * Results from `#all` now delegate the `sample` method. [Phil Lee]
1220
+ * The `set` method now works for contenteditable attributes under Selenium.
1221
+ [Jon Rowe]
1222
+ * radio buttons and check boxes can be filtered by option value, useful when
1223
+ selecting by name [Jonas Nicklas]
1224
+ * feature blocks can be nested within other feature blocks in RSpec tests
1225
+ [Travis Gaff]
1226
+
1227
+ ### Fixed
1228
+
1229
+ * Fixed race conditions causing stale element errors when filtering by text.
1230
+ [Jonas Nicklas]
1231
+ * Resetting the page is now synchronous and navigates to an empty HTML file,
1232
+ instead of `about:blank`, fixing hanging issues in JRuby. [Jonas Nicklas]
1233
+ * Fixed cookies not being set when path is blank under RackTest [Thomas Walpole]
1234
+ * Clearing fields now correctly causes change events [Jonas Nicklas]
1235
+ * Navigating to an absolute URI without trailing slash now works as expected
1236
+ under RackTest [Jonas Nicklas]
1237
+ * Checkboxes without assigned value default to `on` under RackTest [Nigel Sheridan-Smith]
1238
+ * Clicks on buttons with no form associated with them are ignored in RackTest
1239
+ instead of raising an obscure exception. [Thomas Walpole]
1240
+ * execute_script is now a session method [Andrey Botalov]
1241
+ * Nesting `within_window` and `within_frame` inside `within` resets the scope
1242
+ so that they behave like a user would expect [Thomas Walpole]
1243
+ * Improve handling of newlines in textareas [Thomas Walpole]
1244
+ * `Capybara::Result` delegates its inspect method, so as not to confuse users
1245
+ [Sam Rawlins]
1246
+ * save_page always returns a full path, fixes problems with Launchy [Jonas Nicklas]
1247
+ * Selenium driver's `quit` method does nothing when browser hasn't been loaded
1248
+ [randoum]
1249
+ * Capybara's WEBRick server now propertly respects the server_host option
1250
+ [Dmitry Vorotilin]
1251
+ * gemspec now includes license information [Jonas Nicklas]
1252
+
1253
+ # Version 2.1.0
1254
+
1255
+ Release date: 2013-04-09
1256
+
1257
+ ### Changed
1258
+
1259
+ * Hard version requirement on Ruby >= 1.9.3. Capybara will no longer install
1260
+ on 1.8.7. [Felix Schäfer]
1261
+ * Capybara no longer depends on the `selenium-webdriver` gem. Add it to
1262
+ your Gemfile if you wish to use the Selenium driver. [Jonas Nicklas]
1263
+ * `Capybara.ignore_hidden_elements` defaults to `true`. [Jonas Nicklas]
1264
+ * In case of multiple matches `smart` matching is used by default. Set
1265
+ `Capybara.match = :one` to revert to old behaviour. [Jonas Nicklas].
1266
+ * Options in select boxes use smart matching and no longer need to match
1267
+ exactly. Set `Capybara.exact_options = false` to revert to old behaviour.
1268
+ [Jonas Nicklas].
1269
+ * Visibility of text depends on `Capybara.ignore_hidden_elements` instead of
1270
+ always returning only visible text. Set `Capybara.visible_text_only = true`
1271
+ to revert to old behaviour. [Jonas Nicklas]
1272
+ * Cucumber cleans up session after scenario instead. This is consistent with
1273
+ RSpec and makes more sense, since we raise server errors in `reset!`.
1274
+ [Jonas Nicklas]
1275
+
1276
+ ### Added
1277
+
1278
+ * All actions (`click_link`, `fill_in`, etc...) and finders now take an options
1279
+ hash, which is passed through to `find`. [Jonas Nicklas]
1280
+ * CSS selectors are sent straight through to driver instead of being converted
1281
+ to XPath first. Enables the use of some pseudo selectors, such as `invalid`
1282
+ in some drivers. [Thomas Walpole]
1283
+ * `Capybara.asset_host` option, which inserts a `base` tag into the page on
1284
+ `save_and_open_page`, eases debugging with the Rails asset pipeline.
1285
+ [Steve Hull]
1286
+ * `exact` option, can specify whether to match substrings or entire text.
1287
+ [Jonas Nicklas]
1288
+ * `match` option, can specify behaviour in case of multiple matches.
1289
+ [Jonas Nicklas]
1290
+ * `wait` option, can specify how long to wait for a given action/finder.
1291
+ [Jonas Nicklas]
1292
+ * Config option which disables bubbling of errors raised inside server.
1293
+ [Jonas Nicklas]
1294
+ * `text` now takes a parameter which makes it possible to return either all
1295
+ text or only visible text. The default depends on
1296
+ `Capybara.ignore_hidden_elements`. `Capybara.visible_text_only` option is
1297
+ available for compatibility. [Jonas Nicklas]
1298
+ * `has_content?` and `has_text?` now take the same count options as `has_selector?`
1299
+ [Andrey Botalov]
1300
+ * `current_scope` is now public API, returns the current element when `within`
1301
+ is used. [Martijn Walraven]
1302
+ * `find("input").disabled?` returns true if a node is disabled. [Ben Lovell]
1303
+ * Find disabled fields and buttons with `:disabled => false`. [Jonas Nicklas]
1304
+ * `find("input").hover` moves the mouse to the element in supported drivers.
1305
+ [Thomas Walpole]
1306
+ * RackTest driver now support `form` attribute on form elements.
1307
+ [Thomas Walpole]
1308
+ * `page.title` returns the page title. [Terry Progetto]
1309
+ * `has_title?` matcher to assert on page title. [Jonas Nicklas]
1310
+ * The gem is now signed with a certicficate. The public key is available in the
1311
+ repo. [Jonas Nicklas]
1312
+ * `:select` and `:textarea` are valid options for the `:type` filter on `find_field`
1313
+ and `has_field?`. [Yann Plancqueel]
1314
+
1315
+ ### Fixed
1316
+
1317
+ * Fixed race conditions when synchronizing across multiple nodes [Jonas Nicklas]
1318
+ * Fixed race conditions in deeply nested selectors [Jonas Nicklas]
1319
+ * Fix issue with `within_frame`, where selecting multiple nested frames didn't
1320
+ work as intended. [Thomas Walpole]
1321
+ * RackTest no longer fills in readonly textareas. [Thomas Walpole]
1322
+ * Don't use autoload to load files, require them directly instead. [Jonas Nicklas]
1323
+ * Rescue weird exceptions when booting server [John Wilger]
1324
+ * Non strings are now properly cast when using the maxlength attribute [Jonas Nicklas]
1325
+
1326
+ # Version 2.0.3
1327
+
1328
+ Release date: 2013-03-26
1329
+
1330
+ * Check against Rails version fixed to work with Rails' master branch now returning
1331
+ a Gem::Version [Jonas Nicklas]
1332
+ * Use posix character class for whitespace replace, solves various encoding
1333
+ problems on Ruby 2.0.0 and JRuby. [Ben Cates]
1334
+
1335
+ # Version 2.0.2
1336
+
1337
+ Release date: 2012-12-31
1338
+
1339
+ ### Changed
1340
+
1341
+ * Capybara no longer uses thin as a server if it is available, due to thread
1342
+ safety issues. Now Capybara always defaults to WEBrick. [Jonas Nicklas]
1343
+
1344
+ ### Fixed
1345
+
1346
+ * Suppress several warnings [Kouhei Sutou]
1347
+ * Fix default host becoming nil [Brian Cardarella]
1348
+ * Fix regression in 2.0.1 which caused node comparisons with non node objects
1349
+ to throw an exception [Kouhei Sotou]
1350
+ * A few changes to the specs, only relevant to driver authors [Jonas Nicklas]
1351
+ * Encoding error under JRuby [Piotr Krawiec]
1352
+ * Ruby 2 encoding fix [Murahashi Sanemat Kenichi]
1353
+ * Catch correct exception on server timeout [Jonathan del Strother]
1354
+
1355
+ # Version 2.0.1
1356
+
1357
+ Release date: 2012-12-21
1358
+
1359
+ ### Changed
1360
+
1361
+ * Move the RackTest driver override with the `:respect_data_method` option
1362
+ enabled from capybara/rspec to capybara/rails, so that it is enabled in
1363
+ Rails projects that don't use RSpec. [Carlos Antonio da Silva]
1364
+ * `source` is now an alias for `html`. RackTest no longer returns modifications
1365
+ to `html`. This basically codifies the behaviour which we've had for a while
1366
+ anyway, and should have minimal impact for end users. For driver authors, it
1367
+ means that they only have to implement `html`, and not `source`. [Jonas
1368
+ Nicklas]
1369
+
1370
+ ### Fixed
1371
+
1372
+ * Visiting relative URLs when `app_host` is set and no server is running works
1373
+ as expected. [Jonas Nicklas]
1374
+ * `fill_in` works properly under Selenium again when the caret is not at the
1375
+ end of the field before the method is called. [Douwe Maan, Jonas Nicklas, Jari
1376
+ Bakken]
1377
+ * `attach_file` can once again be given a Pathname [Jake Goulding]
1378
+
1379
+ # Version 2.0.0
1380
+
1381
+ Release date: 2012-11-05
1382
+
1383
+ ### Changed
1384
+
1385
+ * Dropped official support for Ruby 1.8.x. [Jonas Nicklas]
1386
+ * `respect_data_method` default to `false` for the RackTest driver in non-rails
1387
+ applications. That means that Capybara no longer picks up `data-method="post"`
1388
+ et. al. from links by default when you haven't required capybara/rails
1389
+ [Jonas Nicklas]
1390
+ * `find` now raises an error if more than one element was found. Since `find` is
1391
+ used by most actions, like `click_link` under the surface, this means that all
1392
+ actions need to unambiguous in the future. [Jonas Nicklas]
1393
+ * All methods which find or manipulate fields or buttons now ignore them when
1394
+ they are disabled. [Jonas Nicklas]
1395
+ * Can no longer find elements by id via `find(:foo)`, use `find("#foo")` or
1396
+ `find_by_id("foo")` instead. [Jonas Nicklas]
1397
+ * `Element#text` on RackTest now only returns visible text and normalizes
1398
+ (strips) whitespace, as with Selenium [Mark Dodwell, Jo Liss]
1399
+ * `has_content?` now checks the text value returned by `Element#text`, as opposed to
1400
+ querying the DOM. Which means it does not match hidden text.
1401
+ [Ryan Montgomery, Mark Dodwell, Jo Liss]
1402
+ * #394: `#body` now returns the unmodified source (like `#source`), not the current
1403
+ state of the DOM (like `#html`), by popular request [Jonas Nicklas]
1404
+ * `Node#all` no longer returns an array, but rather an enumerable `Capybara::Result`
1405
+ [Jonas Nicklas]
1406
+ * The arguments to `select` and `unselect` needs to be the exact text of an option
1407
+ in a select box, substrings are no longer allowed [Jonas Nicklas]
1408
+ * The `options` option to `has_select?` must match the exact set of options. Use
1409
+ `with_options` for the old behaviour. [Gonzalo Rodriguez]
1410
+ * The `selected` option to `has_select?` must match all selected options for multiple
1411
+ selects. [Gonzalo Rodriguez]
1412
+ * Various internals for running driver specs, this should only affect driver authors
1413
+ [Jonas Nicklas]
1414
+ * Rename `Driver#body` to `Driver#html` (relevant only for driver authors) [Jo
1415
+ Liss]
1416
+
1417
+ ### Removed
1418
+
1419
+ * No longer possible to specify `failure_message` for custom selectors. [Jonas Nicklas]
1420
+ * #589: `Capybara.server_boot_timeout` has been removed in favor of a higher
1421
+ (60-second) hard-coded timeout [Jo Liss]
1422
+ * `Capybara.prefer_visible_elements` has been removed, as it is no longer needed
1423
+ with the changed find semantics [Jonas Nicklas]
1424
+ * `Node#wait_until` and `Session#wait_until` have been removed. See `Node#synchronize`
1425
+ for an alternative [Jonas Nicklas]
1426
+ * `Capybara.timeout` has been removed [Jonas Nicklas]
1427
+ * The `:resynchronize` option has been removed from the Selenium driver [Jonas Nicklas]
1428
+ * The `rows` option to `has_table?` has been removed without replacement.
1429
+ [Jonas Nicklas]
1430
+
1431
+ ### Added
1432
+
1433
+ * Much improved error message [Jonas Nicklas]
1434
+ * Errors from inside the session for apps running in a server are raised when
1435
+ session is reset [James Tucker, Jonas Nicklas]
1436
+ * A ton of new selectors built in out of the box, like `field`, `link`, `button`,
1437
+ etc... [Adam McCrea, Jonas Nicklas]
1438
+ * `has_text?` has been added as an alias for `has_content?` [Jonas Nicklas]
1439
+ * Add `Capybara.server_host` option (default: 127.0.0.1) [David Balatero]
1440
+ * Add `:type` option for `page.has_field?` [Gonzalo Rodríguez]
1441
+ * Custom matchers can now be specified in CSS in addition to XPath [Jonas Nicklas]
1442
+ * `Node#synchronize` method to rerun a block of code if certain errors are raised
1443
+ [Jonas Nicklas]
1444
+ * `Capybara.always_include_port` config option always includes the server port in
1445
+ URLs when using `visit`. Facilitates testing different domain names. [Douwe Maan]
1446
+ * Redirect limit for RackTest driver is configurable [Josh Lane]
1447
+ * Server port can be manually specified during initialization of server.
1448
+ [Jonas Nicklas, John Wilger]
1449
+ * `has_content?` and `has_text?` can be given a regular expression [Vasiliy Ermolovich]
1450
+ * Multiple files can be uploaded with `attach_file` [Jarl Friis]
1451
+
1452
+ ### Fixed
1453
+
1454
+ * Nodes found via `all` are no longer reloaded. This fixes weird quirks where
1455
+ nodes would seemingly randomly replace themselves with other nodes [Jonas Nicklas]
1456
+ * Session is only reset if it has been modified, dramatically improves performance if
1457
+ only part of the test suite runs Capybara. [Jonas Nicklas]
1458
+ * Test suite now passes on Ruby 1.8 [Jo Liss]
1459
+ * #565: `require 'capybara/dsl'` is no longer necessary [Jo Liss]
1460
+ * `Rack::Test` now respects ports when changing hosts [Jo Liss]
1461
+ * #603: `Rack::Test` now preserves the original referer URL when following a
1462
+ redirect [Rob van Dijk]
1463
+ * Rack::Test now does not send a referer when calling `visit` multiple times
1464
+ [Jo Liss]
1465
+ * Exceptions during server boot now propagate to main thread [James Tucker]
1466
+ * RSpec integration now cleans up before the test instead of after [Darwin]
1467
+ * If `respect_data_method` is true, the data-method attribute can be capitalized
1468
+ [Marco Antonio]
1469
+ * Rack app boot timing out raises an error as opposed to just logging to STDOUT
1470
+ [Adrian Irving-Beer]
1471
+ * `#source` returns an empty string instead of nil if no pages have been visited
1472
+ [Jonas Nicklas]
1473
+ * Ignore first leading newline in textareas in RackTest [Vitalii Khustochka]
1474
+ * `within_frame` returns the value of the given block [Alistair Hutchison]
1475
+ * Running `Node.set` on text fields will not trigger more than one change event
1476
+ [Andrew Kasper]
1477
+ * Throw an error when an option is given to a finder method, like `all` or
1478
+ `has_selector?` which Capybara doesn't understand [Jonas Nicklas]
1479
+ * Two references to the node now register as equal when comparing them with `==`
1480
+ [Jonas Nicklas]
1481
+ * `has_text` (`has_content`) now accepts non-string arguments, like numbers.
1482
+ [Jo Liss]
1483
+ * `has_text` and `text` now correctly normalize Unicode whitespace, such as
1484
+ `&nbsp;`. [Jo Liss]
1485
+ * RackTest allows protocol relative URLs [Jonas Nicklas]
1486
+ * Arguments are cast to string where necessary, so that e.g. `click_link(:foo)` works
1487
+ as expected. [Jonas Nicklas]
1488
+ * `:count => 0` now works as expected [Jarl Friis]
1489
+ * Fixed race conditions on negative assertions when removing nodes [Jonas Nicklas]
1490
+
1491
+ # Version 1.1.4
1492
+
1493
+ Release date: 2012-11-28
1494
+
1495
+ ### Fixed
1496
+
1497
+ * Fix more race conditions on negative assertions. [Jonas Nicklas]
1498
+
1499
+ # Version 1.1.3
1500
+
1501
+ Release date: 2012-10-30
1502
+
1503
+ ### Fixed:
1504
+
1505
+ * RackTest driver ignores leading newline in textareas, this is consistent with
1506
+ the spec and how browsers behave. [Vitalii Khustochka]
1507
+ * Nodes found via `all` and `first` are never reloaded. This fixes issues where
1508
+ a node would sometimes magically turn into a completely different node.
1509
+ [Jonas Nicklas]
1510
+ * Fix race conditions on negative assertions. This fixes issues where removing
1511
+ an element and asserting on its non existence could cause
1512
+ StaleElementReferenceError and similar to be thrown. [Jonas Nicklas]
1513
+ * Options are no longer lost when reloading elements. This fixes issues where
1514
+ reloading an element would cause a non-matching element to be found, because
1515
+ options to `find` were ignored. [Jonas Nicklas]
1516
+
1517
+ # Version 1.1.2
1518
+
1519
+ Release date: 2011-11-15
1520
+
1521
+ ### Fixed
1522
+
1523
+ * #541: Make attach_file work with selenium-webdriver >=2.12 [Jonas Nicklas]
1524
+
1525
+ # Version 1.1.0
1526
+
1527
+ Release date: 2011-09-02
1528
+
1529
+ ### Fixed
1530
+
1531
+ * Sensible inspect for Capybara::Session [Jo Liss]
1532
+ * Fix headers and host on redirect [Matt Colyer, Jonas Nicklas, Kim Burgestrand]
1533
+ * using_driver now restores the old driver instead of reverting to the default [Carol Nichols]
1534
+ * Errors when following links relative to the root path under rack-test [Jonas Nicklas, Kim Burgestrand]
1535
+ * Make sure exit codes are propagated properly [Edgar Beigarts]
1536
+
1537
+ ### Changed
1538
+
1539
+ * resynchronization is off by default under Selenium
1540
+
1541
+ ### Added
1542
+
1543
+ * Elements are automatically reloaded (including parents) during wait [Jonas Nicklas]
1544
+ * Rescue driver specific element errors, such as the dreaded ObsoleteElementError and retry [Jonas Nicklas]
1545
+ * Raise an error if something has frozen time [Jonas Nicklas]
1546
+ * Allow within to take a node instead of a selector [Peter Williams]
1547
+ * Using wait_time_time to change wait time for a block of code [Jonas Nicklas, Kim Burgestrand]
1548
+ * Option for rack-test driver to disable data-method hack [Jonas Nicklas, Kim Burgestrand]
1549
+
1550
+ # Version 1.0.1
1551
+
1552
+ Release date: 2011-08-12
1553
+
1554
+ ### Fixed
1555
+
1556
+ * Dependend on selenium-webdriver ~>2.0 and fix deprecations [Thomas Walpole, Jo Liss]
1557
+ * Depend on Launch 2.0 [Jeremy Hinegardner]
1558
+ * Rack-Test ignores fill in on fields with maxlength=""
1559
+
1560
+ # Version 1.0.0
1561
+
1562
+ Release date: 2011-06-14
1563
+
1564
+ ### Added
1565
+
1566
+ * Added DSL for acceptance tests, inspired by Luismi Cavallé's Steak [Luismi Cavalle and Jonas Nicklas]
1567
+ * Selenium driver automatically waits for AJAX requests to finish [mgiambalvo, Nicklas Ramhöj and Jonas Nicklas]
1568
+ * Support for switching between multiple named sessions [Tristan Dunn]
1569
+ * failure_message can be specified for Selectors [Jonas Nicklas]
1570
+ * RSpec matchers [David Chelimsky and Jonas Nicklas]
1571
+ * Added save_page to save tempfile without opening in browser [Jeff Kreeftmeijer]
1572
+ * Cucumber now switches automatically to a registered driver if the tag matches the name [Jonas Nicklas]
1573
+ * Added Session#text [Jonas Nicklas and Scott Cytacki]
1574
+ * Added Session#html as an alias for Session#body [Jo Liss]
1575
+ * Added Session#current_host method [Jonas Nicklas]
1576
+ * Buttons can now be clicked by title [Javier Martin]
1577
+ * :headers option for RackTest driver to set custom HTTP headers [Jonas Nicklas]
1578
+
1579
+ ### Removed
1580
+
1581
+ * Culerity and Celerity drivers have been removed and split into separate gems [Gabriel Sobrinho]
1582
+
1583
+ ### Deprecated
1584
+
1585
+ * `include Capybara` has been deprecated in favour of `include Capybara::DSL` [Jonas Nicklas]
1586
+
1587
+ ### Changed
1588
+
1589
+ * Rack test driver class has been renamed from Capybara::Driver::RackTest to Capybara::RackTest::Driver [Jonas Nicklas]
1590
+ * Selenium driver class has been renamed from Capybara::Driver::Selenium to Capybara::Selenium::Driver [Jonas Nicklas]
1591
+ * Capybara now prefers visible elements over hidden elements, disable by setting Capybara.prefer_visible_elements = false [Jonas Nicklas and Nicklas Ramhöj]
1592
+ * For RSpec, :type => :request is now supported (and preferred over :acceptance) [Jo Liss]
1593
+ * Selenium driver tried to wait for AJAX requests to finish before proceeding [Jonas Nicklas and Nicklas Ramhöj]
1594
+ * Session no longer uses method missing, uses explicit delegates instead [Jonas Nicklas]
1595
+
1596
+ ### Fixed
1597
+
1598
+ * The Rack::Test driver now respects maxlength on text fields [Guilherme Carvalho]
1599
+ * Allow for more than one save_and_open_page call per second [Jo Liss]
1600
+ * Automatically convert options to :count, :minimum, :maximum, etc. to integers [Keith Marcum]
1601
+ * Rack::Test driver honours maxlength on input fields [Guilherme Carvalho]
1602
+ * Rack::Test now works as expected with domains and subdomains [Jonas Nicklas]
1603
+ * Session is reset more thoroughly between tests. [Jonas Nicklas]
1604
+ * Raise error when uploading non-existant file [Jonas Nicklas]
1605
+ * Rack reponse body should respond to #each [Piotr Sarnacki]
1606
+ * Deprecation warnings with selenium webdriver 0.2.0 [Aaron Gibraltar]
1607
+ * Selenium Chrome no longer YELLS tagname [Carl Jackson & David W. Frank]
1608
+ * Capybara no longer strips encoding before sending to Rack [Jonas Nicklas]
1609
+ * Improve handling of relative URLs [John Barton]
1610
+ * Readd and fix build_rack_mock_session [Jonas Nicklas, Jon Leighton]
1611
+
1612
+ # Version 0.4.1
1613
+
1614
+ Release date: 2011-01-21
1615
+
1616
+ ### Added
1617
+
1618
+ * New click_on alias for click_link_or_button, shorter yet unambiguous. [Jonas Nicklas]
1619
+ * Finders now accept :visible => false which will find all elements regardless of Capybara.ignore_hidden_elements [Jonas Nicklas]
1620
+ * Configure how the server is started via Capybara.server { |app, port| ... }. [John Firebough]
1621
+ * Added :between, :maximum and :minimum options to has_selector and friends [James B. Byrne]
1622
+ * New Capybara.string util function which allows matchers on arbitrary strings, mostly for helper and view specs [David Chelimsky and Jonas Nicklas]
1623
+ * Server boot timeout is now configurable, via Capybara.server_boot_timeout [Adam Cigánek]
1624
+ * Built in support for RSpec [Jonas Nicklas]
1625
+ * Capybara.using_driver to switch to a different driver temporarily [Jeff Kreeftmeijer]
1626
+ * Added Session#first which is somewhat speedier than Session#all, use it internally for speed boost [John Firebaugh]
1627
+
1628
+ ### Changed
1629
+
1630
+ * Session#within now accepts the same arguments as other finders, like Session#all and Session#find [Jonas Nicklas]
1631
+
1632
+ ### Removed
1633
+
1634
+ * All deprecations from 0.4.0 have been removed. [Jonas Nicklas]
1635
+
1636
+ ### Fixed
1637
+
1638
+ * Don't mangle URLs in save_and_open_page when using self-closing tags [Adam Spiers]
1639
+ * Catch correct error when server boot times out [Jonas Nicklas]
1640
+ * Celerity driver now properly passes through options, making it configurable [Jonas Nicklas]
1641
+ * Better implementation of attributes in C[ue]lerity, should fix issues with attributes with strange names [Jonas Nicklas]
1642
+ * Session#find no longer swallows errors [Jonas Nicklas]
1643
+ * Fix problems with multiple file inputs [Philip Arndt]
1644
+ * Submit multipart forms as multipart under rack-test even if they contain no files [Ryan Kinderman]
1645
+ * Matchers like has_select? and has_checked_field? now work with dynamically changed values [John Firebaugh]
1646
+ * Preserve order of rack params [Joel Chippindale]
1647
+ * RackTest#reset! is more thorough [Joel Chippindale]
1648
+
1649
+ # Version 0.4.0
1650
+
1651
+ Release date: 2010-10-22
1652
+
1653
+ ### Changed
1654
+
1655
+ * The Selector API was changed slightly, use Capybara.add_selector, see README
1656
+
1657
+ ### Fixed
1658
+
1659
+ * Celerity driver is registered properly
1660
+ * has_selector? and has_no_selector? added to DSL
1661
+ * Multiple selects return correct values under C[cu]lerity
1662
+ * Naked query strings are handled correctly by rack-test
1663
+
1664
+ # Version 0.4.0.rc
1665
+
1666
+ Release date: 2010-10-12
1667
+
1668
+ ### Changed
1669
+
1670
+ * within and find/locate now follow the XPath spec in that //foo finds all nodes in the document, instead of
1671
+ only for the context node. See this post for details: http://groups.google.com/group/ruby-capybara/browse_thread/thread/b129067979df21b3
1672
+ * within now executes within the first found instance of the selector, not in all of them
1673
+ * find now waits for AJAX requests and raises an exception when the element is not found (same as locate used to do)
1674
+ * The default selector is now CSS, not XPath
1675
+
1676
+ ### Deprecated
1677
+
1678
+ * Session#click has been renamed click_link_or_button and the old click has been deprecated
1679
+ * Node#node has been renamed native
1680
+ * Node#locate is deprecated in favor of Node#find, which now behaves identically
1681
+ * Session#drag is deprecated, please use Node#drag_to(other_node) instead
1682
+
1683
+ ### Added
1684
+
1685
+ * Pretty much everything is properly documented now
1686
+ * It's now possible to call all session methods on nodes, like `find('#foo').fill_in(...)`
1687
+ * Custom selectors can be added with Capybara::Selector.add
1688
+ * The :id selector is added by default, use it lile `find(:id, 'foo')` or `find(:foo)`
1689
+ * Added Node#has_selector? so any kind of selector can be queried.
1690
+ * Added Capybara.configure for less wordy configuration
1691
+ * Added within_window to switch between different windows (currently Selenium only)
1692
+ * Capybara.server_port to provide a fixed port if wanted (defaults to automatic selection)
1693
+
1694
+ ### Fixed
1695
+
1696
+ * CSS selectors with multiple selectors, such as "h1, h2" now work correctly
1697
+ * Port is automatically assigned instead of guessing
1698
+ * Strip encodings in rack-test, no more warnings!
1699
+ * RackTest no longer submits disabled fields
1700
+ * Servers no longer output annoying debug information when started
1701
+ * TCP port selection is left to Ruby to decide, no more port guessing
1702
+ * Select boxes now return option value instead of text if present
1703
+ * The default has been changed from localhost to 127.0.0.1, should fix some obscure selenium bugs
1704
+ * RackTest now supports complex field names, such as foo[bar][][baz]
1705
+
1706
+ # Version 0.3.9
1707
+
1708
+ Release date: 2010-07-03
1709
+
1710
+ ### Added
1711
+
1712
+ * status_code which returns the HTTP status code of the last response (no Selenium!)
1713
+ * Capybara.save_and_open_page to store tempfiles
1714
+ * RackTest and Culerity drivers now clean up after themselves properly
1715
+
1716
+ ### Fixed
1717
+
1718
+ * When no rack app is set and the app is called, a more descriptive error is raised
1719
+ * select now works with optgroups
1720
+ * Don't submit image buttons unless they were clicked under rack-test
1721
+ * Support custom field types under Selenium
1722
+ * Support input fields without a type, treat them as though they were text fields
1723
+ * Redirect now throws an error after 5 redirects, as per RFC
1724
+ * Selenium now properly raises an error when Node#trigger is called
1725
+ * Node#value now returns the correct value for textareas under rack-test
1726
+
1727
+ # Version 0.3.8
1728
+
1729
+ Release date: 2010-05-12
1730
+
1731
+ ### Added
1732
+
1733
+ * Within_frame method to execute a block of code within a particular iframe (Selenium only!)
1734
+
1735
+ ### Fixed
1736
+
1737
+ * Single quotes are properly escaped with `select` under rack-test and Selenium.
1738
+ * The :text option for searches now escapes regexp special characters when a string is given.
1739
+ * Selenium now correctly checks already checked checkboxes (same with uncheck)
1740
+ * Timing issue which caused Selenium to hang under certain circumstances.
1741
+ * Selenium now resolves attributes even if they are given as a Symbol
1742
+
1743
+ # Version 0.3.7
1744
+
1745
+ Release date: 2010-04-09
1746
+
1747
+ This is a drop in compatible maintainance release. It's mostly
1748
+ important for driver authors.
1749
+
1750
+ ### Added
1751
+
1752
+ * RackTest scans for data-method which rails3 uses to change the request method
1753
+
1754
+ ### Fixed
1755
+
1756
+ * Don't hang when starting server on Windoze
1757
+
1758
+ ### Changed
1759
+
1760
+ * The driver and session specs are now located inside lib! Driver authors can simply require them.
1761
+
1762
+ # Version 0.3.6
1763
+
1764
+ Release date: 2010-03-22
1765
+
1766
+ This is a maintainance release with minor bug fixes, should be
1767
+ drop in compatible.
1768
+
1769
+ ### Added
1770
+
1771
+ * It's now possible to load in external drivers
1772
+
1773
+ ### Fixed
1774
+
1775
+ * has_content? ignores whitespace
1776
+ * Trigger events when choosing radios and checking checkboxes under Selenium
1777
+ * Make Capybara.app totally optional when running without server
1778
+ * Changed fallback host so it matches the one set up by Rails' integration tests
1779
+
1780
+ # Version 0.3.5
1781
+
1782
+ Release date: 2010-02-26
1783
+
1784
+ This is a mostly backwards compatible release, it does break
1785
+ the API in some minor places, which should hopefully not affect
1786
+ too many users, please read the release notes carefully!
1787
+
1788
+ ### Breaking
1789
+
1790
+ * Relative searching in a node (e.g. find('//p').all('//a')) will now follow XPath standard
1791
+ this means that if you want to find descendant nodes only, you'll need to prefix a dot!
1792
+ * `visit` now accepts fully qualified URLs for drivers that support it.
1793
+ * Capybara will always try to run a rack server, unless you set Capybara.run_sever = false
1794
+
1795
+ ### Changed
1796
+
1797
+ * thin is preferred over mongrel and webrick, since it is Ruby 1.9 compatible
1798
+ * click_button and click will find <input type="button">, clicking them does nothing in RackTest
1799
+
1800
+ ### Added
1801
+
1802
+ * Much improved error messages in a multitude of places
1803
+ * More semantic page querying with has_link?, has_button?, etc...
1804
+ * Option to ignore hidden elements when querying and interacting with the page
1805
+ * Support for multiple selects
1806
+
1807
+ ### Fixed
1808
+
1809
+ * find_by_id is no longer broken
1810
+ * clicking links where the image's alt attribute contains the text is now possible
1811
+ * within_fieldset and within_table work when the default selector is CSS
1812
+ * boolean attributes work the same across drivers (return true/false)
1813
+