browserstack-webdriver 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (202) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGES +791 -0
  3. data/README.md +31 -0
  4. data/build.desc +334 -0
  5. data/lib/selenium-client.rb +2 -0
  6. data/lib/selenium-webdriver.rb +1 -0
  7. data/lib/selenium/client.rb +37 -0
  8. data/lib/selenium/client/base.rb +132 -0
  9. data/lib/selenium/client/driver.rb +10 -0
  10. data/lib/selenium/client/errors.rb +9 -0
  11. data/lib/selenium/client/extensions.rb +118 -0
  12. data/lib/selenium/client/idiomatic.rb +488 -0
  13. data/lib/selenium/client/javascript_expression_builder.rb +116 -0
  14. data/lib/selenium/client/javascript_frameworks/jquery.rb +13 -0
  15. data/lib/selenium/client/javascript_frameworks/prototype.rb +13 -0
  16. data/lib/selenium/client/legacy_driver.rb +1720 -0
  17. data/lib/selenium/client/protocol.rb +104 -0
  18. data/lib/selenium/client/selenium_helper.rb +34 -0
  19. data/lib/selenium/rake/server_task.rb +157 -0
  20. data/lib/selenium/server.rb +248 -0
  21. data/lib/selenium/webdriver.rb +71 -0
  22. data/lib/selenium/webdriver/android.rb +9 -0
  23. data/lib/selenium/webdriver/android/bridge.rb +47 -0
  24. data/lib/selenium/webdriver/chrome.rb +26 -0
  25. data/lib/selenium/webdriver/chrome/bridge.rb +120 -0
  26. data/lib/selenium/webdriver/chrome/profile.rb +90 -0
  27. data/lib/selenium/webdriver/chrome/service.rb +75 -0
  28. data/lib/selenium/webdriver/common.rb +44 -0
  29. data/lib/selenium/webdriver/common/action_builder.rb +352 -0
  30. data/lib/selenium/webdriver/common/alert.rb +30 -0
  31. data/lib/selenium/webdriver/common/bridge_helper.rb +67 -0
  32. data/lib/selenium/webdriver/common/core_ext/base64.rb +9 -0
  33. data/lib/selenium/webdriver/common/core_ext/dir.rb +42 -0
  34. data/lib/selenium/webdriver/common/core_ext/string.rb +5 -0
  35. data/lib/selenium/webdriver/common/driver.rb +301 -0
  36. data/lib/selenium/webdriver/common/driver_extensions/has_browser_connection.rb +17 -0
  37. data/lib/selenium/webdriver/common/driver_extensions/has_input_devices.rb +39 -0
  38. data/lib/selenium/webdriver/common/driver_extensions/has_location.rb +25 -0
  39. data/lib/selenium/webdriver/common/driver_extensions/has_remote_status.rb +13 -0
  40. data/lib/selenium/webdriver/common/driver_extensions/has_session_id.rb +22 -0
  41. data/lib/selenium/webdriver/common/driver_extensions/has_touch_screen.rb +19 -0
  42. data/lib/selenium/webdriver/common/driver_extensions/has_web_storage.rb +22 -0
  43. data/lib/selenium/webdriver/common/driver_extensions/rotatable.rb +45 -0
  44. data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +43 -0
  45. data/lib/selenium/webdriver/common/driver_extensions/uploads_files.rb +46 -0
  46. data/lib/selenium/webdriver/common/element.rb +293 -0
  47. data/lib/selenium/webdriver/common/error.rb +207 -0
  48. data/lib/selenium/webdriver/common/file_reaper.rb +47 -0
  49. data/lib/selenium/webdriver/common/html5/local_storage.rb +42 -0
  50. data/lib/selenium/webdriver/common/html5/location.rb +0 -0
  51. data/lib/selenium/webdriver/common/html5/session_storage.rb +44 -0
  52. data/lib/selenium/webdriver/common/html5/shared_web_storage.rb +42 -0
  53. data/lib/selenium/webdriver/common/json_helper.rb +34 -0
  54. data/lib/selenium/webdriver/common/keyboard.rb +55 -0
  55. data/lib/selenium/webdriver/common/keys.rb +109 -0
  56. data/lib/selenium/webdriver/common/log_entry.rb +29 -0
  57. data/lib/selenium/webdriver/common/logs.rb +23 -0
  58. data/lib/selenium/webdriver/common/mouse.rb +72 -0
  59. data/lib/selenium/webdriver/common/navigation.rb +43 -0
  60. data/lib/selenium/webdriver/common/options.rb +136 -0
  61. data/lib/selenium/webdriver/common/platform.rb +218 -0
  62. data/lib/selenium/webdriver/common/port_prober.rb +42 -0
  63. data/lib/selenium/webdriver/common/profile_helper.rb +67 -0
  64. data/lib/selenium/webdriver/common/proxy.rb +149 -0
  65. data/lib/selenium/webdriver/common/search_context.rb +92 -0
  66. data/lib/selenium/webdriver/common/socket_poller.rb +105 -0
  67. data/lib/selenium/webdriver/common/target_locator.rb +81 -0
  68. data/lib/selenium/webdriver/common/timeouts.rb +38 -0
  69. data/lib/selenium/webdriver/common/touch_action_builder.rb +64 -0
  70. data/lib/selenium/webdriver/common/touch_screen.rb +105 -0
  71. data/lib/selenium/webdriver/common/wait.rb +63 -0
  72. data/lib/selenium/webdriver/common/window.rb +104 -0
  73. data/lib/selenium/webdriver/common/zipper.rb +82 -0
  74. data/lib/selenium/webdriver/firefox.rb +37 -0
  75. data/lib/selenium/webdriver/firefox/binary.rb +158 -0
  76. data/lib/selenium/webdriver/firefox/bridge.rb +70 -0
  77. data/lib/selenium/webdriver/firefox/extension.rb +52 -0
  78. data/lib/selenium/webdriver/firefox/launcher.rb +106 -0
  79. data/lib/selenium/webdriver/firefox/profile.rb +263 -0
  80. data/lib/selenium/webdriver/firefox/profiles_ini.rb +62 -0
  81. data/lib/selenium/webdriver/firefox/socket_lock.rb +61 -0
  82. data/lib/selenium/webdriver/firefox/util.rb +29 -0
  83. data/lib/selenium/webdriver/ie.rb +19 -0
  84. data/lib/selenium/webdriver/ie/bridge.rb +68 -0
  85. data/lib/selenium/webdriver/ie/server.rb +86 -0
  86. data/lib/selenium/webdriver/iphone.rb +9 -0
  87. data/lib/selenium/webdriver/iphone/bridge.rb +45 -0
  88. data/lib/selenium/webdriver/opera.rb +24 -0
  89. data/lib/selenium/webdriver/opera/bridge.rb +112 -0
  90. data/lib/selenium/webdriver/opera/service.rb +49 -0
  91. data/lib/selenium/webdriver/phantomjs.rb +22 -0
  92. data/lib/selenium/webdriver/phantomjs/bridge.rb +59 -0
  93. data/lib/selenium/webdriver/phantomjs/service.rb +90 -0
  94. data/lib/selenium/webdriver/remote.rb +22 -0
  95. data/lib/selenium/webdriver/remote/bridge.rb +644 -0
  96. data/lib/selenium/webdriver/remote/capabilities.rb +267 -0
  97. data/lib/selenium/webdriver/remote/commands.rb +193 -0
  98. data/lib/selenium/webdriver/remote/http/common.rb +74 -0
  99. data/lib/selenium/webdriver/remote/http/curb.rb +79 -0
  100. data/lib/selenium/webdriver/remote/http/default.rb +139 -0
  101. data/lib/selenium/webdriver/remote/http/persistent.rb +38 -0
  102. data/lib/selenium/webdriver/remote/response.rb +97 -0
  103. data/lib/selenium/webdriver/remote/server_error.rb +17 -0
  104. data/lib/selenium/webdriver/safari.rb +46 -0
  105. data/lib/selenium/webdriver/safari/bridge.rb +110 -0
  106. data/lib/selenium/webdriver/safari/browser.rb +20 -0
  107. data/lib/selenium/webdriver/safari/extension.rb +120 -0
  108. data/lib/selenium/webdriver/safari/server.rb +145 -0
  109. data/lib/selenium/webdriver/support.rb +5 -0
  110. data/lib/selenium/webdriver/support/abstract_event_listener.rb +28 -0
  111. data/lib/selenium/webdriver/support/block_event_listener.rb +17 -0
  112. data/lib/selenium/webdriver/support/color.rb +110 -0
  113. data/lib/selenium/webdriver/support/event_firing_bridge.rb +112 -0
  114. data/lib/selenium/webdriver/support/select.rb +293 -0
  115. data/ruby.iml +13 -0
  116. data/spec/integration/selenium/client/api/backward_compatible_api_spec.rb +22 -0
  117. data/spec/integration/selenium/client/api/browser_xpath_library_spec.rb +17 -0
  118. data/spec/integration/selenium/client/api/click_spec.rb +39 -0
  119. data/spec/integration/selenium/client/api/cookie_spec.rb +39 -0
  120. data/spec/integration/selenium/client/api/element_spec.rb +14 -0
  121. data/spec/integration/selenium/client/api/highlight_located_element_spec.rb +19 -0
  122. data/spec/integration/selenium/client/api/retrieve_last_remote_control_logs_spec.rb +33 -0
  123. data/spec/integration/selenium/client/api/screenshot_spec.rb +31 -0
  124. data/spec/integration/selenium/client/api/select_window_spec.rb +46 -0
  125. data/spec/integration/selenium/client/api/start_stop_spec.rb +9 -0
  126. data/spec/integration/selenium/client/api/wait_for_ajax_spec.rb +27 -0
  127. data/spec/integration/selenium/client/api/wait_for_element_spec.rb +56 -0
  128. data/spec/integration/selenium/client/api/wait_for_field_value_spec.rb +52 -0
  129. data/spec/integration/selenium/client/api/wait_for_text_spec.rb +98 -0
  130. data/spec/integration/selenium/client/api/webdriver_backed_spec.rb +21 -0
  131. data/spec/integration/selenium/client/sample-app/public/jquery-1.3.2.js +4376 -0
  132. data/spec/integration/selenium/client/sample-app/public/jquery.html +55 -0
  133. data/spec/integration/selenium/client/sample-app/public/prototype-1.6.0.3.js +4320 -0
  134. data/spec/integration/selenium/client/sample-app/public/prototype.html +59 -0
  135. data/spec/integration/selenium/client/sample-app/sample_app.rb +32 -0
  136. data/spec/integration/selenium/client/spec_helper.rb +139 -0
  137. data/spec/integration/selenium/webdriver/app_cache_spec.rb +47 -0
  138. data/spec/integration/selenium/webdriver/browser_connection_spec.rb +20 -0
  139. data/spec/integration/selenium/webdriver/chrome/driver_spec.rb +28 -0
  140. data/spec/integration/selenium/webdriver/chrome/profile_spec.rb +63 -0
  141. data/spec/integration/selenium/webdriver/driver_spec.rb +266 -0
  142. data/spec/integration/selenium/webdriver/element_spec.rb +191 -0
  143. data/spec/integration/selenium/webdriver/error_spec.rb +30 -0
  144. data/spec/integration/selenium/webdriver/firefox/driver_spec.rb +21 -0
  145. data/spec/integration/selenium/webdriver/firefox/profile_spec.rb +141 -0
  146. data/spec/integration/selenium/webdriver/keyboard_spec.rb +57 -0
  147. data/spec/integration/selenium/webdriver/location_spec.rb +29 -0
  148. data/spec/integration/selenium/webdriver/mouse_spec.rb +57 -0
  149. data/spec/integration/selenium/webdriver/navigation_spec.rb +46 -0
  150. data/spec/integration/selenium/webdriver/opera/driver_spec.rb +47 -0
  151. data/spec/integration/selenium/webdriver/options_spec.rb +77 -0
  152. data/spec/integration/selenium/webdriver/remote/driver_spec.rb +19 -0
  153. data/spec/integration/selenium/webdriver/remote/element_spec.rb +26 -0
  154. data/spec/integration/selenium/webdriver/spec_helper.rb +36 -0
  155. data/spec/integration/selenium/webdriver/spec_support.rb +12 -0
  156. data/spec/integration/selenium/webdriver/spec_support/guards.rb +110 -0
  157. data/spec/integration/selenium/webdriver/spec_support/helpers.rb +51 -0
  158. data/spec/integration/selenium/webdriver/spec_support/rack_server.rb +123 -0
  159. data/spec/integration/selenium/webdriver/spec_support/test_environment.rb +239 -0
  160. data/spec/integration/selenium/webdriver/sql_database_spec.rb +59 -0
  161. data/spec/integration/selenium/webdriver/storage_spec.rb +96 -0
  162. data/spec/integration/selenium/webdriver/target_locator_spec.rb +186 -0
  163. data/spec/integration/selenium/webdriver/timeout_spec.rb +69 -0
  164. data/spec/integration/selenium/webdriver/touch_spec.rb +176 -0
  165. data/spec/integration/selenium/webdriver/window_spec.rb +70 -0
  166. data/spec/integration/selenium/webdriver/zipper_spec.rb +66 -0
  167. data/spec/unit/selenium/client/base_spec.rb +239 -0
  168. data/spec/unit/selenium/client/extensions_spec.rb +174 -0
  169. data/spec/unit/selenium/client/idiomatic_spec.rb +500 -0
  170. data/spec/unit/selenium/client/javascript_expression_builder_spec.rb +79 -0
  171. data/spec/unit/selenium/client/javascript_frameworks/jquery_spec.rb +10 -0
  172. data/spec/unit/selenium/client/javascript_frameworks/prototype_spec.rb +10 -0
  173. data/spec/unit/selenium/client/protocol_spec.rb +124 -0
  174. data/spec/unit/selenium/client/selenium_helper_spec.rb +56 -0
  175. data/spec/unit/selenium/client/spec_helper.rb +24 -0
  176. data/spec/unit/selenium/rake/task_spec.rb +79 -0
  177. data/spec/unit/selenium/server_spec.rb +150 -0
  178. data/spec/unit/selenium/webdriver/action_builder_spec.rb +97 -0
  179. data/spec/unit/selenium/webdriver/android/bridge_spec.rb +43 -0
  180. data/spec/unit/selenium/webdriver/chrome/bridge_spec.rb +137 -0
  181. data/spec/unit/selenium/webdriver/chrome/profile_spec.rb +57 -0
  182. data/spec/unit/selenium/webdriver/chrome/service_spec.rb +44 -0
  183. data/spec/unit/selenium/webdriver/error_spec.rb +41 -0
  184. data/spec/unit/selenium/webdriver/firefox/bridge_spec.rb +47 -0
  185. data/spec/unit/selenium/webdriver/ie/bridge_spec.rb +91 -0
  186. data/spec/unit/selenium/webdriver/iphone/bridge_spec.rb +42 -0
  187. data/spec/unit/selenium/webdriver/log_entry_spec.rb +11 -0
  188. data/spec/unit/selenium/webdriver/opera/bridge_spec.rb +44 -0
  189. data/spec/unit/selenium/webdriver/phantomjs/bridge_spec.rb +55 -0
  190. data/spec/unit/selenium/webdriver/proxy_spec.rb +106 -0
  191. data/spec/unit/selenium/webdriver/remote/bridge_spec.rb +16 -0
  192. data/spec/unit/selenium/webdriver/remote/capabilities_spec.rb +115 -0
  193. data/spec/unit/selenium/webdriver/remote/http/common_spec.rb +24 -0
  194. data/spec/unit/selenium/webdriver/remote/http/default_spec.rb +124 -0
  195. data/spec/unit/selenium/webdriver/search_context_spec.rb +61 -0
  196. data/spec/unit/selenium/webdriver/socket_poller_spec.rb +68 -0
  197. data/spec/unit/selenium/webdriver/spec_helper.rb +27 -0
  198. data/spec/unit/selenium/webdriver/support/color_spec.rb +119 -0
  199. data/spec/unit/selenium/webdriver/support/event_firing_spec.rb +111 -0
  200. data/spec/unit/selenium/webdriver/support/select_spec.rb +290 -0
  201. data/spec/unit/selenium/webdriver/wait_spec.rb +49 -0
  202. metadata +370 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 35513f3870c83118e2e34b8e0af45013a067ec18
