bbc-selenium-webdriver 1.17.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (168) hide show
  1. data/CHANGES +473 -0
  2. data/README +31 -0
  3. data/lib/selenium-client.rb +2 -0
  4. data/lib/selenium-webdriver.rb +1 -0
  5. data/lib/selenium/client.rb +37 -0
  6. data/lib/selenium/client/base.rb +118 -0
  7. data/lib/selenium/client/driver.rb +10 -0
  8. data/lib/selenium/client/errors.rb +9 -0
  9. data/lib/selenium/client/extensions.rb +118 -0
  10. data/lib/selenium/client/idiomatic.rb +488 -0
  11. data/lib/selenium/client/javascript_expression_builder.rb +116 -0
  12. data/lib/selenium/client/javascript_frameworks/jquery.rb +13 -0
  13. data/lib/selenium/client/javascript_frameworks/prototype.rb +13 -0
  14. data/lib/selenium/client/legacy_driver.rb +1720 -0
  15. data/lib/selenium/client/protocol.rb +104 -0
  16. data/lib/selenium/client/selenium_helper.rb +34 -0
  17. data/lib/selenium/rake/server_task.rb +157 -0
  18. data/lib/selenium/server.rb +223 -0
  19. data/lib/selenium/webdriver.rb +64 -0
  20. data/lib/selenium/webdriver/android.rb +9 -0
  21. data/lib/selenium/webdriver/android/bridge.rb +51 -0
  22. data/lib/selenium/webdriver/chrome.rb +26 -0
  23. data/lib/selenium/webdriver/chrome/bridge.rb +106 -0
  24. data/lib/selenium/webdriver/chrome/profile.rb +83 -0
  25. data/lib/selenium/webdriver/chrome/service.rb +74 -0
  26. data/lib/selenium/webdriver/common.rb +30 -0
  27. data/lib/selenium/webdriver/common/action_builder.rb +352 -0
  28. data/lib/selenium/webdriver/common/alert.rb +26 -0
  29. data/lib/selenium/webdriver/common/bridge_helper.rb +67 -0
  30. data/lib/selenium/webdriver/common/core_ext/base64.rb +9 -0
  31. data/lib/selenium/webdriver/common/core_ext/dir.rb +42 -0
  32. data/lib/selenium/webdriver/common/core_ext/string.rb +5 -0
  33. data/lib/selenium/webdriver/common/driver.rb +301 -0
  34. data/lib/selenium/webdriver/common/driver_extensions/has_input_devices.rb +39 -0
  35. data/lib/selenium/webdriver/common/driver_extensions/rotatable.rb +44 -0
  36. data/lib/selenium/webdriver/common/driver_extensions/takes_screenshot.rb +43 -0
  37. data/lib/selenium/webdriver/common/driver_extensions/uploads_files.rb +46 -0
  38. data/lib/selenium/webdriver/common/element.rb +262 -0
  39. data/lib/selenium/webdriver/common/error.rb +212 -0
  40. data/lib/selenium/webdriver/common/file_reaper.rb +47 -0
  41. data/lib/selenium/webdriver/common/keyboard.rb +52 -0
  42. data/lib/selenium/webdriver/common/keys.rb +109 -0
  43. data/lib/selenium/webdriver/common/mouse.rb +65 -0
  44. data/lib/selenium/webdriver/common/navigation.rb +43 -0
  45. data/lib/selenium/webdriver/common/options.rb +128 -0
  46. data/lib/selenium/webdriver/common/platform.rb +166 -0
  47. data/lib/selenium/webdriver/common/port_prober.rb +25 -0
  48. data/lib/selenium/webdriver/common/profile_helper.rb +67 -0
  49. data/lib/selenium/webdriver/common/proxy.rb +120 -0
  50. data/lib/selenium/webdriver/common/search_context.rb +92 -0
  51. data/lib/selenium/webdriver/common/socket_poller.rb +100 -0
  52. data/lib/selenium/webdriver/common/target_locator.rb +81 -0
  53. data/lib/selenium/webdriver/common/timeouts.rb +29 -0
  54. data/lib/selenium/webdriver/common/wait.rb +60 -0
  55. data/lib/selenium/webdriver/common/window.rb +96 -0
  56. data/lib/selenium/webdriver/common/zipper.rb +82 -0
  57. data/lib/selenium/webdriver/firefox.rb +37 -0
  58. data/lib/selenium/webdriver/firefox/binary.rb +161 -0
  59. data/lib/selenium/webdriver/firefox/bridge.rb +58 -0
  60. data/lib/selenium/webdriver/firefox/extension.rb +52 -0
  61. data/lib/selenium/webdriver/firefox/extension/webdriver.xpi +0 -0
  62. data/lib/selenium/webdriver/firefox/launcher.rb +104 -0
  63. data/lib/selenium/webdriver/firefox/native/linux/amd64/x_ignore_nofocus.so +0 -0
  64. data/lib/selenium/webdriver/firefox/native/linux/x86/x_ignore_nofocus.so +0 -0
  65. data/lib/selenium/webdriver/firefox/profile.rb +315 -0
  66. data/lib/selenium/webdriver/firefox/profiles_ini.rb +62 -0
  67. data/lib/selenium/webdriver/firefox/socket_lock.rb +61 -0
  68. data/lib/selenium/webdriver/firefox/util.rb +29 -0
  69. data/lib/selenium/webdriver/ie.rb +19 -0
  70. data/lib/selenium/webdriver/ie/bridge.rb +60 -0
  71. data/lib/selenium/webdriver/ie/native/win32/IEDriver.dll +0 -0
  72. data/lib/selenium/webdriver/ie/native/x64/IEDriver.dll +0 -0
  73. data/lib/selenium/webdriver/ie/server.rb +64 -0
  74. data/lib/selenium/webdriver/iphone.rb +9 -0
  75. data/lib/selenium/webdriver/iphone/bridge.rb +50 -0
  76. data/lib/selenium/webdriver/opera.rb +24 -0
  77. data/lib/selenium/webdriver/opera/bridge.rb +113 -0
  78. data/lib/selenium/webdriver/opera/service.rb +49 -0
  79. data/lib/selenium/webdriver/remote.rb +21 -0
  80. data/lib/selenium/webdriver/remote/bridge.rb +473 -0
  81. data/lib/selenium/webdriver/remote/capabilities.rb +241 -0
  82. data/lib/selenium/webdriver/remote/commands.rb +181 -0
  83. data/lib/selenium/webdriver/remote/http/common.rb +74 -0
  84. data/lib/selenium/webdriver/remote/http/curb.rb +79 -0
  85. data/lib/selenium/webdriver/remote/http/default.rb +102 -0
  86. data/lib/selenium/webdriver/remote/http/persistent.rb +38 -0
  87. data/lib/selenium/webdriver/remote/response.rb +99 -0
  88. data/lib/selenium/webdriver/remote/server_error.rb +17 -0
  89. data/lib/selenium/webdriver/support.rb +4 -0
  90. data/lib/selenium/webdriver/support/abstract_event_listener.rb +28 -0
  91. data/lib/selenium/webdriver/support/block_event_listener.rb +17 -0
  92. data/lib/selenium/webdriver/support/event_firing_bridge.rb +112 -0
  93. data/lib/selenium/webdriver/support/select.rb +293 -0
  94. data/spec/integration/selenium/client/api/backward_compatible_api_spec.rb +22 -0
  95. data/spec/integration/selenium/client/api/browser_xpath_library_spec.rb +17 -0
  96. data/spec/integration/selenium/client/api/click_spec.rb +39 -0
  97. data/spec/integration/selenium/client/api/cookie_spec.rb +39 -0
  98. data/spec/integration/selenium/client/api/element_spec.rb +14 -0
  99. data/spec/integration/selenium/client/api/highlight_located_element_spec.rb +19 -0
  100. data/spec/integration/selenium/client/api/retrieve_last_remote_control_logs_spec.rb +33 -0
  101. data/spec/integration/selenium/client/api/screenshot_spec.rb +29 -0
  102. data/spec/integration/selenium/client/api/select_window_spec.rb +46 -0
  103. data/spec/integration/selenium/client/api/start_stop_spec.rb +9 -0
  104. data/spec/integration/selenium/client/api/wait_for_ajax_spec.rb +27 -0
  105. data/spec/integration/selenium/client/api/wait_for_element_spec.rb +56 -0
  106. data/spec/integration/selenium/client/api/wait_for_field_value_spec.rb +52 -0
  107. data/spec/integration/selenium/client/api/wait_for_text_spec.rb +98 -0
  108. data/spec/integration/selenium/client/sample-app/public/jquery-1.3.2.js +4376 -0
  109. data/spec/integration/selenium/client/sample-app/public/jquery.html +55 -0
  110. data/spec/integration/selenium/client/sample-app/public/prototype-1.6.0.3.js +4320 -0
  111. data/spec/integration/selenium/client/sample-app/public/prototype.html +59 -0
  112. data/spec/integration/selenium/client/sample-app/sample_app.rb +32 -0
  113. data/spec/integration/selenium/client/spec_helper.rb +125 -0
  114. data/spec/integration/selenium/webdriver/chrome/driver_spec.rb +28 -0
  115. data/spec/integration/selenium/webdriver/chrome/profile_spec.rb +42 -0
  116. data/spec/integration/selenium/webdriver/driver_spec.rb +253 -0
  117. data/spec/integration/selenium/webdriver/element_spec.rb +185 -0
  118. data/spec/integration/selenium/webdriver/error_spec.rb +30 -0
  119. data/spec/integration/selenium/webdriver/firefox/driver_spec.rb +21 -0
  120. data/spec/integration/selenium/webdriver/firefox/profile_spec.rb +141 -0
  121. data/spec/integration/selenium/webdriver/keyboard_spec.rb +57 -0
  122. data/spec/integration/selenium/webdriver/mouse_spec.rb +55 -0
  123. data/spec/integration/selenium/webdriver/navigation_spec.rb +44 -0
  124. data/spec/integration/selenium/webdriver/opera/driver_spec.rb +47 -0
  125. data/spec/integration/selenium/webdriver/options_spec.rb +49 -0
  126. data/spec/integration/selenium/webdriver/remote/element_spec.rb +24 -0
  127. data/spec/integration/selenium/webdriver/spec_helper.rb +44 -0
  128. data/spec/integration/selenium/webdriver/spec_support.rb +13 -0
  129. data/spec/integration/selenium/webdriver/spec_support/guards.rb +86 -0
  130. data/spec/integration/selenium/webdriver/spec_support/helpers.rb +46 -0
  131. data/spec/integration/selenium/webdriver/spec_support/jruby_test_environment.rb +29 -0
  132. data/spec/integration/selenium/webdriver/spec_support/rack_server.rb +123 -0
  133. data/spec/integration/selenium/webdriver/spec_support/test_environment.rb +199 -0
  134. data/spec/integration/selenium/webdriver/target_locator_spec.rb +170 -0
  135. data/spec/integration/selenium/webdriver/timeout_spec.rb +56 -0
  136. data/spec/integration/selenium/webdriver/window_spec.rb +56 -0
  137. data/spec/integration/selenium/webdriver/zipper_spec.rb +66 -0
  138. data/spec/unit/selenium/client/base_spec.rb +239 -0
  139. data/spec/unit/selenium/client/extensions_spec.rb +174 -0
  140. data/spec/unit/selenium/client/idiomatic_spec.rb +500 -0
  141. data/spec/unit/selenium/client/javascript_expression_builder_spec.rb +79 -0
  142. data/spec/unit/selenium/client/javascript_frameworks/jquery_spec.rb +10 -0
  143. data/spec/unit/selenium/client/javascript_frameworks/prototype_spec.rb +10 -0
  144. data/spec/unit/selenium/client/protocol_spec.rb +124 -0
  145. data/spec/unit/selenium/client/selenium_helper_spec.rb +56 -0
  146. data/spec/unit/selenium/client/spec_helper.rb +24 -0
  147. data/spec/unit/selenium/rake/task_spec.rb +79 -0
  148. data/spec/unit/selenium/server_spec.rb +131 -0
  149. data/spec/unit/selenium/webdriver/action_builder_spec.rb +90 -0
  150. data/spec/unit/selenium/webdriver/android/bridge_spec.rb +31 -0
  151. data/spec/unit/selenium/webdriver/chrome/bridge_spec.rb +94 -0
  152. data/spec/unit/selenium/webdriver/chrome/profile_spec.rb +57 -0
  153. data/spec/unit/selenium/webdriver/chrome/service_spec.rb +44 -0
  154. data/spec/unit/selenium/webdriver/error_spec.rb +41 -0
  155. data/spec/unit/selenium/webdriver/firefox/bridge_spec.rb +17 -0
  156. data/spec/unit/selenium/webdriver/iphone/bridge_spec.rb +30 -0
  157. data/spec/unit/selenium/webdriver/proxy_spec.rb +87 -0
  158. data/spec/unit/selenium/webdriver/remote/bridge_spec.rb +16 -0
  159. data/spec/unit/selenium/webdriver/remote/capabilities_spec.rb +111 -0
  160. data/spec/unit/selenium/webdriver/remote/http/common_spec.rb +24 -0
  161. data/spec/unit/selenium/webdriver/remote/http/default_spec.rb +46 -0
  162. data/spec/unit/selenium/webdriver/search_context_spec.rb +61 -0
  163. data/spec/unit/selenium/webdriver/socket_poller_spec.rb +68 -0
  164. data/spec/unit/selenium/webdriver/spec_helper.rb +6 -0
  165. data/spec/unit/selenium/webdriver/support/event_firing_spec.rb +111 -0
  166. data/spec/unit/selenium/webdriver/support/select_spec.rb +290 -0
  167. data/spec/unit/selenium/webdriver/wait_spec.rb +40 -0
  168. metadata +215 -0
