bbc-selenium-webdriver 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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.