4
+ data.tar.gz: 83537d3b3ff351317c4e8cbae0c726ecc53e4c36
5
+ SHA512:
6
+ metadata.gz: c73a3b6d49a42d616a28d8cfd86ff9a1d0222f5b719cd107279ca3088fd9be122f88d16ac49181abab890a4993ca9c19ef142abc3a5b14d51e0a3ace03c0b8fa
7
+ data.tar.gz: 593c5cfa2bf44eb941b54108928c7a4c51b324aec0449d2f8ac972d3f541e6b0e5a286b7560ede52d494e858c54be5d90211748b756709d795b1c8d5eb154dd5
data/CHANGES ADDED
@@ -0,0 +1,791 @@
1
+ 2.38.0 (???)
2
+ ============
3
+
4
+ * Enforce required ruby version in gemspec, not just through rubyzip.
5
+ * Expose the logging API (beta, subject to change) in the Ruby client: driver.manage.logs #=> Selenium::WebDriver::Logs
6
+
7
+
8
+ 2.37.0 (2013-10-18)
9
+ ===================
10
+
11
+ * As of this version, selenium-webdriver no longer supports Ruby < 1.9.2
12
+ * Depend on rubyzip ~> 1.0.0
13
+ * Added SOCKS proxy support
14
+ * Fixed support for SVG documents in the atoms.
15
+ * Fixed computing an element's container dimensions to account for the scrollbar size when scrolling
16
+ * Added Capabilities.htmlunitwithjs
17
+
18
+ Chrome:
19
+ * Pass through the prefs option as a Chrome capability (#5929).
20
+ Firefox:
21
+ * Updated Firefox native event components to support Firefox 24.
22
+ * New elementScrollBehavior capability.
23
+ * Fixed getLocation to work on scrolled pages.
24
+ * Fixed autoscrolling for elements located in frames.
25
+ * Fixed drag-n-drop for elements in frames with native events
26
+ IE:
27
+ * Use native events by default, also for remote IE (#4695)
28
+ Safari:
29
+ * Enable screenshots and input devices in the client.
30
+
31
+ 2.35.1 (2013-08-26)
32
+ ===================
33
+
34
+ * Depend on rubyzip < 1.0.0
35
+
36
+ 2.35.0 (2013-08-14)
37
+ ===================
38
+
39
+ Firefox:
40
+ * Updated Firefox native event components to support Firefox 23.
41
+
42
+ 2.34.0 (2013-08-06)
43
+ ===================
44
+
45
+ Remote:
46
+ * Add `Driver#remote_status` (remote driver only) (#5669)
47
+ Firefox:
48
+ * Updated Firefox native event components to support Firefox 22.
49
+ iPhone:
50
+ * The driver is now deprecated (see http://appium.io/ or http://ios-driver.github.io/ios-driver/ for a replacement)
51
+ Various:
52
+ * Updated our copy of the Closure compiler and library to the most
53
+ recent versions.
54
+ * Updated the atoms library, including support for MS pointer events
55
+ and refinements to element visibility tests.
56
+ * Update synthesized mouse implementation. Mouse moves are
57
+ implemented using nsIDOMWindowUtils.
58
+ * Added support for the HTML5 "hidden" attribute. If an element, or
59
+ ancestor, has hidden attribute make, it is not shown.
60
+
61
+ 2.33.0 (2013-05-26)
62
+ ===================
63
+
64
+ Remote:
65
+ * Support rotating devices, such as iPhone & iPad in simulator and Android browser in emulator
66
+ * Support for interacting with touch screen devices, such as iPhone & iPad in simulator and Android browser in emulator
67
+ * Improve error messages for invalid wire protocol responses
68
+ Chrome:
69
+ * Accept :service_log_path for Chrome. (#3475)
70
+ IE:
71
+ * IE >=9 versions triggerMouseEvent like other browsers (#2218).
72
+ Various:
73
+ * Element#text ignores elements in <head>
74
+
75
+
76
+ 2.32.1 (2013-04-11)
77
+ ===================
78
+
79
+ Safari:
80
+ * Fix typo when encoding the Safari server redirect URL (#5472)
81
+
82
+ 2.32.0 (2013-04-09)
83
+ ===================
84
+
85
+ Safari:
86
+ * The Safari extension is now packaged with the gem and automatically installed (#5322)
87
+ * Improved detection of the binary location on 64-bit windows (#5273)
88
+ Opera:
89
+ * Allow passing :desired_capabailities (#5279)
90
+ Firefox:
91
+ * This release supports versions 10esr, 17esr, 19, 20.
92
+ * Improved SVG support
93
+ Other:
94
+ * Allow #click_and_hold without target (#5410).
95
+ * Remove assumptions about returned capabilities (for ios-driver)
96
+
97
+ 2.31.0 (2013-03-02)
98
+ ===================
99
+
100
+ Remote:
101
+ * Expose session_id on the remote driver when used directly (#5240).
102
+ Firefox:
103
+ * Native events in Firefox 19
104
+ Opera:
105
+ * Treat UNSPECIFIED proxy type as a nil proxy (#5081).
106
+ Other:
107
+ * Add ability to pass :desired_capabilities to all the Ruby drivers, not just for :remote.
108
+ Direct arguments take presendence. (#5078, see also https://github.com/SeleniumHQ/selenium/pull/8, https://github.com/SeleniumHQ/selenium/pull/11)
109
+
110
+ 2.30.0 (2013-02-20)
111
+ ===================
112
+
113
+ Firefox:
114
+ * Firefox 19 support (for synthesized events)
115
+ Remote:
116
+ * Pass along firefox_binary correctly (#5152)
117
+ Safari:
118
+ * Don't overwrite Driver#browser
119
+ Other
120
+ * Alert#text should raise on closed alert.
121
+
122
+ 2.29.0 (2013-01-21)
123
+ ===================
124
+
125
+ Firefox:
126
+ * Firefox 18 support (for native events).
127
+ IE:
128
+ * New 'requireWindowFocus' desired capability.
129
+ * IE view port calculation take scroll bars into account (#3602)
130
+ Safari:
131
+ * Replace 'libwebsocket' with 'websocket' gem. This should ensure
132
+ support with recent Safari.
133
+ Other:
134
+ * Fix Cygwin issue in PortProber/Firefox::Bianry (#4963)
135
+
136
+ 2.27.2 (2012-12-11)
137
+ ===================
138
+
139
+ Firefox:
140
+ * Fix for native events in v17 (packaging mistake)
141
+
142
+ 2.27.1 (2012-12-07)
143
+ ===================
144
+
145
+ Firefox:
146
+ * Fix "g[b] is not an object" error when passing null to execute_script.
147
+
148
+ 2.27.0 (2012-12-06)
149
+ ===================
150
+
151
+ Firefox:
152
+ * Support for Firefox 17.
153
+ IE:
154
+ * Path to the server executable can be specified (S::W::IE.path=)
155
+ Other:
156
+ * Added :phantomjs driver
157
+
158
+ 2.26.0 (2012-11-02)
159
+ ===================
160
+
161
+ Firefox:
162
+ * Added support for native events for Firefox 15 and 16.
163
+ * Modified FirefoxDriver to use atoms to switch between frames.
164
+ * FIXED: 4309: 'Could not convert Native argument arg 0' error with Firefox.
165
+ * FIXED: 4375: Executing javascript hangs Firefox.
166
+ * FIXED: 4165: WebDriver fails on a machine with no IP address.
167
+ Safari:
168
+ * Fixed SafariDriver to allow calling .quit() consecutively without error.
169
+ * FIXED: 4676: Unable to fire javascript events into SVG's.
170
+ * FIXED: 3969: SafariDriver should auto-dismiss alerts.
171
+ IE:
172
+ * FIXED: 4535: Hover still does not work perfectly in IE.
173
+ * FIXED: 4593: Alert.accept() Cancels the Resend Alert/Dialog Box.
174
+
175
+ 2.25.0 (2012-07-19)
176
+ ===================
177
+
178
+ * Respect no_proxy / NO_PROXY env vars (#4007).
179
+ * Improve error message if a configured proxy refuses the connection.
180
+ * Ignored exception can be configured on the Wait class.
181
+ * Add Selenium::WebDriver::Support::Color class.
182
+ * Ignore Errno::ENETUNREACH when trying to detect our local IP (#4165).
183
+ * Ignore Errno::EADDRNOTAVAIL in PortProber (#3987).
184
+ * Firefox:
185
+ * Enumerate through client rects until finding one with non-zero dimensions when clicking.
186
+ * Updated supported versions of Firefox to 17.
187
+ * Allow windows to be resized from a frame (#3897).
188
+ * Fix an issue where a call to submit could hang the driver.
189
+ * IE:
190
+ * Ability to configure logging through the :log_file and :log_level options.
191
+ * Increasing stability of file upload dialog handling (#3858)
192
+ * Better handling of overflow edge cases when determining element visibility.
193
+
194
+ 2.24.0 (2012-06-19)
195
+ ===================
196
+
197
+ * bot.dom.getVisibleText does not properly handle display:run-in or display:table (#1584).
198
+ * CSS selectors now support compound selectors.
199
+ * IE:
200
+ * Failure to click on an element in the IE Driver will yield a more meaningful error.
201
+ * Crash on IE8 when S_FALSE is returned from get_Document (#4064)
202
+ * DLLs are no longer bundled with the gem, users must use the standalone server from now on.
203
+ * Firefox:
204
+ * Support for Firefox 13
205
+ * Ability to pass :proxy directly as Firefox option (no Profile needed).
206
+
207
+ 2.22.2 (2012-06-05)
208
+ ===================
209
+
210
+ * Improve method for determining the local IP (#3987).
211
+
212
+ 2.22.1 (2012-06-01)
213
+ ===================
214
+
215
+ * Fix for 1.8.7 behaviour of Socket.getaddrinfo.
216
+ * Automatically reap Firefox profile on exit, not just in #quit.
217
+
218
+ 2.22.0 (2012-05-29)
219
+ ===================
220
+
221
+ * Fix conflict with ActiveSupport's Object#load (#3819)
222
+ * IE:
223
+ * Default to standalone server executable, fall back to bundled DLLs.
224
+ * The 'nativeEvents' capabilitiy is exposed as :native_events in the Ruby client (mode still experimental).
225
+ * Firefox:
226
+ * Native events for Firefox 12.
227
+ * Native events retained for Firefox 3.x, 10 and 11.
228
+ * Fix for typing in Firefox 12
229
+ * Fix for typing on XHTML pages (#3647)
230
+ * Fix for maximizing windows when switched to a frame (#3758)
231
+ * Handle alerts from nested iframes (#3825)
232
+ * Remote:
233
+ * Honor HTTP_PROXY env vars (#3838).
234
+ * Element#attribute returns nil if a boolean attribute is not present.
235
+ * NoSuchWindowError will be thrown if the currently selected window is closed and another command is sent.
236
+ * Safari:
237
+ * support for frame switching, snapshot taking, execute script
238
+ * message protocol changed, not backwards compatible with 2.21.
239
+ * Style attributes are no longer lower-cased by default (#1089).
240
+ * Make sure the Ruby client kills Firefox even when the RPC fails.
241
+ * Make sure the Ruby client checks all network interfaces when finding free ports.
242
+
243
+
244
+ 2.21.2 (2012-04-18)
245
+ ===================
246
+
247
+ * Check MultiJson.respond_to?, depend on ~> 1.0
248
+
249
+ 2.21.1 (2012-04-16)
250
+ ===================
251
+
252
+ * Set multi_json dependency to < 1.3 to avoid deprecation warnings.
253
+
254
+ 2.21.0 (2012-04-11)
255
+ ===================
256
+
257
+ * Add Selenium::WebDriver::Window#maximize (#3489)
258
+ * Safari:
259
+ * New driver! See http://code.google.com/p/selenium/wiki/SafariDriver.
260
+ * Firefox:
261
+ * Significant stability improvements.
262
+ * Native events support for Firefox 11
263
+ * Dropped native events support for Firefox 4-9
264
+ * Window maximize implementation.
265
+ * IE:
266
+ * Ignore invisible dialogs (#3360).
267
+ * Window maximize implementation.
268
+ * Android:
269
+ * Accept SSL certificates (#3504).
270
+
271
+ 2.20.0 (2012-02-28)
272
+ ===================
273
+
274
+ * Loosen the multi_json and ffi dependencies (#3446)
275
+ * Firefox:
276
+ * Introduce a timeout for page loads. This needs to be used in
277
+ conjunction with the unstable page load detection. Exposed as
278
+ Timeouts#page_load=
279
+ * Scroll containing elements, not just windows (#3391).
280
+ * Element#{style => css_value}, with an alias for backwards compatibility.
281
+ * Atoms:
282
+ * Submit a form when the enter button is pressed in its input
283
+ element.
284
+ * Add a "mouse pixel scroll" event to the atoms events module.
285
+ * Adding a public "mouseOver" action and a little internal
286
+ refactoring around the mouseOver functionality.
287
+ * Selenium::WebDriver::Wait: polling interval reduced from 0.5 to 0.2 seconds.
288
+
289
+ 2.19.0 (2012-02-08)
290
+ ===================
291
+
292
+ * RC client supports server-side WebDriver-backed Selenium.
293
+ * Touch APIs implemented in the Ruby client (Android only)
294
+ * Firefox:
295
+ * Fix deserialization of user.js in Firefox::Profile
296
+ * Native events implemented for Firefox 10.
297
+ * Renamed the experimental "fast" page loaded strategy "unstable"
298
+ and disable queuing of commands when it's enabled.
299
+ * Disabled native events for Firefox 8 as it's deprecated by Mozilla.
300
+ * Fix for exceptions thrown when an alert occurs during script execution.
301
+ * Chrome:
302
+ * New download link for the server component:
303
+ http://code.google.com/p/chromedriver/downloads/list
304
+
305
+ 2.18.0 (2012-01-27)
306
+ ===================
307
+
308
+ * Fix for getting value attribute of option elements. (#3169)
309
+ * Firefox and IE:
310
+ * Raise UnhandledAlertError if an alert is present during an operation. The unhandled alert is also dismissed to mitigate repeat exceptions.
311
+ * Firefox:
312
+ * Better handling of getText invocations on SVG elements.
313
+ * Fix for Element#click in Firefox 4. (#3253)
314
+ * Fixed bug when deserializing user.js in Firefox::Profile.
315
+ * Default profile preferences now read from shared JSON blob.
316
+ * Android and iPhone:
317
+ * Client support for the geolocation API (see Selenium::WebDriver::DriverExtensions::HasLocation)
318
+ * Client support for the web storage API (see Selenium::WebDriver::DriverExtensions::HasWebStorage)
319
+ * iPhone:
320
+ * Server now supports frame switching (for frames in the same domain).
321
+
322
+ 2.17.0 (2012-01-16)
323
+ ===================
324
+
325
+ * Firefox:
326
+ * Fix excessive unwrapping when switching windows.
327
+ * Set toolkit.telemetry.{enabled,rejected} in the default Firefox profile.
328
+ * Support up to version 12 with synthesized events.
329
+ * Fixed issues launching Firefox 9 due to modal dialog (#3154, #3144)
330
+ * Chrome:
331
+ * Now accepts a :url option, pointing to an already running Chrome server.
332
+ * Now accepts a :proxy option (i.e. Selenium::WebDriver::Proxy instance).
333
+ * iPhone:
334
+ * iWebDriver will auto-play HTML5 video (#3152)
335
+ * Element#attribute("value") falls back to the text of option tags, if no value attribute is specified (#3169)
336
+
337
+ 2.16.0 (2012-01-04)
338
+ ===================
339
+
340
+ * Firefox:
341
+ * Native events support for Firefox 9
342
+ * Allow apps to use offline storage by default
343
+ * Fix excessive unwrapping when executing mouseMove
344
+ * Click in the middle, rather than the top-left of elements (#3034, #2700)
345
+ * IE:
346
+ * Raise StaleElementReferenceError when interacting with elements outside the currently focused frame
347
+ * Handle frames and iframes in showModalDialog windows
348
+ * Chrome:
349
+ * Improve client handling of invalid error responses
350
+ * iPhone:
351
+ * Updated to latest CocoaHTTPServer
352
+ * Remote:
353
+ * Improve performance of Element#== by only making an RPC when necessary.
354
+ * Disallow caching of GET requests
355
+ * Various:
356
+ * Raise ArgumentError instead of UnsupportedOperationError on invalid modifier key
357
+ * Improve docs for Server, ActionBuilder and Window
358
+ * Update to latest Sizzle (used for :css selectors in older browsers)
359
+
360
+ 2.15.0 (2011-12-08)
361
+ ===================
362
+
363
+ * Firefox:
364
+ * Now supports up to Firefox 11 (for syntesized events)
365
+ * Implicit waits now change how long we wait for alerts. This
366
+ functionality will change in 2.16
367
+ * Fix scrolling issue (#2700)
368
+ * IE:
369
+ * Fix issue with getWindowHandles() and showModalDialog() (#1828)
370
+ * Add support for the window sizing and positioning API
371
+ * Make Platform.bitsize use the correct constant from FFI
372
+ * WebDriver internals:
373
+ * Atoms code contribution from Google
374
+ * Closure updated
375
+
376
+
377
+ 2.14.0 (2011-11-29)
378
+ ===================
379
+
380
+ * Add Selenium::WebDriver::Support::Select class to ease working with select lists.
381
+ * Add Capabilities.ipad and Capabilities.iphone (#2895)
382
+ * Replace json_pure dependency with multi_json. (#2901)
383
+ * Don't leave sockets hanging in SYN_SENT state while polling.
384
+ * Allow selecting option elements even if the enclosing select has zero opacity.
385
+ * Exception renames (old names aliased and will still work in rescues):
386
+ * ObsoleteElementError -> StaleElementReferenceError
387
+ * UnhandledError -> UnknownError
388
+ * UnexpectedJavascriptError -> JavascriptError
389
+ * NoAlertOpenError -> NoAlertPresentError
390
+ * ElementNotDisplayedError -> ElementNotVisibleError
391
+ * Firefox:
392
+ * Fixed issue with scrolling on small viewports with native events.
393
+ * Fix CSS selector support in Firefox 3.0
394
+ * IE:
395
+ * Implement the window control API
396
+
397
+ 2.13.0 (2011-11-18)
398
+ ===================
399
+
400
+ * Firefox:
401
+ * Recovering from null window references in the Firefox driver (#1438)
402
+
403
+ 2.12.2 (2011-11-13)
404
+ ===================
405
+
406
+ * Firefox
407
+ * Fix issue where Firefox 8 would throw permission errors after document.domain was modified (#2863).
408
+ * Force window to the foreground on launch (see https://bugzilla.mozilla.org/show_bug.cgi?id=566671)
409
+
410
+ 2.12.1 (2011-11-11)
411
+ ===================
412
+
413
+ * Fix regression when typing into contenteditable elements.
414
+
415
+ 2.12.0 (2011-11-10)
416
+ ===================
417
+
418
+ * Loosened the ffi dependency now that Windows support is back (#2755).
419
+ * Fix shutdown issues when using net-http-persistent against remote servers.
420
+ * Added beta window control API (see Selenium::WebDriver::Options#window).
421
+ * Firefox
422
+ * Support for Firefox 8.
423
+ * Better reporting of page size when attempting to move out of bounds.
424
+ * Beta implementation of window control.
425
+
426
+ 2.11.0
427
+ ======
428
+
429
+ (release skipped since it included only server-side changes)
430
+
431
+ 2.10.0 (2011-10-27)
432
+ ===================
433
+
434
+ * Improve native keyboard emulation on Windows.
435
+ * Allow commas in CSS selectors (#2301)
436
+ * Firefox:
437
+ * Fix intermittent error when finding elements by XPath (#2099)
438
+ * Fix detection of maximum page size (#2700)
439
+ * Avoid extension selection dialog (extensions.autoDisableScopes)
440
+ * Fix invalid wire responses from the synthetic mouse (#2695)
441
+ * Don't scroll unnecessarily (#1771).
442
+ * IE:
443
+ * Improve handling of #clear on disabled or readonly elements.
444
+
445
+ 2.9.1 (2011-10-24)
446
+ ==================
447
+
448
+ * Workaround for invalid error responses (#2695).
449
+
450
+ 2.9.0 (2011-10-21)
451
+ ==================
452
+
453
+ * Support file uploads to the remote server (see Selenium::WebDriver::DriverExtensions::UploadsFiles)
454
+ * New exception: Selenium::WebDriver::Error::MoveTargetOutOfBoundsError
455
+ * Implemented Chrome::Profile#add_extension
456
+ * Better respect for preformatted text in Element#text
457
+ * Reduced scrolling during tests for IE and Firefox.
458
+ * Firefox:
459
+ * Support for experimental page load detection.
460
+ * IE:
461
+ * Better detection of where to click on links (#2675).
462
+ * Improve handling of modal dialogs (showModalDialog).
463
+
464
+ 2.8.0 (2011-10-06)
465
+ ==================
466
+
467
+ * Firefox
468
+ - Avoid telemetry prompt on Firefox 7
469
+ - Allow parallel execution with native events on Linux (#1326)
470
+ - Added native events support for Firefox 7 on Linux/Windows
471
+ - Improve search for libX11 for native events on Linux (#384)
472
+ - Fix double click with native events
473
+ * Chrome
474
+ - Fail fast if the chromedriver server is not executable.
475
+ * IE
476
+ - Fix find_element bug (#2563)
477
+
478
+
479
+ 2.7.0 (2011-09-23)
480
+ ==================
481
+
482
+ * Firefox
483
+ - no longer types in the URL bar (#2487)
484
+ - fixed native events click() issue when element is out of view
485
+ - double click + get no longer hangs firefox (#2456)
486
+ - make sure escaped backslashes are properly escaped when serializing a Firefox profile (#2485)
487
+ * IE
488
+ - fix event firing issue (#2516)
489
+ * Opera
490
+ - don't start the remote service if the driver is passed bad arguments
491
+
492
+ 2.6.0 (2011-09-13)
493
+ ==================
494
+
495
+ * Rescue and retry on Errno::EADDRINUSE to work around ephemeral ports issue on Windows.
496
+ * Use correct default URL for the Android driver.
497
+ * Profile zipping now follows symlinks (#2416).
498
+ * Firefox
499
+ - Disable malware check
500
+ - Various #click improvements
501
+ - Don't scroll if element is already in view
502
+ * IE:
503
+ - improve scrolling to elements with 'overflow: scroll'
504
+ - properly trigger jQuery change events (#2207)
505
+ - improve handling of nested modal dialogs
506
+ * Opera:
507
+ - capabilities exposed as options to Selenium::WebDriver.for
508
+ * Various iPhone driver fixes (e.g. #1396)
509
+
510
+ 2.5.0 (2011-08-23)
511
+ ==================
512
+
513
+ * IE: support for double click and fix for clicks close to edge of window.
514
+ * Fix for clicking links that overflow into multiple lines (#1020).
515
+ * Correct initial cursor position when typing into text fields with Firefox 6.
516
+ * Native events support for Firefox 6 on Windows and Linux.
517
+ * Fix bug in Android::Bridge when no :http_client option was passed.
518
+ * Set chrome.detach to tell chromedriver to leave browser running on exit.
519
+
520
+ 2.4.0 (2011-08-11)
521
+ ==================
522
+
523
+ * Firefox 6 support.
524
+ * Raise in switch_to.alert when no alert is present.
525
+ * Improved handling of non-breaking spaces for Element#text.
526
+
527
+ 2.3.2 (2011-08-01)
528
+ ==================
529
+
530
+ * Re-releasing since 2.3.1 was a buggy build.
531
+
532
+ 2.3.1 (2011-08-01)
533
+ ==================
534
+
535
+ * Fix bug where Firefox would hang if Firefox::Profile#log_file= was set.
536
+
537
+ 2.3.0 (2011-08-01)
538
+ ==================
539
+
540
+ * Add Selenium::WebDriver::Chrome::Profile
541
+ * Better detection of clickable areas in Firefox.
542
+ * Merge of Google-contributed code into the underlying Atoms.
543
+ * IE click issue fixed (#1650)
544
+ * No longer raise in Element#inspect if the element is obsolete.
545
+
546
+
547
+ 2.2.0 (2011-07-26)
548
+ ==================
549
+
550
+ * Add ability to listen for WebDriver events
551
+ * Fix Android/iPhone bridges to work similar to others (https://github.com/jnicklas/capybara/issues/425)
552
+ * Various atoms fixes
553
+ * Element equality now works properly with the remote server (#251).
554
+
555
+ 2.1.0 (2011-07-18)
556
+ ==================
557
+
558
+ * Various improvments to the IE driver (#2049, #1870)
559
+ * Atoms fixes (#1776, #1972).
560
+ * Synthetic mouse clicks do not propagate errors in onmouseover.
561
+
562
+ 2.0.1 (2011-07-11)
563
+ ==================
564
+
565
+ * Make sure at_exit hooks aren't inherited by child processes.
566
+
567
+ 2.0.0 (2011-07-08)
568
+ ==================
569
+
570
+ * Remove deprecated methods Element#{toggle,select,drag_and_drop_*,value}.
571
+ * Add ability to pass :verbose, :native_events to the Chrome driver.
572
+ * Synthetic mouse implementation for Firefox - improves drag and drop support platforms without native events.
573
+ * Added Selenium::WebDriver::Opera (requires the remote server).
574
+ * Fix for locating Firefox on 64-bit Windows when missing from the registry.
575
+ * Fix native events on Firefox 4, 5.
576
+
577
+ 0.2.2 (2011-06-22)
578
+ ==================
579
+
580
+ * Deprecate Element#{toggle,select,drag_and_drop_*}
581
+ * Chrome.path= now sets the path to Chrome, Chrome.driver_path= the path to the chromedriver server.
582
+ * Fix argument names in Mouse#move_to and Mouse#move_by.
583
+ * Support Firefox 5
584
+ * Chrome and Firefox drivers now includes the HasInputDevices module.
585
+ * Selenium::Rake::ServerTask now works with Rake 0.9.
586
+
587
+ 0.2.1 (2011-06-01)
588
+ ==================
589
+
590
+ * Allow passing custom command line switches to Chrome (requires today's release of the Chrome server)
591
+ * Avoid mutating arguments to find_element (issue #1273).
592
+ * Avoid conflicts when SUT modifies Array.prototype
593
+ * Allow setting arbitrary capabilities by adding Capabilities#[]=
594
+ * The Chrome driver is extended with TakesScreenshot.
595
+ * IE driver detects bad protected mode settings.
596
+ * Firefox driver no longer considers opacity when determining visibility.
597
+ * Fix for ActionBuilder#move_by.
598
+ * Treat Errno::EBADF as an indication that we failed to grab the socket lock (issue #1611).
599
+ * Ensure Firefox launches don't hang on some Ruby versions (by improving Selenium::WebDriver::SocketPoller).
600
+ * Various internal driver improvements.
601
+
602
+ 0.2.0 (2011-04-22)
603
+ ==================
604
+
605
+ * Update Ruby bindings to use the rewritten Chrome driver (see http://code.google.com/p/selenium/wiki/ChromeDriver).
606
+ * Add deprecation warning for WebDriver::Element#value (use Element#attribute("value") instead).
607
+ * Change the default timeout for Wait instances to 5 seconds.
608
+ * Fix bug where locators would fail if Object.prototype had been modified.
609
+ * Various IE fixes
610
+ - Issues: #698, #1444
611
+ - Improved handling of showModalDialog()
612
+ - Full-size screenshots
613
+ * Allow users to override the dom.max_script_run_time preference in Firefox.
614
+ * Removed DesiredCapabilities.safari, which was never supported anyway.
615
+ * Add DesiredCapabilities.opera, which will be supported in the Remote server if OperaDriver is on the classpath.
616
+ * Print warnings for deprecated constants in the RC client:
617
+ - Selenium::SeleniumDriver => Selenium::Client::Driver
618
+ - Selenium::CommandError => Selenium::Client::CommandError
619
+ * Removed top-level constants:
620
+ - SeleniumHelper (available as Selenium::Client::SeleniumHelper)
621
+ - SeleniumCommandError (available as Selenium::Client::CommandError)
622
+
623
+ 0.1.4 (2011-03-21)
624
+ ==================
625
+
626
+ * Support for Firefox 4.
627
+ * Search PATH for Firefox / Chrome on OS X as well.
628
+ * Bump dependencies for ffi and childprocess (#1356).
629
+ * Find module renamed to SearchContext
630
+ * Deprecated methods Driver#hover and Options#{speed,speed=} removed.
631
+ * Improve IE driver stability, IE9 support
632
+ * Added basic ActionBuilder and HasInputDevices#action. Not applicable for all browsers.
633
+ * Added Driver#execute_async_script
634
+ * Some WebDriver exception classes have been renamed to match its Java equivalents:
635
+ ElementNotEnabledError -> InvalidElementStateError
636
+ UnknownScriptResultError -> XpathLookupError
637
+ * Fix bug where Element#disabled? would alternate between true/false (r11438)
638
+
639
+ 0.1.3 (2011-02-14)
640
+ ==================
641
+
642
+ * Several crashing bugs fixed in the IE driver.
643
+ * Alert API available through the remote driver.
644
+ * Driver#refresh fixed in the IE driver.
645
+ * Fixed paths for IE DLLs on Cygwin.
646
+ * Screenshot support in the IE and Remote drivers.
647
+ * Fix #1152 by avoiding IPv6 loopback.
648
+ * Added Mouse and Keyboard classes, accessible as Driver#{mouse,keyboard}. Considered experimental (IE + HtmlUnit only at the moment).
649
+ * Automation atoms now used extensively in the IE driver.
650
+ * Firefox::Bridge is now easier to extend (i.e. with a custom launcher).
651
+ * Add S::W::Remote::Http::Persistent (currently only usable with the remote server).
652
+ * IE driver passes along options like the other remote drivers, enabling user-specified HTTP clients.
653
+ * :firefox_profile added to Remote::Capabilities, enabling passing a profile to remote Firefoxes.
654
+ * IE driver now supports launching multiple instances of the browser.
655
+ * Remove some Ruby warnings (uninitialized ivars, URI.escape).
656
+
657
+
658
+ 0.1.2 (2010-12-22)
659
+ ==================
660
+
661
+ * Changed frame switching behaviour (http://groups.google.com/group/selenium-developers/browse_thread/thread/8dc7938c35bb3968)
662
+ * IE driver rewrite landed.
663
+ * Initial support for alerts/prompts (in Firefox).
664
+ * Cygwin support.
665
+ * Driver#execute_script now properly wraps elements inside Hashes.
666
+ * Various fixes for Firefox 4.
667
+
668
+ 0.1.1 (2010-11-29)
669
+ ==================
670
+
671
+ * Fix for Chrome.path=
672
+ * Remote drivers always add Content-Length for POST requests (thanks joshuachisholm)
673
+ * Fix for JS execution bug in the IE driver
674
+ * Add ability to specify a proxy on the Http::Default client.
675
+ * The remote drivers' :http_client argument now take a configured instance.
676
+
677
+ 0.1.0 (2010-11-11)
678
+ ===================
679
+
680
+ * selenium-client code (Se1/RC client) is now included in the gem (require "selenium/client").
681
+ * Add Selenium::WebDriver::Proxy, used to configure proxies for Firefox::Profile and the remote driver.
682
+ * Tweaked Firefox profile preferences, improve logging, disabled crash reporter.
683
+ * Reap Firefox profiles on close, not just on exit.
684
+ * Add selenium/rake/server_task and selenium/server which wraps the Selenium server jar.
685
+ * Various Firefox driver improvements (GC race conditions ++).
686
+ * IE::Bridge#initialize now takes an options hash like the other bridges.
687
+ * Added basic iPhone and Android driver classes.
688
+ * Firefox driver now works on FreeBSD.
689
+
690
+
691
+ 0.0.29 (2010-10-09)
692
+ ===================
693
+
694
+ * Element#find_element with :xpath follows the XPath spec (i.e. results are not limited to the receiver's subtree).
695
+ * Element#attribute(attribute) now returns "false" instead of nil.
696
+ * Firefox::Profile instances can now be reused for multiple drivers.
697
+ * Redirect Firefox console logs to a file with Firefox::Profile.log_file=
698
+ * Added a simple Wait class, based on WebDriverWait in Java.
699
+ * Search PATH for Firefox executable on Windows also.
700
+ * Added Capabilities.android
701
+ * Fix saving of screenshots on Windows and Ruby 1.9 (using "wb" mode string)
702
+ * CSS selector support in the remote driver
703
+ * CSS selector support for IE (using querySelector when available, Sizzle elsewhere)
704
+ * CSS selector support for older versions of Firefox (through Sizzle)
705
+ * Cookie expiration dates are now handled correctly (#730)
706
+ * Make Driver#bridge private, since this seems to be a common cause of confusion.
707
+ * Add {Element,Remote::Capabilities}#as_json for Rails 3 (http://jonathanjulian.com/2010/04/rails-to_json-or-as_json/)
708
+ * User can configure path to exectuables with {Firefox,Chrome}.path = "/some/path"
709
+ * Added "chromium" as a possible name for the Chrome binary (#769)
710
+ * Correctly set the HTTP client timeout (#768)
711
+ * switch_to.window with block now handles exceptions and non-local returns.
712
+ * switch_to.window with block returns the result of the block.
713
+ * Extracted handling of child processes to a separate gem: http://github.com/jarib/childprocess
714
+
715
+
716
+ 0.0.28 (2010-08-23)
717
+ ===================
718
+
719
+ * Fix behaviour of Element#==, Element#eql? and Element#hash (#hash still has issues on IE / remote).
720
+ * Include remote server backtrace in raised errors (if available).
721
+ * Chrome: Untrusted certificate support.
722
+ * IE: Fix NoMethodError when getElementAttribute returns nil.
723
+ * Driver#[] shorthand can take a locator hash, not just an id string.
724
+
725
+ 0.0.27 (2010-07-22)
726
+ ===================
727
+
728
+ * Fixes for Element#attribute on IE / Firefox
729
+
730
+ 0.0.26 (2010-07-19)
731
+ ===================
732
+
733
+ * Work around Curb issue: http://github.com/taf2/curb/issues/issue/40
734
+
735
+ 0.0.25 (2010-07-19)
736
+ ===================
737
+
738
+ * Prevent Firefox from launching in offline mode (issue #587).
739
+ * Add ability to set Firefox' binary path through Selenium::WebDriver::Firefox::Binary.path=
740
+ * Add ability to install Firefox XPIs through Profile#add_extension.
741
+ * Better packaging/building of Firefox/Chrome extensions, which adds rubyzip as a dependency.
742
+ * Remote client supports HTTPS (issue #613 - thanks kkaempf).
743
+ * Fix error message for TimeOutError in the IE driver (issue #602)
744
+ * Add ability to use Chrome's default profile.
745
+ * Fix for frame behaviour in Chrome (issue #273).
746
+ * Standard gem directory structure (issue #475).
747
+
748
+ 0.0.24 (2010-06-17)
749
+ ==================
750
+
751
+ * Fix issues with quitting Firefox/Chrome on Windows + MRI.
752
+
753
+
754
+ 0.0.23 (2010-06-15)
755
+ ===================
756
+
757
+ * Improved the HTTP clients:
758
+ - hopefully fix some occasional socket errors on Windows
759
+ - rescue error on driver.close() with curb
760
+
761
+ 0.0.22 (2010-06-11)
762
+ ===================
763
+
764
+ * Bugfix: Workaround for http://github.com/taf2/curb/issues/issue/33 - curb would sometimes use DELETE for GET requests.
765
+ * Minor doc fix
766
+ * Add ability to set timeout for HTTP clients
767
+
768
+ 0.0.21 (2010-06-11)
769
+ ===================
770
+
771
+ * User can specify :http_client for the Firefox driver.
772
+ * Refactor HTTP client code
773
+ * Add Remote::Http::Curb as an alternative to the default (net/http) client.
774
+
775
+
776
+ 0.0.20 (2010-06-03)
777
+ ===================
778
+
779
+ * Fix bug where Firefox would hang on quit().
780
+
781
+ 0.0.19 (2010-05-31)
782
+ ===================
783
+
784
+ * Add a max redirect check to the remote driver
785
+ * Add Firefox::Profile#assume_untrusted_certificate_issuer=
786
+ * Add implicit waits (Selenium::WebDriver::Timeouts)
787
+ * at_exit hook to clean temporary profiles
788
+ * Fix for Errno::ECONNABORTED errors on Windows
789
+ * Fix issue where Firefox::Profile#secure_ssl= would have no effect
790
+ * Fix issue where locating elements by :css would fail in the Chrome driver.
791
+ * IE driver now works on 64-bit rubies.