data/CHANGES ADDED
@@ -0,0 +1,473 @@
1
+ 2.18.0 (???)
2
+ ============
3
+
4
+ 2.17.0 (2012-01-16)
5
+ ===================
6
+
7
+ * Firefox:
8
+ * Fix excessive unwrapping when switching windows.
9
+ * Set toolkit.telemetry.{enabled,rejected} in the default Firefox profile.
10
+ * Support up to version 12 with synthesized events.
11
+ * Fixed issues launching Firefox 9 due to modal dialog (#3154, #3144)
12
+ * Chrome:
13
+ * Now accepts a :url option, pointing to an already running Chrome server.
14
+ * Now accepts a :proxy option (i.e. Selenium::WebDriver::Proxy instance).
15
+ * iPhone:
16
+ * iWebDriver will auto-play HTML5 video (#3152)
17
+ * Element#attribute("value") falls back to the text of option tags, if no value attribute is specified (#3169)
18
+
19
+ 2.16.0 (2012-01-04)
20
+ ===================
21
+
22
+ * Firefox:
23
+ * Native events support for Firefox 9
24
+ * Allow apps to use offline storage by default
25
+ * Fix excessive unwrapping when executing mouseMove
26
+ * Click in the middle, rather than the top-left of elements (#3034, #2700)
27
+ * IE:
28
+ * Raise StaleElementReferenceError when interacting with elements outside the currently focused frame
29
+ * Handle frames and iframes in showModalDialog windows
30
+ * Chrome:
31
+ * Improve client handling of invalid error responses
32
+ * iPhone:
33
+ * Updated to latest CocoaHTTPServer
34
+ * Remote:
35
+ * Improve performance of Element#== by only making an RPC when necessary.
36
+ * Disallow caching of GET requests
37
+ * Various:
38
+ * Raise ArgumentError instead of UnsupportedOperationError on invalid modifier key
39
+ * Improve docs for Server, ActionBuilder and Window
40
+ * Update to latest Sizzle (used for :css selectors in older browsers)
41
+
42
+ 2.15.0 (2011-12-08)
43
+ ===================
44
+
45
+ * Firefox:
46
+ * Now supports up to Firefox 11 (for syntesized events)
47
+ * Implicit waits now change how long we wait for alerts. This
48
+ functionality will change in 2.16
49
+ * Fix scrolling issue (#2700)
50
+ * IE:
51
+ * Fix issue with getWindowHandles() and showModalDialog() (#1828)
52
+ * Add support for the window sizing and positioning API
53
+ * Make Platform.bitsize use the correct constant from FFI
54
+ * WebDriver internals:
55
+ * Atoms code contribution from Google
56
+ * Closure updated
57
+
58
+
59
+ 2.14.0 (2011-11-29)
60
+ ===================
61
+
62
+ * Add Selenium::WebDriver::Support::Select class to ease working with select lists.
63
+ * Add Capabilities.ipad and Capabilities.iphone (#2895)
64
+ * Replace json_pure dependency with multi_json. (#2901)
65
+ * Don't leave sockets hanging in SYN_SENT state while polling.
66
+ * Allow selecting option elements even if the enclosing select has zero opacity.
67
+ * Exception renames (old names aliased and will still work in rescues):
68
+ * ObsoleteElementError -> StaleElementReferenceError
69
+ * UnhandledError -> UnknownError
70
+ * UnexpectedJavascriptError -> JavascriptError
71
+ * NoAlertOpenError -> NoAlertPresentError
72
+ * ElementNotDisplayedError -> ElementNotVisibleError
73
+ * Firefox:
74
+ * Fixed issue with scrolling on small viewports with native events.
75
+ * Fix CSS selector support in Firefox 3.0
76
+ * IE:
77
+ * Implement the window control API
78
+
79
+ 2.13.0 (2011-11-18)
80
+ ===================
81
+
82
+ * Firefox:
83
+ * Recovering from null window references in the Firefox driver (#1438)
84
+
85
+ 2.12.2 (2011-11-13)
86
+ ===================
87
+
88
+ * Firefox
89
+ * Fix issue where Firefox 8 would throw permission errors after document.domain was modified (#2863).
90
+ * Force window to the foreground on launch (see https://bugzilla.mozilla.org/show_bug.cgi?id=566671)
91
+
92
+ 2.12.1 (2011-11-11)
93
+ ===================
94
+
95
+ * Fix regression when typing into contenteditable elements.
96
+
97
+ 2.12.0 (2011-11-10)
98
+ ===================
99
+
100
+ * Loosened the ffi dependency now that Windows support is back (#2755).
101
+ * Fix shutdown issues when using net-http-persistent against remote servers.
102
+ * Added beta window control API (see Selenium::WebDriver::Options#window).
103
+ * Firefox
104
+ * Support for Firefox 8.
105
+ * Better reporting of page size when attempting to move out of bounds.
106
+ * Beta implementation of window control.
107
+
108
+ 2.11.0
109
+ ======
110
+
111
+ (release skipped since it included only server-side changes)
112
+
113
+ 2.10.0 (2011-10-27)
114
+ ===================
115
+
116
+ * Improve native keyboard emulation on Windows.
117
+ * Allow commas in CSS selectors (#2301)
118
+ * Firefox:
119
+ * Fix intermittent error when finding elements by XPath (#2099)
120
+ * Fix detection of maximum page size (#2700)
121
+ * Avoid extension selection dialog (extensions.autoDisableScopes)
122
+ * Fix invalid wire responses from the synthetic mouse (#2695)
123
+ * Don't scroll unnecessarily (#1771).
124
+ * IE:
125
+ * Improve handling of #clear on disabled or readonly elements.
126
+
127
+ 2.9.1 (2011-10-24)
128
+ ==================
129
+
130
+ * Workaround for invalid error responses (#2695).
131
+
132
+ 2.9.0 (2011-10-21)
133
+ ==================
134
+
135
+ * Support file uploads to the remote server (see Selenium::WebDriver::DriverExtensions::UploadsFiles)
136
+ * New exception: Selenium::WebDriver::Error::MoveTargetOutOfBoundsError
137
+ * Implemented Chrome::Profile#add_extension
138
+ * Better respect for preformatted text in Element#text
139
+ * Reduced scrolling during tests for IE and Firefox.
140
+ * Firefox:
141
+ * Support for experimental page load detection.
142
+ * IE:
143
+ * Better detection of where to click on links (#2675).
144
+ * Improve handling of modal dialogs (showModalDialog).
145
+
146
+ 2.8.0 (2011-10-06)
147
+ ==================
148
+
149
+ * Firefox
150
+ - Avoid telemetry prompt on Firefox 7
151
+ - Allow parallel execution with native events on Linux (#1326)
152
+ - Added native events support for Firefox 7 on Linux/Windows
153
+ - Improve search for libX11 for native events on Linux (#384)
154
+ - Fix double click with native events
155
+ * Chrome
156
+ - Fail fast if the chromedriver server is not executable.
157
+ * IE
158
+ - Fix find_element bug (#2563)
159
+
160
+
161
+ 2.7.0 (2011-09-23)
162
+ ==================
163
+
164
+ * Firefox
165
+ - no longer types in the URL bar (#2487)
166
+ - fixed native events click() issue when element is out of view
167
+ - double click + get no longer hangs firefox (#2456)
168
+ - make sure escaped backslashes are properly escaped when serializing a Firefox profile (#2485)
169
+ * IE
170
+ - fix event firing issue (#2516)
171
+ * Opera
172
+ - don't start the remote service if the driver is passed bad arguments
173
+
174
+ 2.6.0 (2011-09-13)
175
+ ==================
176
+
177
+ * Rescue and retry on Errno::EADDRINUSE to work around ephemeral ports issue on Windows.
178
+ * Use correct default URL for the Android driver.
179
+ * Profile zipping now follows symlinks (#2416).
180
+ * Firefox
181
+ - Disable malware check
182
+ - Various #click improvements
183
+ - Don't scroll if element is already in view
184
+ * IE:
185
+ - improve scrolling to elements with 'overflow: scroll'
186
+ - properly trigger jQuery change events (#2207)
187
+ - improve handling of nested modal dialogs
188
+ * Opera:
189
+ - capabilities exposed as options to Selenium::WebDriver.for
190
+ * Various iPhone driver fixes (e.g. #1396)
191
+
192
+ 2.5.0 (2011-08-23)
193
+ ==================
194
+
195
+ * IE: support for double click and fix for clicks close to edge of window.
196
+ * Fix for clicking links that overflow into multiple lines (#1020).
197
+ * Correct initial cursor position when typing into text fields with Firefox 6.
198
+ * Native events support for Firefox 6 on Windows and Linux.
199
+ * Fix bug in Android::Bridge when no :http_client option was passed.
200
+ * Set chrome.detach to tell chromedriver to leave browser running on exit.
201
+
202
+ 2.4.0 (2011-08-11)
203
+ ==================
204
+
205
+ * Firefox 6 support.
206
+ * Raise in switch_to.alert when no alert is present.
207
+ * Improved handling of non-breaking spaces for Element#text.
208
+
209
+ 2.3.2 (2011-08-01)
210
+ ==================
211
+
212
+ * Re-releasing since 2.3.1 was a buggy build.
213
+
214
+ 2.3.1 (2011-08-01)
215
+ ==================
216
+
217
+ * Fix bug where Firefox would hang if Firefox::Profile#log_file= was set.
218
+
219
+ 2.3.0 (2011-08-01)
220
+ ==================
221
+
222
+ * Add Selenium::WebDriver::Chrome::Profile
223
+ * Better detection of clickable areas in Firefox.
224
+ * Merge of Google-contributed code into the underlying Atoms.
225
+ * IE click issue fixed (#1650)
226
+ * No longer raise in Element#inspect if the element is obsolete.
227
+
228
+
229
+ 2.2.0 (2011-07-26)
230
+ ==================
231
+
232
+ * Add ability to listen for WebDriver events
233
+ * Fix Android/iPhone bridges to work similar to others (https://github.com/jnicklas/capybara/issues/425)
234
+ * Various atoms fixes
235
+ * Element equality now works properly with the remote server (#251).
236
+
237
+ 2.1.0 (2011-07-18)
238
+ ==================
239
+
240
+ * Various improvments to the IE driver (#2049, #1870)
241
+ * Atoms fixes (#1776, #1972).
242
+ * Synthetic mouse clicks do not propagate errors in onmouseover.
243
+
244
+ 2.0.1 (2011-07-11)
245
+ ==================
246
+
247
+ * Make sure at_exit hooks aren't inherited by child processes.
248
+
249
+ 2.0.0 (2011-07-08)
250
+ ==================
251
+
252
+ * Remove deprecated methods Element#{toggle,select,drag_and_drop_*,value}.
253
+ * Add ability to pass :verbose, :native_events to the Chrome driver.
254
+ * Synthetic mouse implementation for Firefox - improves drag and drop support platforms without native events.
255
+ * Added Selenium::WebDriver::Opera (requires the remote server).
256
+ * Fix for locating Firefox on 64-bit Windows when missing from the registry.
257
+ * Fix native events on Firefox 4, 5.
258
+
259
+ 0.2.2 (2011-06-22)
260
+ ==================
261
+
262
+ * Deprecate Element#{toggle,select,drag_and_drop_*}
263
+ * Chrome.path= now sets the path to Chrome, Chrome.driver_path= the path to the chromedriver server.
264
+ * Fix argument names in Mouse#move_to and Mouse#move_by.
265
+ * Support Firefox 5
266
+ * Chrome and Firefox drivers now includes the HasInputDevices module.
267
+ * Selenium::Rake::ServerTask now works with Rake 0.9.
268
+
269
+ 0.2.1 (2011-06-01)
270
+ ==================
271
+
272
+ * Allow passing custom command line switches to Chrome (requires today's release of the Chrome server)
273
+ * Avoid mutating arguments to find_element (issue #1273).
274
+ * Avoid conflicts when SUT modifies Array.prototype
275
+ * Allow setting arbitrary capabilities by adding Capabilities#[]=
276
+ * The Chrome driver is extended with TakesScreenshot.
277
+ * IE driver detects bad protected mode settings.
278
+ * Firefox driver no longer considers opacity when determining visibility.
279
+ * Fix for ActionBuilder#move_by.
280
+ * Treat Errno::EBADF as an indication that we failed to grab the socket lock (issue #1611).
281
+ * Ensure Firefox launches don't hang on some Ruby versions (by improving Selenium::WebDriver::SocketPoller).
282
+ * Various internal driver improvements.
283
+
284
+ 0.2.0 (2011-04-22)
285
+ ==================
286
+
287
+ * Update Ruby bindings to use the rewritten Chrome driver (see http://code.google.com/p/selenium/wiki/ChromeDriver).
288
+ * Add deprecation warning for WebDriver::Element#value (use Element#attribute("value") instead).
289
+ * Change the default timeout for Wait instances to 5 seconds.
290
+ * Fix bug where locators would fail if Object.prototype had been modified.
291
+ * Various IE fixes
292
+ - Issues: #698, #1444
293
+ - Improved handling of showModalDialog()
294
+ - Full-size screenshots
295
+ * Allow users to override the dom.max_script_run_time preference in Firefox.
296
+ * Removed DesiredCapabilities.safari, which was never supported anyway.
297
+ * Add DesiredCapabilities.opera, which will be supported in the Remote server if OperaDriver is on the classpath.
298
+ * Print warnings for deprecated constants in the RC client:
299
+ - Selenium::SeleniumDriver => Selenium::Client::Driver
300
+ - Selenium::CommandError => Selenium::Client::CommandError
301
+ * Removed top-level constants:
302
+ - SeleniumHelper (available as Selenium::Client::SeleniumHelper)
303
+ - SeleniumCommandError (available as Selenium::Client::CommandError)
304
+
305
+ 0.1.4 (2011-03-21)
306
+ ==================
307
+
308
+ * Support for Firefox 4.
309
+ * Search PATH for Firefox / Chrome on OS X as well.
310
+ * Bump dependencies for ffi and childprocess (#1356).
311
+ * Find module renamed to SearchContext
312
+ * Deprecated methods Driver#hover and Options#{speed,speed=} removed.
313
+ * Improve IE driver stability, IE9 support
314
+ * Added basic ActionBuilder and HasInputDevices#action. Not applicable for all browsers.
315
+ * Added Driver#execute_async_script
316
+ * Some WebDriver exception classes have been renamed to match its Java equivalents:
317
+ ElementNotEnabledError -> InvalidElementStateError
318
+ UnknownScriptResultError -> XpathLookupError
319
+ * Fix bug where Element#disabled? would alternate between true/false (r11438)
320
+
321
+ 0.1.3 (2011-02-14)
322
+ ==================
323
+
324
+ * Several crashing bugs fixed in the IE driver.
325
+ * Alert API available through the remote driver.
326
+ * Driver#refresh fixed in the IE driver.
327
+ * Fixed paths for IE DLLs on Cygwin.
328
+ * Screenshot support in the IE and Remote drivers.
329
+ * Fix #1152 by avoiding IPv6 loopback.
330
+ * Added Mouse and Keyboard classes, accessible as Driver#{mouse,keyboard}. Considered experimental (IE + HtmlUnit only at the moment).
331
+ * Automation atoms now used extensively in the IE driver.
332
+ * Firefox::Bridge is now easier to extend (i.e. with a custom launcher).
333
+ * Add S::W::Remote::Http::Persistent (currently only usable with the remote server).
334
+ * IE driver passes along options like the other remote drivers, enabling user-specified HTTP clients.
335
+ * :firefox_profile added to Remote::Capabilities, enabling passing a profile to remote Firefoxes.
336
+ * IE driver now supports launching multiple instances of the browser.
337
+ * Remove some Ruby warnings (uninitialized ivars, URI.escape).
338
+
339
+
340
+ 0.1.2 (2010-12-22)
341
+ ==================
342
+
343
+ * Changed frame switching behaviour (http://groups.google.com/group/selenium-developers/browse_thread/thread/8dc7938c35bb3968)
344
+ * IE driver rewrite landed.
345
+ * Initial support for alerts/prompts (in Firefox).
346
+ * Cygwin support.
347
+ * Driver#execute_script now properly wraps elements inside Hashes.
348
+ * Various fixes for Firefox 4.
349
+
350
+ 0.1.1 (2010-11-29)
351
+ ==================
352
+
353
+ * Fix for Chrome.path=
354
+ * Remote drivers always add Content-Length for POST requests (thanks joshuachisholm)
355
+ * Fix for JS execution bug in the IE driver
356
+ * Add ability to specify a proxy on the Http::Default client.
357
+ * The remote drivers' :http_client argument now take a configured instance.
358
+
359
+ 0.1.0 (2010-11-11)
360
+ ===================
361
+
362
+ * selenium-client code (Se1/RC client) is now included in the gem (require "selenium/client").
363
+ * Add Selenium::WebDriver::Proxy, used to configure proxies for Firefox::Profile and the remote driver.
364
+ * Tweaked Firefox profile preferences, improve logging, disabled crash reporter.
365
+ * Reap Firefox profiles on close, not just on exit.
366
+ * Add selenium/rake/server_task and selenium/server which wraps the Selenium server jar.
367
+ * Various Firefox driver improvements (GC race conditions ++).
368
+ * IE::Bridge#initialize now takes an options hash like the other bridges.
369
+ * Added basic iPhone and Android driver classes.
370
+ * Firefox driver now works on FreeBSD.
371
+
372
+
373
+ 0.0.29 (2010-10-09)
374
+ ===================
375
+
376
+ * Element#find_element with :xpath follows the XPath spec (i.e. results are not limited to the receiver's subtree).
377
+ * Element#attribute(attribute) now returns "false" instead of nil.
378
+ * Firefox::Profile instances can now be reused for multiple drivers.
379
+ * Redirect Firefox console logs to a file with Firefox::Profile.log_file=
380
+ * Added a simple Wait class, based on WebDriverWait in Java.
381
+ * Search PATH for Firefox executable on Windows also.
382
+ * Added Capabilities.android
383
+ * Fix saving of screenshots on Windows and Ruby 1.9 (using "wb" mode string)
384
+ * CSS selector support in the remote driver
385
+ * CSS selector support for IE (using querySelector when available, Sizzle elsewhere)
386
+ * CSS selector support for older versions of Firefox (through Sizzle)
387
+ * Cookie expiration dates are now handled correctly (#730)
388
+ * Make Driver#bridge private, since this seems to be a common cause of confusion.
389
+ * Add {Element,Remote::Capabilities}#as_json for Rails 3 (http://jonathanjulian.com/2010/04/rails-to_json-or-as_json/)
390
+ * User can configure path to exectuables with {Firefox,Chrome}.path = "/some/path"
391
+ * Added "chromium" as a possible name for the Chrome binary (#769)
392
+ * Correctly set the HTTP client timeout (#768)
393
+ * switch_to.window with block now handles exceptions and non-local returns.
394
+ * switch_to.window with block returns the result of the block.
395
+ * Extracted handling of child processes to a separate gem: http://github.com/jarib/childprocess
396
+
397
+
398
+ 0.0.28 (2010-08-23)
399
+ ===================
400
+
401
+ * Fix behaviour of Element#==, Element#eql? and Element#hash (#hash still has issues on IE / remote).
402
+ * Include remote server backtrace in raised errors (if available).
403
+ * Chrome: Untrusted certificate support.
404
+ * IE: Fix NoMethodError when getElementAttribute returns nil.
405
+ * Driver#[] shorthand can take a locator hash, not just an id string.
406
+
407
+ 0.0.27 (2010-07-22)
408
+ ===================
409
+
410
+ * Fixes for Element#attribute on IE / Firefox
411
+
412
+ 0.0.26 (2010-07-19)
413
+ ===================
414
+
415
+ * Work around Curb issue: http://github.com/taf2/curb/issues/issue/40
416
+
417
+ 0.0.25 (2010-07-19)
418
+ ===================
419
+
420
+ * Prevent Firefox from launching in offline mode (issue #587).
421
+ * Add ability to set Firefox' binary path through Selenium::WebDriver::Firefox::Binary.path=
422
+ * Add ability to install Firefox XPIs through Profile#add_extension.
423
+ * Better packaging/building of Firefox/Chrome extensions, which adds rubyzip as a dependency.
424
+ * Remote client supports HTTPS (issue #613 - thanks kkaempf).
425
+ * Fix error message for TimeOutError in the IE driver (issue #602)
426
+ * Add ability to use Chrome's default profile.
427
+ * Fix for frame behaviour in Chrome (issue #273).
428
+ * Standard gem directory structure (issue #475).
429
+
430
+ 0.0.24 (2010-06-17)
431
+ ==================
432
+
433
+ * Fix issues with quitting Firefox/Chrome on Windows + MRI.
434
+
435
+
436
+ 0.0.23 (2010-06-15)
437
+ ===================
438
+
439
+ * Improved the HTTP clients:
440
+ - hopefully fix some occasional socket errors on Windows
441
+ - rescue error on driver.close() with curb
442
+
443
+ 0.0.22 (2010-06-11)
444
+ ===================
445
+
446
+ * Bugfix: Workaround for http://github.com/taf2/curb/issues/issue/33 - curb would sometimes use DELETE for GET requests.
447
+ * Minor doc fix
448
+ * Add ability to set timeout for HTTP clients
449
+
450
+ 0.0.21 (2010-06-11)
451
+ ===================
452
+
453
+ * User can specify :http_client for the Firefox driver.
454
+ * Refactor HTTP client code
455
+ * Add Remote::Http::Curb as an alternative to the default (net/http) client.
456
+
457
+
458
+ 0.0.20 (2010-06-03)
459
+ ===================
460
+
461
+ * Fix bug where Firefox would hang on quit().
462
+
463
+ 0.0.19 (2010-05-31)
464
+ ===================
465
+
466
+ * Add a max redirect check to the remote driver
467
+ * Add Firefox::Profile#assume_untrusted_certificate_issuer=
468
+ * Add implicit waits (Selenium::WebDriver::Timeouts)
469
+ * at_exit hook to clean temporary profiles
470
+ * Fix for Errno::ECONNABORTED errors on Windows
471
+ * Fix issue where Firefox::Profile#secure_ssl= would have no effect
472
+ * Fix issue where locating elements by :css would fail in the Chrome driver.
473
+ * IE driver now works on 64-bit rubies.