selenium-webdriver 4.0.0.beta2 → 4.0.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +1947 -0
  3. data/Gemfile +6 -0
  4. data/LICENSE +202 -0
  5. data/NOTICE +2 -0
  6. data/README.md +34 -0
  7. data/lib/selenium/webdriver/atoms/findElements.js +0 -0
  8. data/lib/selenium/webdriver/atoms/getAttribute.js +25 -25
  9. data/lib/selenium/webdriver/atoms/isDisplayed.js +0 -0
  10. data/lib/selenium/webdriver/chrome/driver.rb +16 -4
  11. data/lib/selenium/webdriver/chrome/features.rb +44 -4
  12. data/lib/selenium/webdriver/chrome/options.rb +25 -2
  13. data/lib/selenium/webdriver/chrome/profile.rb +5 -2
  14. data/lib/selenium/webdriver/common/driver.rb +5 -1
  15. data/lib/selenium/webdriver/common/driver_extensions/full_page_screenshot.rb +43 -0
  16. data/lib/selenium/webdriver/common/driver_extensions/has_apple_permissions.rb +51 -0
  17. data/lib/selenium/webdriver/common/driver_extensions/has_casting.rb +77 -0
  18. data/lib/selenium/webdriver/common/driver_extensions/has_cdp.rb +38 -0
  19. data/lib/selenium/webdriver/common/driver_extensions/has_context.rb +45 -0
  20. data/lib/selenium/webdriver/common/driver_extensions/has_devtools.rb +0 -17
  21. data/lib/selenium/{devtools.rb → webdriver/common/driver_extensions/has_launching.rb} +16 -8
  22. data/lib/selenium/webdriver/common/driver_extensions/has_log_events.rb +1 -6
  23. data/lib/selenium/webdriver/common/driver_extensions/has_network_conditions.rb +8 -0
  24. data/lib/selenium/webdriver/common/driver_extensions/has_network_interception.rb +87 -18
  25. data/lib/selenium/webdriver/common/driver_extensions/has_permissions.rb +11 -11
  26. data/lib/selenium/webdriver/common/driver_extensions/has_pinned_scripts.rb +77 -0
  27. data/lib/selenium/webdriver/common/driver_extensions/prints_page.rb +28 -1
  28. data/lib/selenium/webdriver/common/element.rb +35 -6
  29. data/lib/selenium/webdriver/common/error.rb +12 -0
  30. data/lib/selenium/webdriver/common/log_entry.rb +2 -2
  31. data/lib/selenium/webdriver/common/manager.rb +3 -13
  32. data/lib/selenium/webdriver/common/options.rb +31 -12
  33. data/lib/selenium/webdriver/common/proxy.rb +2 -2
  34. data/lib/selenium/webdriver/common/shadow_root.rb +87 -0
  35. data/lib/selenium/webdriver/common/socket_poller.rb +19 -30
  36. data/lib/selenium/webdriver/common/takes_screenshot.rb +9 -6
  37. data/lib/selenium/webdriver/common/target_locator.rb +28 -0
  38. data/lib/selenium/webdriver/common/window.rb +0 -4
  39. data/lib/selenium/webdriver/common.rb +8 -0
  40. data/lib/selenium/webdriver/devtools/pinned_script.rb +59 -0
  41. data/lib/selenium/webdriver/devtools/request.rb +27 -17
  42. data/lib/selenium/webdriver/devtools/response.rb +66 -0
  43. data/lib/selenium/webdriver/devtools.rb +50 -12
  44. data/lib/selenium/webdriver/edge/features.rb +5 -0
  45. data/lib/selenium/webdriver/edge/options.rb +0 -0
  46. data/lib/selenium/webdriver/edge/profile.rb +0 -0
  47. data/lib/selenium/webdriver/firefox/driver.rb +15 -2
  48. data/lib/selenium/webdriver/firefox/features.rb +20 -1
  49. data/lib/selenium/webdriver/firefox/options.rb +24 -1
  50. data/lib/selenium/webdriver/firefox.rb +0 -1
  51. data/lib/selenium/webdriver/ie/options.rb +3 -1
  52. data/lib/selenium/webdriver/ie/service.rb +1 -1
  53. data/lib/selenium/webdriver/remote/bridge.rb +43 -13
  54. data/lib/selenium/webdriver/remote/capabilities.rb +97 -53
  55. data/lib/selenium/webdriver/remote/commands.rb +5 -0
  56. data/lib/selenium/webdriver/remote/driver.rb +7 -7
  57. data/lib/selenium/webdriver/remote.rb +1 -1
  58. data/lib/selenium/webdriver/safari/driver.rb +1 -1
  59. data/lib/selenium/webdriver/safari/options.rb +7 -0
  60. data/lib/selenium/webdriver/support/cdp/domain.rb.erb +63 -0
  61. data/lib/selenium/webdriver/support/cdp_client_generator.rb +108 -0
  62. data/lib/selenium/webdriver/support/event_firing_bridge.rb +2 -2
  63. data/lib/selenium/webdriver/version.rb +1 -1
  64. data/lib/selenium/webdriver.rb +1 -1
  65. data/selenium-webdriver.gemspec +63 -0
  66. metadata +60 -44
data/CHANGES ADDED
@@ -0,0 +1,1947 @@
1
+ 4.0.0.rc2 (2021-09-30)
2
+ =========================
3
+
4
+ DevTools:
5
+ * Released selenium-devtools 0.93.0 (2021-09-01)
6
+ - adds CDP version 93
7
+ - removes CDP version 91
8
+ * Released selenium-devtools 0.94.0 (2021-09-22)
9
+ - adds CDP version 94
10
+ - removes CDP version 92
11
+ * Added support for mutating responses in network interception
12
+
13
+ Ruby:
14
+ * Implemented Options#add_option to work for vendor extension capabilities
15
+ * Fixed bug for requiring uri (#9825 thanks @flanger001)
16
+ * Moved New Window functionality to TargetLocator#new_window to be used with Driver#switch_to
17
+ * Deprecated using Manager#new_window
18
+ * Changed order of logging output (#9850)
19
+ * Added support for web_socket_url capability
20
+
21
+ Chromium:
22
+ * Implemented casting functionality
23
+ * Implemented ability to launch chromium app
24
+ * Implemented support for specifying permissions
25
+ * Added support for Chrome-specific Android functionality with #enable_android
26
+
27
+ Firefox:
28
+ * Implemented context functionality
29
+ * Added support for Firefox-specific Android functionality with #enable_android
30
+
31
+ Remote:
32
+ * Added support for file detector to install Firefox addons from client machine
33
+
34
+ 4.0.0.rc1 (2021-09-01)
35
+ =========================
36
+
37
+ DevTools:
38
+ * Released selenium-devtools 0.92.0 (2021-08-21) which:
39
+ - adds CDP versions 92
40
+ - removes CDP versions 88, 89, 90
41
+
42
+ IE:
43
+ * Added options for running Microsoft Edge in IE mode with IE Driver
44
+
45
+ Remote:
46
+ * Added default file detector for remote driver
47
+
48
+ Ruby:
49
+ * Fixed bug for getting valid capability that has not been set
50
+ * Fixed bug preventing loading of ServerError class
51
+
52
+ 4.0.0.beta4 (2021-06-07)
53
+ =========================
54
+
55
+ Chrome:
56
+ * Fixed bug with camel casing of localState object
57
+
58
+ Firefox:
59
+ * Added support for Full Page Screenshots
60
+
61
+ Remote:
62
+ * Added support for #execute_cdp on Chrome and Edge
63
+
64
+ Ruby:
65
+ * Changed capabilities to use alwaysMatch instead of firstMatch by default
66
+ * Fixed bug preventing Options classes from handling Proxy instances
67
+
68
+ 4.0.0.beta3 (2021-04-13)
69
+ =========================
70
+
71
+ Chrome:
72
+ * Fixed a regression with prefs hash keys being converted to camelCase.
73
+ * Fixed an issue when passing Profile object to Options would fail.
74
+
75
+ DevTools:
76
+ * Released selenium-devtools 0.91.0 which:
77
+ - adds CDP versions 90 and 91
78
+ - removes CDP versions 86 and 87
79
+
80
+ Remote:
81
+ * Added support for setting alwaysMatch/firstMatch capabilities per W3C
82
+ WebDriver specification. It's done using the following methods where
83
+ `caps` is either a Ruby hash with desired capabilities or an instance
84
+ of Remote::Capabilities:
85
+ * Selenium::WebDriver::Remote::Capabilities.always_match(caps)
86
+ * Selenium::WebDriver::Remote::Capabilities.first_match(caps)
87
+ * Added support for Driver#save_print_page.
88
+ * Fixed an issue with Driver#print_page.
89
+ * Added support for setting timeouts capabilities in Remote::Capabilities
90
+ per W3C WebDriver specification.
91
+ * Added support for Element#aria_role which returns WAI-ARIA role of the element.
92
+ * Added support for Element#accessible name which returns WAI-ARIA label of the element.
93
+ * Added support for using DevTools version provided by Grid instead of
94
+ calculating it manually
95
+
96
+ Ruby:
97
+ * Remove JRuby-specific socket poller. Note that this requires JRuby 9.2.8.0+.
98
+
99
+ 4.0.0.beta2 (2021-03-16)
100
+ =========================
101
+
102
+ DevTools:
103
+ * Separated out DevTools methods into selenium-devtools gem to better manage versioning
104
+ * Updated supported versions to 85-89
105
+ * Add support for intercepting browser requests
106
+
107
+ Firefox:
108
+ * Add support for using DevTools commands with Firefox Nightly
109
+
110
+ Remote:
111
+ * Provide access to browser specific driver extensions as appropriate for designated browser
112
+ * Add support for using DevTools commands via Grid
113
+
114
+ Ruby:
115
+ * Spec Guard implementation moved into lib directory for other projects to use
116
+ * Implemented `Element#dom_attribute` to obtain attribute value as defined by w3c specification
117
+ * Implemented `Options#eq?`
118
+ * Allow Options subclass instances to be created from class methods in superclass
119
+
120
+ Safari:
121
+ * Fix bug that prevented usage of Safari Technology Preview
122
+
123
+ 4.0.0.beta1 (2021-02-15)
124
+ =========================
125
+
126
+ DevTools:
127
+ * Updated supported versions to 85-88
128
+
129
+ Edge:
130
+ * Removed support for legacy Edge HTML
131
+
132
+ Firefox:
133
+ * Fixed support for default profile settings
134
+ * Added support for Devtools for Firefox v87+
135
+
136
+ Safari:
137
+ * Removed default platformName specification so it works with Grid
138
+
139
+ Ruby:
140
+ * Added support for httpOnly attribute in Cookies
141
+ * Implemented `#print_page` method (thanks @raju249)
142
+ * Fixed support for missing libraries in Ruby 3.0 (thanks @znz)
143
+ * Deprecated `HTTP::Persistent` class
144
+ * Fixed support for accessors in options classes
145
+ * Added support for status endpoint for all browsers
146
+ * Fix support for Browser, Driver, and Performance Logging in Chrome and Edge
147
+
148
+ 4.0.0.alpha7 (2020-11-10)
149
+ =========================
150
+
151
+ Chrome:
152
+ * Fixed a link to download ChromeDriver when it's not found (thanks @masakazutakewaka).
153
+ * Fixed an issue when passing instance of Profile to an Options in capabilities
154
+ (thanks @masakazutakewaka).
155
+
156
+ DevTools:
157
+ * Added support for multiple version of CDP. Currently supported versions are
158
+ 84-87. The proper version is automatically selected when the browser is started
159
+ based on its version. The implementation is Chromium-based and is confirmed
160
+ to work in Chrome and Edge at least.
161
+ * Added support for basic authentication (see HasAuthentication).
162
+ * Added support for listening to JavaScript console messages (see HasLogEvents).
163
+ * Added support for listening to JavaScript exceptions (see HasLogEvents).
164
+ * Added support for listening to DOM mutations (see HasLogEvents).
165
+
166
+ Edge:
167
+ * Switched default Edge implementation to Chromium-based. To use older versions
168
+ of Edge, pass :edge_html when initializing the driver.
169
+
170
+ Firefox:
171
+ * Fixed an issue whereby using the new capabilities structure in local drivers
172
+ would cause the W3C check to complain that `browser_name` was an invalid
173
+ capability key name (thanks @luke-hill)
174
+
175
+ Ruby:
176
+ * Added support for taking screenshots of individual elements using Element#screenshot
177
+ (thanks @johndouthat).
178
+ * Fixed deprecation message of using Net::HTTP::Proxy (thanks @masakazutakewaka).
179
+ * Fixed false negative detection of Linux on WSL2 (thanks @snsten).
180
+ * Support ChildProcess 4.x versions (thanks @boutil).
181
+
182
+ Safari:
183
+ * Fixed browser name in capabilities for Safari Technology Preview.
184
+
185
+ 4.0.0.alpha6 (2020-05-28)
186
+ =========================
187
+
188
+ Chrome:
189
+ * Added DevTools classes and methods generated from the CDP specification.
190
+ It currently supports commands and events and provides Rubyish API:
191
+ driver.devtools.page.navigate(url: 'http://google.com')
192
+ driver.devtools.console.clear_messages
193
+ driver.devtools.page.enable
194
+ driver.devtools.page.on(:load_event_fired) do |params|
195
+ puts("Page loaded in #{params['timestamp']}")
196
+ end
197
+ Check https://chromedevtools.github.io/devtools-protocol/ for more information
198
+ about possible commands and events. Please note that this API is considered
199
+ to be experimental and may change any time before stable 4.0 release.
200
+ * Fixed an issue when passing :prompt_for_download (or similar snake_cased
201
+ symbols) in Options#prefs would be ignored by Chrome because Selenium
202
+ would internally convert it to camelCased format (:promptForDownload).
203
+ Now :prefs are left intact.
204
+
205
+ Edge:
206
+ * Fixed an issue when Driver#execute_cdp would not work for Chromium-based
207
+ Edge browser.
208
+
209
+ Ruby:
210
+ * Deprecated passing :desired_capabilities and :options to driver initialization
211
+ in favor of :capabilities. They now can be combined in an array to make
212
+ custom capabilities requirements:
213
+ caps = Selenium::WebDriver::Remote::Capabilities.chrome
214
+ opts = Selenium::WebDriver::Chrome::Options.new
215
+ Selenium::WebDriver.for(:remote, capabilities: :chrome)
216
+ Selenium::WebDriver.for(:remote, capabilities: caps)
217
+ Selenium::WebDriver.for(:remote, capabilities: opts)
218
+ Selenium::WebDriver.for(:remote, capabilities: [caps, opts])
219
+ * Deprecated passing Hash to :capabilities in favor of Remote::Capabilities object.
220
+ * Updated minimum require Ruby version to 2.5.
221
+ * Improved keyword arguments handling to avoid warnings in Ruby 2.7.
222
+
223
+ 4.0.0.alpha5 (2020-03-18)
224
+ =========================
225
+
226
+ The release is just to synchronize version with other bindings and does not
227
+ include any changes.
228
+
229
+ 4.0.0.alpha4 (2020-01-09)
230
+ =========================
231
+
232
+ Ruby:
233
+ * Added initial support for relative locators, which allow to find elements
234
+ above/below/left/right/near another element. For example, you can find all
235
+ the cells in a table to the right of your starting cell:
236
+ start_cell = driver.find_element(css: 'td')
237
+ right_cells = driver.find_elements(relative: {tag_name: 'td', right: start_cell})
238
+ The documentation is still lacking so refer to examples in df6be2e962.
239
+ * Added ability to silence certain logger messages by using it's identifiers:
240
+ Selenium::WebDriver.logger.ignore(:driver_path)
241
+ * Added new dependency: websocket. It's used for communicating with Chrome DevTools.
242
+ * Loosened childprocess dependency to allow using version 2.0+.
243
+ * Loosened rubyzip dependency to allow using version 2.0+.
244
+ * Fixed Errno::EACCES error on Linux DeX and similar distributes
245
+
246
+ Chrome:
247
+ * Added initial support for communicating with Chrome DevTools. The implementation
248
+ is very basic and lacks CDP domains, events and types - those will be added
249
+ in future releases. Still, it allows to execute simple commands to DevTools:
250
+ driver.devtools.send('Page.navigate', {url: 'https://google.com'})
251
+
252
+ 4.0.0.alpha3 (2019-07-08)
253
+ =========================
254
+
255
+ Ruby:
256
+ * All documented driver capabilities supported in respective browser Options class by constructor and accessor
257
+ * Driver constructor :options and :desired_capabilities generate the same capabilities for local and remote execution
258
+ * Deprecated :options as keyword for initializing browser Options classes
259
+
260
+ Chrome:
261
+ * Add support for browser logging with latest versions of chromedriver
262
+
263
+ Edge:
264
+ * Add support for Chromium based implementation
265
+
266
+ 4.0.0.alpha2 (2019-05-02)
267
+ =========================
268
+
269
+ Ruby:
270
+ * Fixed an issue with previous alpha release which lead to removed files
271
+ being packaged inside the gem
272
+
273
+ 4.0.0.alpha1 (2019-05-01)
274
+ =========================
275
+
276
+ Ruby:
277
+ * Removed Mouse and Keyboard as their implementations are not compliant to WebDriver specification
278
+ * Removed TouchActionBuilder as its implementation is not compliant to WebDriver specification
279
+ * Change ActionBuilder to be fully compliant to WebDriver specification
280
+ * Change Manager to be fully compliant to WebDriver specification
281
+ * Removed all deprecated errors that are not compliant to WebDriver specification
282
+ * Update minimum required Ruby version to 2.4
283
+ * Changed capabilities to use only those that are compliant to WebDriver specification
284
+ * Removed deprecated timeout setter on default HTTP client
285
+ * Removed deprecated Remote::W3C::Capabilities
286
+ * Fixed an issue when services are not shutdown properly
287
+
288
+ Chrome:
289
+ * Removed support for OSS mode - use W3C mode instead by using
290
+ Selenium::WebDriver::Chrome::Options.new(options: {w3c: true})
291
+
292
+ PhantomJS:
293
+ * Removed support for PhantomJS driver
294
+
295
+ Firefox:
296
+ * Removed support for legacy Firefox driver - use GeckoDriver instead
297
+ * Removed deprecated outdated capabilities
298
+ * Fixed an issue when passing :profile string to Firefox::Options.new would
299
+ result in NoMethodError. Now it will find a profile with such name on your
300
+ system and use it accordingly (issue #7119)
301
+
302
+ 3.142.7 (2019-12-27)
303
+ ====================
304
+
305
+ Ruby:
306
+ * Fix keyword argument deprecations in Ruby 2.7 (thanks @connorshea)
307
+
308
+ 3.142.6 (2019-10-04)
309
+ ====================
310
+
311
+ Ruby:
312
+ * Loosen ChildProcess dependency so that 3.0+ can be used (thanks @jaredbeck)
313
+
314
+ 3.142.5 (2019-10-01)
315
+ ====================
316
+
317
+ Ruby:
318
+ * Loosen RubyZip dependency so that 1.3+ can be used (thanks @vtamara)
319
+
320
+ 3.142.4 (2019-09-02)
321
+ ====================
322
+
323
+ Chrome:
324
+ * Added support for new command for getting logs in ChromeDriver 76+
325
+ with W3C mode on
326
+
327
+ 3.142.3 (2019-05-21)
328
+ ====================
329
+
330
+ Firefox:
331
+ * Fixed a regression when Firefox binary path was not sent to GeckoDriver
332
+ by default and browser could not be located (issue #7219)
333
+
334
+ 3.142.2 (2019-05-11)
335
+ ====================
336
+
337
+ Chrome:
338
+ * Fixed an issue when getting/setting network conditions and sending CDP
339
+ commands didn't work with Grid (issue #7174)
340
+
341
+ Safari:
342
+ * Fixed an issue when getting/setting permissions and attaching debugger
343
+ didn't work with Grid (issue #7174)
344
+
345
+ 3.142.1 (2019-05-07)
346
+ ====================
347
+
348
+ Firefox:
349
+ * Fixed an issue when processing error in legacy driver would result
350
+ in NoMethodError (issue #7178)
351
+
352
+ 3.142.0 (2019-04-24)
353
+ ====================
354
+
355
+ Ruby:
356
+ * Fixed an issue when services are not shutdown properly
357
+
358
+ Firefox:
359
+ * Fixed an issue when passing :profile string to Firefox::Options.new would
360
+ result in NoMethodError. Now it will find a profile with such name on your
361
+ system and use it accordingly (issue #7119)
362
+ * Fixed an issue when instantiating Firefox driver with capabilities having
363
+ :marionette would result in NoMethodError (issue #7120)
364
+
365
+ 3.141.5926 (2019-04-18)
366
+ =======================
367
+
368
+ Ruby:
369
+ * Fixed an issue when Selenium itself would print deprecation warning
370
+ for TimeoutError
371
+ * Fixed a regression when socket poller would raise Errno::EBADF on JRuby
372
+
373
+ 3.141.592 (2019-04-18)
374
+ ======================
375
+
376
+ Ruby:
377
+ * Updated minimum required Ruby version to 2.3
378
+ * Added support for ChildProcess 1.x
379
+ * Improved socket connection waiting (thanks @N0xFF)
380
+ * Changed waiting to use monotonic clock instead of Time class to avoid
381
+ collisions with Timecop and similar gems
382
+ * Removed deprecated PortProber.random
383
+ * Added strictFileInteractability to the list of known capabilities
384
+ * Added InsecureCertificateError
385
+ * Added support for setting SOCKS version in proxy (issue #6938)
386
+ * Implemented new window command using driver.manage.new_window. The command
387
+ is supported by recent Firefox, Safari and IE drivers (thanks @dylanlive)
388
+ * Added support for passing proc to driver_path setter in Service classes
389
+ * Deprecated all errors which don't exist in WebDriver specification
390
+ * Deprecated TouchActionBuilder which is not a part of WebDriver specification
391
+ and is only supported by Chrome, but is likely to be dropped in v75.
392
+ ActionBuilder should be used instead
393
+ * Deprecated using Remote::W3C::Capabilities in favor of Remote::Capabilities
394
+
395
+ Chrome:
396
+ * Added support for execute CDP commands using Driver#execute_cdp
397
+ * Removed GPU disabling in ChromeDriver when using Options#headless!
398
+ * Switched suggested download URL to HTTPS (thanks @JLLeitschuh)
399
+ * Added support for instantiating service class directly and moved all driver
400
+ executable configuration there (command-line arguments, port, etc.)
401
+ Passing driver_opts, driver_path and port to driver initializer is now
402
+ deprecated so use Selenium::WebDriver::Service.chrome instead, which allows
403
+ to customize executable behavior in similar way. Once initialized, this
404
+ object can be passed as :service keyword during driver initialization.
405
+ * Deprecated Chrome.driver_path= in favor of Service::Chrome.driver_path=
406
+
407
+ Edge:
408
+ * Added support for instantiating service class directly and moved all driver
409
+ executable configuration there (command-line arguments, port, etc.)
410
+ Passing driver_opts, driver_path and port to driver initializer is now
411
+ deprecated so use Selenium::WebDriver::Service.firefox instead, which allows
412
+ to customize executable behavior in similar way. Once initialized, this
413
+ object can be passed as :service keyword during driver initialization
414
+ * Deprecated Edge.driver_path= in favor of Service::Edge.driver_path=
415
+
416
+ Firefox:
417
+ * Deprecated legacy driver in favor of GeckoDriver
418
+ * Fixed Firefox path lookup on Cygwin (issue #6908)
419
+ * Added support for instantiating service class directly and moved all driver
420
+ executable configuration there (command-line arguments, port, etc.)
421
+ Passing driver_opts, driver_path and port to driver initializer is now
422
+ deprecated so use Selenium::WebDriver::Service.firefox instead, which allows
423
+ to customize executable behavior in similar way. Once initialized, this
424
+ object can be passed as :service keyword during driver initialization
425
+ * Deprecated Firefox.driver_path= in favor of Service::Firefox.driver_path=
426
+ * Deprecated outdated capabilities
427
+
428
+ IE:
429
+ * Fixed an issue when native events could not be disabled using IE::Options
430
+ initializer
431
+ * Added support for instantiating service class directly and moved all driver
432
+ executable configuration there (command-line arguments, port, etc.)
433
+ Passing driver_opts, driver_path and port to driver initializer is now
434
+ deprecated so use Selenium::WebDriver::Service.ie instead, which allows
435
+ to customize executable behavior in similar way. Once initialized, this
436
+ object can be passed as :service keyword during driver initialization
437
+ * Deprecated IE.driver_path= in favor of Service::IE.driver_path=
438
+
439
+ Safari:
440
+ * Added support for instantiating service class directly and moved all driver
441
+ executable configuration there (command-line arguments, port, etc.)
442
+ Passing driver_opts, driver_path and port to driver initializer is now
443
+ deprecated so use Selenium::WebDriver::Service.safari instead, which allows
444
+ to customize executable behavior in similar way. Once initialized, this
445
+ object can be passed as :service keyword during driver initialization
446
+ * Deprecated Safari.driver_path= in favor of Service::Safari.driver_path=
447
+
448
+ Remote:
449
+ * Change default HTTP client to use persistent connections
450
+
451
+ 3.141.0 (2018-10-31)
452
+ ====================
453
+
454
+ Edge:
455
+ * Added new Edge::Options class that should be used to customize browser
456
+ behavior. The instance of options class can be passed to driver
457
+ initialization using :options key. Please, note that using options require
458
+ insiders builds of Edge.
459
+
460
+ Chrome:
461
+ * Included HasLocation to Chrome driver (thanks @sidonath).
462
+ * Updated endpoint to send Chrome Debugging Protocol commands. The old one
463
+ has been deprecated in ChromeDriver 40.
464
+
465
+ Safari:
466
+ * Added new Safari::Options class that should be used to customize browser
467
+ behavior. The instance of options class can be passed to driver
468
+ initialization using :options key. Please, note that using options require
469
+ Safari 12+.
470
+
471
+ Remote:
472
+ * Allow passing Options instances to remote driver initialization using
473
+ :options key. This feature allows to use browser-specific options classes
474
+ (Chrome::Options, Firefox::Options, etc.) and pass them to Server/Grid
475
+ instead of capabilities.
476
+
477
+ 3.14.1 (2018-10-03)
478
+ ===================
479
+
480
+ Ruby:
481
+ * Added a workaround to ignore Errno::EALREADY error when starting drivers
482
+ on Windows Subsystem for Linux
483
+ * Changed default pause duration to 0 for Selenium::WebDriver::Driver#action#pause (thanks @twalpole)
484
+ * Deprecated Selenium::WebDriver::PortProber#random
485
+ in favor of Selenium::WebDriver::PortProber#above
486
+ * Fixed a bug when Selenium::WebDriver::Element#drag_and_drop would not
487
+ work in certain cases
488
+ * Updated RubyZip dependency to 1.2.2 which fixes security vulnerability
489
+
490
+ Edge:
491
+ * Added support for --silent driver flag
492
+ * Fixed an incorrect dash symbol when passing arguments to MicrosoftWebDriver.exe
493
+
494
+ Firefox:
495
+ * Fixed an incorrect dash symbol when passing arguments to GeckoDriver
496
+
497
+ Safari:
498
+ * Fixed a bug when Selenium::WebDriver::Element#displayed? would raise error
499
+ in Safari 12
500
+
501
+ 3.14.0 (2018-08-03)
502
+ ===================
503
+
504
+ Ruby:
505
+ * Allow to customize default duration of movement of pointer actions using
506
+ Driver#action#default_move_duration= (thanks @prakharrr)
507
+ * Fixed an accidentally removed Selenium::WebDriver::Error::TimeoutError (thanks @twalpole)
508
+
509
+ Server:
510
+ * Fixed an issue when Server.latest couldn't parse the version
511
+
512
+ Remote:
513
+ * Added support for uploading multiple files by passing them as a string
514
+ separated by \n to Element#send_keys. Please, note that not all the drivers
515
+ have multiple file upload implemented (tested to work in ChromeDriver).
516
+
517
+ 3.13.1 (2018-07-20)
518
+ ===================
519
+
520
+ Chrome:
521
+ * Fixed an issue when empty Chrome options would cause DevToolsActivePort issue (thanks @artplan1)
522
+
523
+ Remote:
524
+ * Support detecting local files (thanks @mskvn)
525
+
526
+ 3.13.0 (2018-06-25)
527
+ ===================
528
+
529
+ Ruby:
530
+ * Address warnings for redefined methods and uninitialized instance variables
531
+
532
+ Chrome:
533
+ * Chrome options capabilities updated to use goog:chromeOptions.
534
+ Note that Selenium now requires ChromeDriver v2.31 at minimum.
535
+ * Added ability to tell headless Chrome to save files using Driver#download_path= (thanks @pelly)
536
+
537
+ 3.12.0 (2018-05-08)
538
+ ===================
539
+
540
+ Ruby:
541
+ * Added User-Agent header to requests from Selenium to give remote
542
+ ends more visibility into distribution of clients (thanks @sah)
543
+ * Added Selenium::WebDriver::VERSION constant (thanks @sah)
544
+ * Added changelog link to RubyGems page
545
+ * Fixed a bug when requests were sent with empty Content-Type,
546
+ which should instead be application/json (issue #5615 and #5659)
547
+ * Fixed a bug when failed connection attempt was retried without
548
+ grace period for remote to resolve its problem (thanks @amckinley42)
549
+ * Fixed a bug with accidentally removed HasNetworkConnection driver extension
550
+
551
+ Chrome:
552
+ * Fixed a bug when deprecation message for using Chrome extensions
553
+ was incorrectly shown (thanks @treby)
554
+
555
+ Safari:
556
+ * Added support getting permissions via Driver#permissions
557
+ * Added support setting permissions via Driver#permissions=
558
+ * Added support enabling web inspector via Driver#attach_debugger
559
+
560
+ 3.11.0 (2018-03-11)
561
+ ===================
562
+
563
+ Ruby:
564
+ * No changes in Ruby bindings for this release
565
+
566
+ 3.10.0 (2018-03-02)
567
+ ===================
568
+
569
+ Ruby:
570
+ * Added Errno::EAFNOSUPPORT to the list of ignored errors when finding port (thanks @jtarchie)
571
+ * Added automatic conversion of noProxy to the list of strings as required
572
+ by W3C WebDriver Specification (issue #5004)
573
+
574
+ Chrome:
575
+ * Added Chrome::Options#headless! shortcut to enable headless mode (thanks @pulkitsharma07)
576
+
577
+ IE:
578
+ * Added support for getting local storage using Driver#local_storage
579
+ * Added support for getting session storage using Driver#session_storage
580
+
581
+ 3.9.0 (2018-02-06)
582
+ ==================
583
+
584
+ Ruby:
585
+ * Fixed a bug when omitted capabilities caused NoMethodError (issue #5185)
586
+ * Fixed a bug when getting page source in W3C dialect caused WebDriverError (thanks @KazuCocoa)
587
+ * Fixed a bug when getting backtrace of server error would case NoMethodError (thanks @mcking49)
588
+ * Updated YARD to ~> 0.9.11
589
+ * Updated rubyzip to ~> 1.2 (thanks @michaelglass)
590
+
591
+ Chrome:
592
+ * Added support for getting network conditions via Driver#network_conditions
593
+ * Added support for setting network conditions via Driver#network_conditions=
594
+ * Added support to allow driver respond with custom error codes (issue #5376)
595
+
596
+ Firefox:
597
+ * Improved GeckoDriver binary lookup mechanism (issue #5240)
598
+
599
+ 3.8.0 (2017-12-01)
600
+ ==================
601
+
602
+ Ruby:
603
+ * Removed deprecated Alert#authenticate
604
+ * Removed deprecated :port initialization argument of Remote::Bridge.
605
+ Use :url instead.
606
+ * Removed deprecated Selenium::WebDriver::Remote::W3CCapabilities.
607
+ Use Selenium::WebDriver::Remote::Capabilities instead.
608
+
609
+ IE:
610
+ * Remove deprecated :log_file driver initialization argument.
611
+ Use driver_opts: {log_file: ''} instead.
612
+ * Remove deprecated :log_level driver initialization argument.
613
+ Use driver_opts: {log_level: ''} instead.
614
+ * Remove deprecated :implementation driver initialization argument.
615
+ Use driver_opts: {implementation: ''} instead.
616
+ * Removed deprecated :service_args driver initialization argument.
617
+ Use driver_opts: {args: ['--some-switch']} instead.
618
+
619
+ Chrome:
620
+ * Removed deprecated :service_log_path driver initialization argument.
621
+ Use driver_opts: {log_path: 'path'} instead.
622
+ * Removed deprecated :service_args driver initialization argument.
623
+ Use driver_opts: {args: ['--some-switch']} instead.
624
+
625
+ Firefox:
626
+ * Removed deprecated :service_args driver initialization argument.
627
+ Use driver_opts: {args: ['--some-switch']} instead.
628
+
629
+ Safari:
630
+ * Removed deprecated :service_args driver initialization argument.
631
+ Use driver_opts: {args: ['--some-switch']} instead.
632
+
633
+ Edge:
634
+ * Removed deprecated :service_args driver initialization argument.
635
+ Use driver_opts: {args: ['--some-switch']} instead.
636
+
637
+ 3.7.0 (2017-11-03)
638
+ ==================
639
+
640
+ Ruby:
641
+ * Added //rb:lint task to check codebase using RuboCop (thanks @RustyNail)
642
+ * Fixed codebase to comply more to Ruby community style guide (thanks @RustyNail)
643
+ * Packaged all dependencies to Selenium repository so that non-Ruby committers
644
+ can build and test Ruby bindings easier
645
+ * Update errors list according to latest changes of specification (thanks @jaysonesmith)
646
+
647
+ Firefox:
648
+ * Added Firefox::Options#headless! shortcut to enable headless mode (thanks @franzliedke)
649
+
650
+ 3.6.0 (2017-09-25)
651
+ ==================
652
+
653
+ Edge:
654
+ * Fixed a bug when execute_script failed using server + Edge (issue #4651)
655
+
656
+ Firefox:
657
+ * Fixed a bug when web extension failed to install using profile class (issue #4093)
658
+
659
+ PhantomJS:
660
+ * Support is deprecated in favor of headless Chrome/Firefox or HTMLUnit.
661
+ PhantomJS is no longer actively developed, and support will eventually
662
+ be dropped.
663
+
664
+ 3.5.2 (2017-09-07)
665
+ ==================
666
+
667
+ Ruby:
668
+ * Removed platformVersion from W3C payload (issue #4641)
669
+ * Fixed a bug when proxy type was not compliant to specification (issue #4574)
670
+ * Added support for passing speed to flick action (issue #4549)
671
+ * Using TouchActionBuilder no longer prints mouse/key deprecations
672
+ * Deprecated Alert#authenticate
673
+ * Added support for DEBUG environment variable which enables full debug mode in gem
674
+
675
+ Firefox:
676
+ * Fixed a bug when page load timeout was not properly constructed in new session payload
677
+ * Fixed a bug when GeckoDriver error stacktrace was not displayed (issue #3683)
678
+
679
+ Chrome:
680
+ * Added workaround for the case when findElements call returns null (issue #4555)
681
+ * Chrome::Driver now includes touch actions by default
682
+
683
+ 3.5.1 (2017-08-15)
684
+ ==================
685
+
686
+ Ruby:
687
+ * Fixed a bug when Chrome/Firefox (and probably other) drivers could not be
688
+ started on JRuby (issue #4453).
689
+
690
+ 3.5.0 (2017-08-10)
691
+ ==================
692
+
693
+ Firefox:
694
+ * Firefox subprocess output is now only redirected when debug is set (issue #4311)
695
+ * Fixed a bug where non-integers could be sent when setting window rect
696
+ * Fixed Firefox location detection on Windows_x64 (thanks kamenlitchev)
697
+ * Fixed passing of profile with a W3C compatible remote end
698
+
699
+ IE:
700
+ * Added new IE::Options class that should be used to customize browser
701
+ behavior (native events, element scroll behavior, etc).
702
+ The instance of options class can be passed to driver initialization using
703
+ :options key. Old way of passing these customization directly to driver
704
+ initialization is deprecated.
705
+
706
+ 3.4.4 (2017-07-13)
707
+ ==================
708
+
709
+ Firefox:
710
+ * Added support for GeckoDriver install addon command (issue 4215).
711
+ * Added support for GeckoDriver uninstall addon command (issue 4215).
712
+ * Raise error when passing :firefox_options as capability.
713
+
714
+ Ruby:
715
+ * Fixed a bug when childprocess were leaking /dev/null file descriptor (issue 4285).
716
+ * Make Remote::Driver class so that it can be inherited from.
717
+
718
+ 3.4.3 (2017-06-16)
719
+ ==================
720
+
721
+ Ruby:
722
+ * Fixed a regression when passing symbol as :desired_capabilities caused NoMethodError (issue 4187).
723
+
724
+ 3.4.2 (2017-06-14)
725
+ ==================
726
+
727
+ Ruby:
728
+ * Added unhandledPromptBehavior to the list of known capabilities.
729
+ * Added timeouts to the list of known capabilities.
730
+ * Fixed a regression when passing hash as :desired_capabilities caused NoMethodError (issue 4172, thanks Thomas Walpole).
731
+ * Fixed a regression when extension capabilities (the ones that have ":" inside)
732
+ were filtered out when doing protocol handshake.
733
+ * Improved handling of capability names passed as plain camelCased strings
734
+ vs Rubyish snake_cased symbols when doing protocol handshake.
735
+
736
+ Chrome:
737
+ * Fixed a regression when passing :switches to driver initialization was ignored.
738
+
739
+ 3.4.1 (2017-06-13)
740
+ ==================
741
+
742
+ Ruby:
743
+ * Implemented a new dual-dialect mechanism for communication with drivers
744
+ (a.k.a. protocol handshake). There shouldn't be any noticeable differences
745
+ but since this is a significant refactoring of internal APIs, some bugs
746
+ could slip into the release.
747
+ * Renamed ElementClickIntercepted to ElementClickInterceptedError.
748
+ * Renamed ElementNotInteractable to ElementNotInteractableError.
749
+ * Deprecated W3CCapabilities in favor of Capabilities (it was meant to be private API).
750
+ * Added a warning when trying to save screenshot without .png extension (thanks @abotalov).
751
+
752
+ IE:
753
+ * Added support for both old IEDriver which uses OSS dialect of JSON wire
754
+ protocol (<= 3.4.0) and new IEDriver which uses W3C dialect (not yet released).
755
+
756
+ Safari:
757
+ * Removed runtime dependencies used for old SafariDriver (u.g. websocket).
758
+
759
+ Chrome:
760
+ * Added new Chrome::Options class that should be used to customize browser
761
+ behavior (command line arguments, extensions, preferences, mobile emulation, etc.).
762
+ The instance of options class can be passed to driver initialization using
763
+ :options key. Old way of passing these customization directly to driver
764
+ initialization is deprecated.
765
+
766
+ Firefox:
767
+ * Added new Firefox::Options class that should be used to customize browser
768
+ behavior (command line arguments, profile, preferences, Firefox binary, etc.).
769
+ The instance of options class can be passed to driver initialization using
770
+ :options key. Old way of passing these customization directly to driver
771
+ initialization is deprecated.
772
+
773
+ 3.4.0 (2017-04-21)
774
+ ===================
775
+
776
+ Edge:
777
+ * Fix bug when response is not wrapped with "value"
778
+
779
+ Firefox:
780
+ * Support geckodriver v0.16
781
+
782
+ Ruby:
783
+ * Support ElementClickIntercepted error from W3C spec
784
+ * Support ElementNotInteractable error from W3C spec
785
+ * Implement window rect commands
786
+ * Implement window minimize command
787
+
788
+ 3.3.0 (2017-03-07)
789
+ ===================
790
+
791
+ Firefox:
792
+ * geckodriver v0.15 or later is required
793
+
794
+ W3C:
795
+ * Support for command response data to be wrapped in a 'value' key
796
+ * Support for updated timeout formats
797
+
798
+ 3.2.2 (2017-03-01)
799
+ ===================
800
+
801
+ Ruby:
802
+ * Fix bug for supporting Logger output on Ruby versions < 2.3
803
+ * Add more logging and adjust output levels
804
+
805
+ Remote:
806
+ * Support for creating Remote session with browser name and url parameters
807
+
808
+ 3.2.1 (2017-02-24)
809
+ ===================
810
+
811
+ Ruby:
812
+ * Fix bug for supporting Logger on Ruby versions < 2.3
813
+
814
+ 3.2.0 (2017-02-22)
815
+ ===================
816
+
817
+ Ruby:
818
+ * Implement new Logger class
819
+ * Fix issue with chromedriver process leader incompatibility on Win7 (issue 3512)
820
+
821
+ 3.1.0 (2017-02-14)
822
+ ===================
823
+
824
+ Firefox:
825
+ * implement W3C actions endpoint
826
+
827
+ 3.0.8 (2017-02-08)
828
+ ===================
829
+
830
+ Firefox:
831
+ * Fix signature of element returned from #active_element
832
+
833
+ 3.0.7 (2017-02-06)
834
+ ===================
835
+
836
+ Firefox:
837
+ * Fix signature of element arrays returned from #find_elements (issue 3471)
838
+
839
+ 3.0.6 (2017-02-05)
840
+ ===================
841
+
842
+ Firefox:
843
+ * Implement W3C window position
844
+ * Update implementation for W3C send text to alert
845
+ * Implement timeout settings
846
+ * Remove default capabilities (thanks lmtierney)
847
+ * Fix signature of elements returned from #execute_script (thanks Thomas Walpole)
848
+
849
+ 3.0.5 (2016-12-27)
850
+ ===================
851
+
852
+ Ruby:
853
+ * Support for Ruby 2.4.0 (Thanks jamespdo)
854
+
855
+ 3.0.4 (2016-12-21)
856
+ ===================
857
+
858
+ Firefox:
859
+ * Implement profile support via geckodriver (#2933 thanks lmtierney)
860
+
861
+ Ruby:
862
+ * Fix bug preventing use of Curb client (#2951 thanks clarkenciel)
863
+ * Support Net::HTTP::Persistent version 3 (#3219 thanks Pete Johns)
864
+ * Allow Net::HTTP::Default to set open_timout and read_timeout independently (#3264 thanks richseviora)
865
+ * Change default for Net::HTTP::Default#open_timeout to facilitate debuggers (#3264 thanks richseviora)
866
+
867
+ 3.0.3 (2016-11-26)
868
+ ===================
869
+
870
+ Ruby:
871
+ * Allow drivers to be executed from batch files on Windows
872
+
873
+ 3.0.2 (2016-11-25)
874
+ ===================
875
+
876
+ Ruby:
877
+ * Implement #driver_path as parameter when initializing a driver (thanks lmtierney)
878
+ * Improve Ruby syntax in driver commands (thanks joe_schulte)
879
+ * Improve performance when shutting down drivers (thanks lmtierney)
880
+ * Fix bug for finding open ports on Windows (thanks kou1okada)
881
+ * Fix bug in auto detection of drivers which allowed selection of non-executable binaries
882
+
883
+ W3C:
884
+ * Implement #cookie_named and #delete_all_cookies methods (thanks lmtierney)
885
+ * Implement element #property method (thanks lmtierney)
886
+
887
+ Chrome:
888
+ * Fix bug in switches (thanks danvine)
889
+
890
+ 3.0.1 (2016-11-06)
891
+ ===================
892
+
893
+ Ruby:
894
+ * Always send JSON Wire Protocol commands to server instead of W3C commands
895
+
896
+ 3.0.0 (2016-10-13)
897
+ ===================
898
+
899
+ Firefox:
900
+ * Update :firefox_options support for geckodriver 0.11
901
+
902
+ 3.0.0.beta4 (2016-09-29)
903
+ ===================
904
+
905
+ Ruby:
906
+ * Remove support for deprecated driver options
907
+ * Add support for latest driver options
908
+ * Add support for :port parameter for launching driver
909
+ * Add support for :service_args parameter for driver command line switches
910
+ * Improve reliability by increasing service shutdown timeout (#2815; thanks John Barbuto )
911
+
912
+ Firefox:
913
+ * Add support for :firefox_options in geckodriver
914
+
915
+ Safari:
916
+ * Remove support for legacy Safari driver (use Apple's driver built in to Safari 10+)
917
+
918
+ Chrome:
919
+ * Set chromedriver to not log by default
920
+
921
+ 3.0.0.beta3.1 (2016-09-03)
922
+ ===================
923
+
924
+ Firefox:
925
+ * Fixed bug - legacy firefox extension included in gem
926
+
927
+ 3.0.0.beta3 (2016-09-01)
928
+ ===================
929
+
930
+ Firefox:
931
+ * Implemented w3c getAttribute with javascript atom
932
+
933
+ 3.0.0.beta2.1 (2016-08-03)
934
+ ===================
935
+
936
+ Ruby:
937
+ * Fixed bug in collections
938
+
939
+ 3.0.0.beta2 (2016-08-02)
940
+ ===================
941
+
942
+ Firefox:
943
+ * Fixed bug with form submission
944
+ * Improved w3c element handling
945
+
946
+ 3.0.0.beta1 (2016-07-28)
947
+ ===================
948
+
949
+ Ruby:
950
+ * Remove support for RC client
951
+ * Remove support for Ruby < 2.0
952
+ * Update code to support designated style guidelines
953
+ * Chrome/GeckoDriver/PhantomJS/IE/Edge drivers are refactored to use standard
954
+ service class (issue 1797)
955
+ * Option `:timeout` was removed from IE server (issue 1797)
956
+
957
+ Chrome:
958
+ * Remove override of default chromedriver behavior for chrome.detach (issue 2418)
959
+
960
+ Firefox:
961
+ * Rename wires to geckodriver
962
+ * Change default usage from FirefoxDriver to geckodriver
963
+
964
+ Safari:
965
+ * Initial support for Apple's Safari Driver in Sierra (issue #2475)
966
+
967
+ Android and iPhone:
968
+ * Remove support for deprecated classes (Issue #2476)
969
+
970
+ 2.53.0 (2016-03-15)
971
+ ===================
972
+
973
+ Ruby:
974
+ * Removed dependency on "multi_json" (issue 1632)
975
+ * Properly handle namespaces in install manifest of Firefox add-ons (issue 1143)
976
+ * Improve error handling when stopping browsers (thanks bsedat)
977
+ * Fix deselecting options in select lists (thanks glib-briia)
978
+ * Fix w3c error handling
979
+ * Update w3c Capabilities support
980
+
981
+ IE:
982
+ * support for alert credentials (issue #1698, thanks Alan Baird & trabulmonkee)
983
+
984
+ 2.52.0 (2016-02-12)
985
+ ===================
986
+
987
+ No Ruby changes in this release.
988
+
989
+ 2.51.0 (2016-02-05)
990
+ ===================
991
+
992
+ No Ruby changes in this release.
993
+
994
+ 2.50.0 (2016-01-27)
995
+ ===================
996
+
997
+ Firefox:
998
+ * Fix bug for locating binary in local path (issue 1523, thanks Gopal Patel)
999
+
1000
+ 2.49.0 (2016-01-13)
1001
+ ===================
1002
+
1003
+ Ruby:
1004
+ * support for SessionNotCreatedError (thanks Alexander Bayandin)
1005
+
1006
+ Safari:
1007
+ * Limit support to OS X (issue 1186)
1008
+ * support for multiple concurrent drivers
1009
+
1010
+ PhantomJS:
1011
+ * Implement Socket locking
1012
+
1013
+ IE:
1014
+ * support for multiple concurrent drivers
1015
+
1016
+ Chrome:
1017
+ * prevent 404 error when shutting down Chrome service (thanks Fumiaki MATSUSHIMA)
1018
+ * logging turned on by default
1019
+ * support local storage capabilities
1020
+
1021
+ Firefox:
1022
+ * support setting the location of Firefox binary to use when run locally
1023
+ * add default lookup of Homebrew Cask default directory (issue 1437)
1024
+
1025
+ W3C Specification:
1026
+ * support for using with Remote WebDriver
1027
+ * implement window size command
1028
+ * implement window position command
1029
+ * implement element size command
1030
+ * implement element position command
1031
+ * implement full screen window command
1032
+ * implement page source command
1033
+
1034
+ 2.48.1 (2015-10-13)
1035
+ ===================
1036
+
1037
+ Firefox:
1038
+ * Mozilla's Wires Driver for Marionette works with Remote WebDriver
1039
+
1040
+ 2.48.0 (2015-10-07)
1041
+ ===================
1042
+
1043
+ Firefox:
1044
+ * Initial implementation of Mozilla's Wires Driver for Marionette; Supported in version 43 and higher
1045
+
1046
+ Edge:
1047
+ * Fix execution with Remote Server
1048
+ * Fix Javascript Execution
1049
+ * Implement Alert Handling
1050
+ * Implement Window Switching
1051
+
1052
+ Ruby:
1053
+ * Initial implementation of W3C WebDriver syntax to support Mozilla Wires
1054
+ * Change to RSpec expect syntax
1055
+ * Specs can be run from relative directories
1056
+
1057
+
1058
+ 2.47.1 (2015-07-31)
1059
+ ===================
1060
+
1061
+ Edge:
1062
+ * Initial implementation of Microsoft's EdgeDriver
1063
+
1064
+
1065
+ 2.47.0 (2015-07-29)
1066
+ ===================
1067
+
1068
+ Safari:
1069
+ * Remove support for installing additional extensions due to architectural changes introduced with Safari 7
1070
+
1071
+ 2.46.2 (2015-06-05)
1072
+ ===================
1073
+ * Fix encoding issue which prevents Element#send_keys to work on Ruby < 2.0 (#621)
1074
+
1075
+ 2.46.1 (2015-06-04)
1076
+ ===================
1077
+ * Fix aborted rubygems.org release
1078
+
1079
+ 2.46.0 (2015-06-04)
1080
+ ===================
1081
+
1082
+ Firefox:
1083
+ * Support for Firefox 38
1084
+ * Fix performance bug by not forcing garbage collection in httpd.js
1085
+
1086
+ Chrome:
1087
+ * Fixed ChromeDriver port race condition (#449 - thanks Jason Anderson)
1088
+
1089
+ Ruby changes:
1090
+ * Retry binding to ports unavailable by EADDRNOTAVAIL (#394).
1091
+ * Remove Presto-Opera support (Blink-based Opera still supported)
1092
+
1093
+ 2.45.0 (2015-02-28)
1094
+ ===================
1095
+
1096
+ Firefox:
1097
+ * Native events in Firefox relied on an API that Mozilla no longer
1098
+ provides. As such, fall back to synthesized events on recent Firefox
1099
+ versions.
1100
+
1101
+ Ruby changes:
1102
+ * Allow switching windows when current window is closed (thanks Titus Fortner).
1103
+ * Add :javascript_enabled to Android capabilities.
1104
+
1105
+ 2.44.0 (2014-10-05)
1106
+ ===================
1107
+
1108
+ No Ruby changes in this release.
1109
+
1110
+ Firefox:
1111
+ * Native event support for Firefox 24, 31, 32 and 33
1112
+
1113
+ 2.43.0 (2014-09-09)
1114
+ ===================
1115
+
1116
+ * Make sure UnhandledAlertErrors includes the alert text if provided by the driver.
1117
+ * Firefox
1118
+ - Make sure the browser process is properly killed if silent startup hangs (#7392)
1119
+ - native events support for Firefox 24, 31 and 32
1120
+ * Loosen websocket dependency to ~> 1.0
1121
+ * Add support for `switch_to.parent_frame` (thanks abotalov)
1122
+ * Fix download location for Selenium::Server.{latest,get} (#7049 - thanks marekj)
1123
+
1124
+ 2.42.0 (2014-05-23)
1125
+ ===================
1126
+
1127
+ Firefox:
1128
+ * Fix for extensions whose install.rdf uses an attribute for em:id (#5978)
1129
+ * Support for Firefox 29 Native Events
1130
+
1131
+ 2.41.0 (2014-03-28)
1132
+ ===================
1133
+
1134
+ * Removed dead browser visibility methods.
1135
+ * Firefox:
1136
+ * Native events support for Firefox 28 (removed support for 26)
1137
+
1138
+ 2.40.0 (2014-02-19)
1139
+ ===================
1140
+
1141
+ * Fix bug where FileReaper would not reap files added in a child process
1142
+ * Document AbstractEventListener (#5994)
1143
+ * Safari:
1144
+ * Add Safari::Options + clean up Safari extension handling (#6382)
1145
+ * Add support for user extensions (#6815)
1146
+ * Firefox:
1147
+ * Support native events for Firefox 27 + removed native event support for Firefox 25
1148
+
1149
+ 2.39.0 (2013-12-17)
1150
+ ===================
1151
+
1152
+ * Firefox: Native events support for Firefox 26.
1153
+ * Add deprecation warning to the Android driver.
1154
+ * Make sure selenium/client doesn't require Rake (#6709)
1155
+
1156
+ 2.38.0 (2013-12-05)
1157
+ ===================
1158
+
1159
+ * Enforce required Ruby version in gemspec, not just transitively through rubyzip.
1160
+ * Expose the logging API (beta API, subject to change) in the Ruby client: driver.manage.logs #=> Selenium::WebDriver::Logs
1161
+ * Update to support native events for Firefox 25
1162
+
1163
+
1164
+ 2.37.0 (2013-10-18)
1165
+ ===================
1166
+
1167
+ * As of this version, selenium-webdriver no longer supports Ruby < 1.9.2
1168
+ * Depend on rubyzip ~> 1.0.0
1169
+ * Added SOCKS proxy support
1170
+ * Fixed support for SVG documents in the atoms.
1171
+ * Fixed computing an element's container dimensions to account for the scrollbar size when scrolling
1172
+ * Added Capabilities.htmlunitwithjs
1173
+
1174
+ Chrome:
1175
+ * Pass through the prefs option as a Chrome capability (#5929).
1176
+ Firefox:
1177
+ * Updated Firefox native event components to support Firefox 24.
1178
+ * New elementScrollBehavior capability.
1179
+ * Fixed getLocation to work on scrolled pages.
1180
+ * Fixed autoscrolling for elements located in frames.
1181
+ * Fixed drag-n-drop for elements in frames with native events
1182
+ IE:
1183
+ * Use native events by default, also for remote IE (#4695)
1184
+ Safari:
1185
+ * Enable screenshots and input devices in the client.
1186
+
1187
+ 2.35.1 (2013-08-26)
1188
+ ===================
1189
+
1190
+ * Depend on rubyzip < 1.0.0
1191
+
1192
+ 2.35.0 (2013-08-14)
1193
+ ===================
1194
+
1195
+ Firefox:
1196
+ * Updated Firefox native event components to support Firefox 23.
1197
+
1198
+ 2.34.0 (2013-08-06)
1199
+ ===================
1200
+
1201
+ Remote:
1202
+ * Add `Driver#remote_status` (remote driver only) (#5669)
1203
+ Firefox:
1204
+ * Updated Firefox native event components to support Firefox 22.
1205
+ iPhone:
1206
+ * The driver is now deprecated (see http://appium.io/ or http://ios-driver.github.io/ios-driver/ for a replacement)
1207
+ Various:
1208
+ * Updated our copy of the Closure compiler and library to the most
1209
+ recent versions.
1210
+ * Updated the atoms library, including support for MS pointer events
1211
+ and refinements to element visibility tests.
1212
+ * Update synthesized mouse implementation. Mouse moves are
1213
+ implemented using nsIDOMWindowUtils.
1214
+ * Added support for the HTML5 "hidden" attribute. If an element, or
1215
+ ancestor, has hidden attribute make, it is not shown.
1216
+
1217
+ 2.33.0 (2013-05-26)
1218
+ ===================
1219
+
1220
+ Remote:
1221
+ * Support rotating devices, such as iPhone & iPad in simulator and Android browser in emulator
1222
+ * Support for interacting with touch screen devices, such as iPhone & iPad in simulator and Android browser in emulator
1223
+ * Improve error messages for invalid wire protocol responses
1224
+ Chrome:
1225
+ * Accept :service_log_path for Chrome. (#3475)
1226
+ IE:
1227
+ * IE >=9 versions triggerMouseEvent like other browsers (#2218).
1228
+ Various:
1229
+ * Element#text ignores elements in <head>
1230
+
1231
+
1232
+ 2.32.1 (2013-04-11)
1233
+ ===================
1234
+
1235
+ Safari:
1236
+ * Fix typo when encoding the Safari server redirect URL (#5472)
1237
+
1238
+ 2.32.0 (2013-04-09)
1239
+ ===================
1240
+
1241
+ Safari:
1242
+ * The Safari extension is now packaged with the gem and automatically installed (#5322)
1243
+ * Improved detection of the binary location on 64-bit windows (#5273)
1244
+ Opera:
1245
+ * Allow passing :desired_capabailities (#5279)
1246
+ Firefox:
1247
+ * This release supports versions 10esr, 17esr, 19, 20.
1248
+ * Improved SVG support
1249
+ Other:
1250
+ * Allow #click_and_hold without target (#5410).
1251
+ * Remove assumptions about returned capabilities (for ios-driver)
1252
+
1253
+ 2.31.0 (2013-03-02)
1254
+ ===================
1255
+
1256
+ Remote:
1257
+ * Expose session_id on the remote driver when used directly (#5240).
1258
+ Firefox:
1259
+ * Native events in Firefox 19
1260
+ Opera:
1261
+ * Treat UNSPECIFIED proxy type as a nil proxy (#5081).
1262
+ Other:
1263
+ * Add ability to pass :desired_capabilities to all the Ruby drivers, not just for :remote.
1264
+ Direct arguments take presendence. (#5078, see also https://github.com/SeleniumHQ/selenium/pull/8, https://github.com/SeleniumHQ/selenium/pull/11)
1265
+
1266
+ 2.30.0 (2013-02-20)
1267
+ ===================
1268
+
1269
+ Firefox:
1270
+ * Firefox 19 support (for synthesized events)
1271
+ Remote:
1272
+ * Pass along firefox_binary correctly (#5152)
1273
+ Safari:
1274
+ * Don't overwrite Driver#browser
1275
+ Other
1276
+ * Alert#text should raise on closed alert.
1277
+
1278
+ 2.29.0 (2013-01-21)
1279
+ ===================
1280
+
1281
+ Firefox:
1282
+ * Firefox 18 support (for native events).
1283
+ IE:
1284
+ * New 'requireWindowFocus' desired capability.
1285
+ * IE view port calculation take scroll bars into account (#3602)
1286
+ Safari:
1287
+ * Replace 'libwebsocket' with 'websocket' gem. This should ensure
1288
+ support with recent Safari.
1289
+ Other:
1290
+ * Fix Cygwin issue in PortProber/Firefox::Bianry (#4963)
1291
+
1292
+ 2.27.2 (2012-12-11)
1293
+ ===================
1294
+
1295
+ Firefox:
1296
+ * Fix for native events in v17 (packaging mistake)
1297
+
1298
+ 2.27.1 (2012-12-07)
1299
+ ===================
1300
+
1301
+ Firefox:
1302
+ * Fix "g[b] is not an object" error when passing null to execute_script.
1303
+
1304
+ 2.27.0 (2012-12-06)
1305
+ ===================
1306
+
1307
+ Firefox:
1308
+ * Support for Firefox 17.
1309
+ IE:
1310
+ * Path to the server executable can be specified (S::W::IE.path=)
1311
+ Other:
1312
+ * Added :phantomjs driver
1313
+
1314
+ 2.26.0 (2012-11-02)
1315
+ ===================
1316
+
1317
+ Firefox:
1318
+ * Added support for native events for Firefox 15 and 16.
1319
+ * Modified FirefoxDriver to use atoms to switch between frames.
1320
+ * FIXED: 4309: 'Could not convert Native argument arg 0' error with Firefox.
1321
+ * FIXED: 4375: Executing javascript hangs Firefox.
1322
+ * FIXED: 4165: WebDriver fails on a machine with no IP address.
1323
+ Safari:
1324
+ * Fixed SafariDriver to allow calling .quit() consecutively without error.
1325
+ * FIXED: 4676: Unable to fire javascript events into SVG's.
1326
+ * FIXED: 3969: SafariDriver should auto-dismiss alerts.
1327
+ IE:
1328
+ * FIXED: 4535: Hover still does not work perfectly in IE.
1329
+ * FIXED: 4593: Alert.accept() Cancels the Resend Alert/Dialog Box.
1330
+
1331
+ 2.25.0 (2012-07-19)
1332
+ ===================
1333
+
1334
+ * Respect no_proxy / NO_PROXY env vars (#4007).
1335
+ * Improve error message if a configured proxy refuses the connection.
1336
+ * Ignored exception can be configured on the Wait class.
1337
+ * Add Selenium::WebDriver::Support::Color class.
1338
+ * Ignore Errno::ENETUNREACH when trying to detect our local IP (#4165).
1339
+ * Ignore Errno::EADDRNOTAVAIL in PortProber (#3987).
1340
+ * Firefox:
1341
+ * Enumerate through client rects until finding one with non-zero dimensions when clicking.
1342
+ * Updated supported versions of Firefox to 17.
1343
+ * Allow windows to be resized from a frame (#3897).
1344
+ * Fix an issue where a call to submit could hang the driver.
1345
+ * IE:
1346
+ * Ability to configure logging through the :log_file and :log_level options.
1347
+ * Increasing stability of file upload dialog handling (#3858)
1348
+ * Better handling of overflow edge cases when determining element visibility.
1349
+
1350
+ 2.24.0 (2012-06-19)
1351
+ ===================
1352
+
1353
+ * bot.dom.getVisibleText does not properly handle display:run-in or display:table (#1584).
1354
+ * CSS selectors now support compound selectors.
1355
+ * IE:
1356
+ * Failure to click on an element in the IE Driver will yield a more meaningful error.
1357
+ * Crash on IE8 when S_FALSE is returned from get_Document (#4064)
1358
+ * DLLs are no longer bundled with the gem, users must use the standalone server from now on.
1359
+ * Firefox:
1360
+ * Support for Firefox 13
1361
+ * Ability to pass :proxy directly as Firefox option (no Profile needed).
1362
+
1363
+ 2.22.2 (2012-06-05)
1364
+ ===================
1365
+
1366
+ * Improve method for determining the local IP (#3987).
1367
+
1368
+ 2.22.1 (2012-06-01)
1369
+ ===================
1370
+
1371
+ * Fix for 1.8.7 behaviour of Socket.getaddrinfo.
1372
+ * Automatically reap Firefox profile on exit, not just in #quit.
1373
+
1374
+ 2.22.0 (2012-05-29)
1375
+ ===================
1376
+
1377
+ * Fix conflict with ActiveSupport's Object#load (#3819)
1378
+ * IE:
1379
+ * Default to standalone server executable, fall back to bundled DLLs.
1380
+ * The 'nativeEvents' capabilitiy is exposed as :native_events in the Ruby client (mode still experimental).
1381
+ * Firefox:
1382
+ * Native events for Firefox 12.
1383
+ * Native events retained for Firefox 3.x, 10 and 11.
1384
+ * Fix for typing in Firefox 12
1385
+ * Fix for typing on XHTML pages (#3647)
1386
+ * Fix for maximizing windows when switched to a frame (#3758)
1387
+ * Handle alerts from nested iframes (#3825)
1388
+ * Remote:
1389
+ * Honor HTTP_PROXY env vars (#3838).
1390
+ * Element#attribute returns nil if a boolean attribute is not present.
1391
+ * NoSuchWindowError will be thrown if the currently selected window is closed and another command is sent.
1392
+ * Safari:
1393
+ * support for frame switching, snapshot taking, execute script
1394
+ * message protocol changed, not backwards compatible with 2.21.
1395
+ * Style attributes are no longer lower-cased by default (#1089).
1396
+ * Make sure the Ruby client kills Firefox even when the RPC fails.
1397
+ * Make sure the Ruby client checks all network interfaces when finding free ports.
1398
+
1399
+
1400
+ 2.21.2 (2012-04-18)
1401
+ ===================
1402
+
1403
+ * Check MultiJson.respond_to?, depend on ~> 1.0
1404
+
1405
+ 2.21.1 (2012-04-16)
1406
+ ===================
1407
+
1408
+ * Set multi_json dependency to < 1.3 to avoid deprecation warnings.
1409
+
1410
+ 2.21.0 (2012-04-11)
1411
+ ===================
1412
+
1413
+ * Add Selenium::WebDriver::Window#maximize (#3489)
1414
+ * Safari:
1415
+ * New driver! See https://github.com/SeleniumHQ/selenium/wiki/SafariDriver.
1416
+ * Firefox:
1417
+ * Significant stability improvements.
1418
+ * Native events support for Firefox 11
1419
+ * Dropped native events support for Firefox 4-9
1420
+ * Window maximize implementation.
1421
+ * IE:
1422
+ * Ignore invisible dialogs (#3360).
1423
+ * Window maximize implementation.
1424
+ * Android:
1425
+ * Accept SSL certificates (#3504).
1426
+
1427
+ 2.20.0 (2012-02-28)
1428
+ ===================
1429
+
1430
+ * Loosen the multi_json and ffi dependencies (#3446)
1431
+ * Firefox:
1432
+ * Introduce a timeout for page loads. This needs to be used in
1433
+ conjunction with the unstable page load detection. Exposed as
1434
+ Timeouts#page_load=
1435
+ * Scroll containing elements, not just windows (#3391).
1436
+ * Element#{style => css_value}, with an alias for backwards compatibility.
1437
+ * Atoms:
1438
+ * Submit a form when the enter button is pressed in its input
1439
+ element.
1440
+ * Add a "mouse pixel scroll" event to the atoms events module.
1441
+ * Adding a public "mouseOver" action and a little internal
1442
+ refactoring around the mouseOver functionality.
1443
+ * Selenium::WebDriver::Wait: polling interval reduced from 0.5 to 0.2 seconds.
1444
+
1445
+ 2.19.0 (2012-02-08)
1446
+ ===================
1447
+
1448
+ * RC client supports server-side WebDriver-backed Selenium.
1449
+ * Touch APIs implemented in the Ruby client (Android only)
1450
+ * Firefox:
1451
+ * Fix deserialization of user.js in Firefox::Profile
1452
+ * Native events implemented for Firefox 10.
1453
+ * Renamed the experimental "fast" page loaded strategy "unstable"
1454
+ and disable queuing of commands when it's enabled.
1455
+ * Disabled native events for Firefox 8 as it's deprecated by Mozilla.
1456
+ * Fix for exceptions thrown when an alert occurs during script execution.
1457
+ * Chrome:
1458
+ * New download link for the server component:
1459
+ http://code.google.com/p/chromedriver/downloads/list
1460
+
1461
+ 2.18.0 (2012-01-27)
1462
+ ===================
1463
+
1464
+ * Fix for getting value attribute of option elements. (#3169)
1465
+ * Firefox and IE:
1466
+ * Raise UnhandledAlertError if an alert is present during an operation. The unhandled alert is also dismissed to mitigate repeat exceptions.
1467
+ * Firefox:
1468
+ * Better handling of getText invocations on SVG elements.
1469
+ * Fix for Element#click in Firefox 4. (#3253)
1470
+ * Fixed bug when deserializing user.js in Firefox::Profile.
1471
+ * Default profile preferences now read from shared JSON blob.
1472
+ * Android and iPhone:
1473
+ * Client support for the geolocation API (see Selenium::WebDriver::DriverExtensions::HasLocation)
1474
+ * Client support for the web storage API (see Selenium::WebDriver::DriverExtensions::HasWebStorage)
1475
+ * iPhone:
1476
+ * Server now supports frame switching (for frames in the same domain).
1477
+
1478
+ 2.17.0 (2012-01-16)
1479
+ ===================
1480
+
1481
+ * Firefox:
1482
+ * Fix excessive unwrapping when switching windows.
1483
+ * Set toolkit.telemetry.{enabled,rejected} in the default Firefox profile.
1484
+ * Support up to version 12 with synthesized events.
1485
+ * Fixed issues launching Firefox 9 due to modal dialog (#3154, #3144)
1486
+ * Chrome:
1487
+ * Now accepts a :url option, pointing to an already running Chrome server.
1488
+ * Now accepts a :proxy option (i.e. Selenium::WebDriver::Proxy instance).
1489
+ * iPhone:
1490
+ * iWebDriver will auto-play HTML5 video (#3152)
1491
+ * Element#attribute("value") falls back to the text of option tags, if no value attribute is specified (#3169)
1492
+
1493
+ 2.16.0 (2012-01-04)
1494
+ ===================
1495
+
1496
+ * Firefox:
1497
+ * Native events support for Firefox 9
1498
+ * Allow apps to use offline storage by default
1499
+ * Fix excessive unwrapping when executing mouseMove
1500
+ * Click in the middle, rather than the top-left of elements (#3034, #2700)
1501
+ * IE:
1502
+ * Raise StaleElementReferenceError when interacting with elements outside the currently focused frame
1503
+ * Handle frames and iframes in showModalDialog windows
1504
+ * Chrome:
1505
+ * Improve client handling of invalid error responses
1506
+ * iPhone:
1507
+ * Updated to latest CocoaHTTPServer
1508
+ * Remote:
1509
+ * Improve performance of Element#== by only making an RPC when necessary.
1510
+ * Disallow caching of GET requests
1511
+ * Various:
1512
+ * Raise ArgumentError instead of UnsupportedOperationError on invalid modifier key
1513
+ * Improve docs for Server, ActionBuilder and Window
1514
+ * Update to latest Sizzle (used for :css selectors in older browsers)
1515
+
1516
+ 2.15.0 (2011-12-08)
1517
+ ===================
1518
+
1519
+ * Firefox:
1520
+ * Now supports up to Firefox 11 (for syntesized events)
1521
+ * Implicit waits now change how long we wait for alerts. This
1522
+ functionality will change in 2.16
1523
+ * Fix scrolling issue (#2700)
1524
+ * IE:
1525
+ * Fix issue with getWindowHandles() and showModalDialog() (#1828)
1526
+ * Add support for the window sizing and positioning API
1527
+ * Make Platform.bitsize use the correct constant from FFI
1528
+ * WebDriver internals:
1529
+ * Atoms code contribution from Google
1530
+ * Closure updated
1531
+
1532
+
1533
+ 2.14.0 (2011-11-29)
1534
+ ===================
1535
+
1536
+ * Add Selenium::WebDriver::Support::Select class to ease working with select lists.
1537
+ * Add Capabilities.ipad and Capabilities.iphone (#2895)
1538
+ * Replace json_pure dependency with multi_json. (#2901)
1539
+ * Don't leave sockets hanging in SYN_SENT state while polling.
1540
+ * Allow selecting option elements even if the enclosing select has zero opacity.
1541
+ * Exception renames (old names aliased and will still work in rescues):
1542
+ * ObsoleteElementError -> StaleElementReferenceError
1543
+ * UnhandledError -> UnknownError
1544
+ * UnexpectedJavascriptError -> JavascriptError
1545
+ * NoAlertOpenError -> NoAlertPresentError
1546
+ * ElementNotDisplayedError -> ElementNotVisibleError
1547
+ * Firefox:
1548
+ * Fixed issue with scrolling on small viewports with native events.
1549
+ * Fix CSS selector support in Firefox 3.0
1550
+ * IE:
1551
+ * Implement the window control API
1552
+
1553
+ 2.13.0 (2011-11-18)
1554
+ ===================
1555
+
1556
+ * Firefox:
1557
+ * Recovering from null window references in the Firefox driver (#1438)
1558
+
1559
+ 2.12.2 (2011-11-13)
1560
+ ===================
1561
+
1562
+ * Firefox
1563
+ * Fix issue where Firefox 8 would throw permission errors after document.domain was modified (#2863).
1564
+ * Force window to the foreground on launch (see https://bugzilla.mozilla.org/show_bug.cgi?id=566671)
1565
+
1566
+ 2.12.1 (2011-11-11)
1567
+ ===================
1568
+
1569
+ * Fix regression when typing into contenteditable elements.
1570
+
1571
+ 2.12.0 (2011-11-10)
1572
+ ===================
1573
+
1574
+ * Loosened the ffi dependency now that Windows support is back (#2755).
1575
+ * Fix shutdown issues when using net-http-persistent against remote servers.
1576
+ * Added beta window control API (see Selenium::WebDriver::Options#window).
1577
+ * Firefox
1578
+ * Support for Firefox 8.
1579
+ * Better reporting of page size when attempting to move out of bounds.
1580
+ * Beta implementation of window control.
1581
+
1582
+ 2.11.0
1583
+ ======
1584
+
1585
+ (release skipped since it included only server-side changes)
1586
+
1587
+ 2.10.0 (2011-10-27)
1588
+ ===================
1589
+
1590
+ * Improve native keyboard emulation on Windows.
1591
+ * Allow commas in CSS selectors (#2301)
1592
+ * Firefox:
1593
+ * Fix intermittent error when finding elements by XPath (#2099)
1594
+ * Fix detection of maximum page size (#2700)
1595
+ * Avoid extension selection dialog (extensions.autoDisableScopes)
1596
+ * Fix invalid wire responses from the synthetic mouse (#2695)
1597
+ * Don't scroll unnecessarily (#1771).
1598
+ * IE:
1599
+ * Improve handling of #clear on disabled or readonly elements.
1600
+
1601
+ 2.9.1 (2011-10-24)
1602
+ ==================
1603
+
1604
+ * Workaround for invalid error responses (#2695).
1605
+
1606
+ 2.9.0 (2011-10-21)
1607
+ ==================
1608
+
1609
+ * Support file uploads to the remote server (see Selenium::WebDriver::DriverExtensions::UploadsFiles)
1610
+ * New exception: Selenium::WebDriver::Error::MoveTargetOutOfBoundsError
1611
+ * Implemented Chrome::Profile#add_extension
1612
+ * Better respect for preformatted text in Element#text
1613
+ * Reduced scrolling during tests for IE and Firefox.
1614
+ * Firefox:
1615
+ * Support for experimental page load detection.
1616
+ * IE:
1617
+ * Better detection of where to click on links (#2675).
1618
+ * Improve handling of modal dialogs (showModalDialog).
1619
+
1620
+ 2.8.0 (2011-10-06)
1621
+ ==================
1622
+
1623
+ * Firefox
1624
+ - Avoid telemetry prompt on Firefox 7
1625
+ - Allow parallel execution with native events on Linux (#1326)
1626
+ - Added native events support for Firefox 7 on Linux/Windows
1627
+ - Improve search for libX11 for native events on Linux (#384)
1628
+ - Fix double click with native events
1629
+ * Chrome
1630
+ - Fail fast if the chromedriver server is not executable.
1631
+ * IE
1632
+ - Fix find_element bug (#2563)
1633
+
1634
+
1635
+ 2.7.0 (2011-09-23)
1636
+ ==================
1637
+
1638
+ * Firefox
1639
+ - no longer types in the URL bar (#2487)
1640
+ - fixed native events click() issue when element is out of view
1641
+ - double click + get no longer hangs firefox (#2456)
1642
+ - make sure escaped backslashes are properly escaped when serializing a Firefox profile (#2485)
1643
+ * IE
1644
+ - fix event firing issue (#2516)
1645
+ * Opera
1646
+ - don't start the remote service if the driver is passed bad arguments
1647
+
1648
+ 2.6.0 (2011-09-13)
1649
+ ==================
1650
+
1651
+ * Rescue and retry on Errno::EADDRINUSE to work around ephemeral ports issue on Windows.
1652
+ * Use correct default URL for the Android driver.
1653
+ * Profile zipping now follows symlinks (#2416).
1654
+ * Firefox
1655
+ - Disable malware check
1656
+ - Various #click improvements
1657
+ - Don't scroll if element is already in view
1658
+ * IE:
1659
+ - improve scrolling to elements with 'overflow: scroll'
1660
+ - properly trigger jQuery change events (#2207)
1661
+ - improve handling of nested modal dialogs
1662
+ * Opera:
1663
+ - capabilities exposed as options to Selenium::WebDriver.for
1664
+ * Various iPhone driver fixes (e.g. #1396)
1665
+
1666
+ 2.5.0 (2011-08-23)
1667
+ ==================
1668
+
1669
+ * IE: support for double click and fix for clicks close to edge of window.
1670
+ * Fix for clicking links that overflow into multiple lines (#1020).
1671
+ * Correct initial cursor position when typing into text fields with Firefox 6.
1672
+ * Native events support for Firefox 6 on Windows and Linux.
1673
+ * Fix bug in Android::Bridge when no :http_client option was passed.
1674
+ * Set chrome.detach to tell chromedriver to leave browser running on exit.
1675
+
1676
+ 2.4.0 (2011-08-11)
1677
+ ==================
1678
+
1679
+ * Firefox 6 support.
1680
+ * Raise in switch_to.alert when no alert is present.
1681
+ * Improved handling of non-breaking spaces for Element#text.
1682
+
1683
+ 2.3.2 (2011-08-01)
1684
+ ==================
1685
+
1686
+ * Re-releasing since 2.3.1 was a buggy build.
1687
+
1688
+ 2.3.1 (2011-08-01)
1689
+ ==================
1690
+
1691
+ * Fix bug where Firefox would hang if Firefox::Profile#log_file= was set.
1692
+
1693
+ 2.3.0 (2011-08-01)
1694
+ ==================
1695
+
1696
+ * Add Selenium::WebDriver::Chrome::Profile
1697
+ * Better detection of clickable areas in Firefox.
1698
+ * Merge of Google-contributed code into the underlying Atoms.
1699
+ * IE click issue fixed (#1650)
1700
+ * No longer raise in Element#inspect if the element is obsolete.
1701
+
1702
+
1703
+ 2.2.0 (2011-07-26)
1704
+ ==================
1705
+
1706
+ * Add ability to listen for WebDriver events
1707
+ * Fix Android/iPhone bridges to work similar to others (https://github.com/jnicklas/capybara/issues/425)
1708
+ * Various atoms fixes
1709
+ * Element equality now works properly with the remote server (#251).
1710
+
1711
+ 2.1.0 (2011-07-18)
1712
+ ==================
1713
+
1714
+ * Various improvments to the IE driver (#2049, #1870)
1715
+ * Atoms fixes (#1776, #1972).
1716
+ * Synthetic mouse clicks do not propagate errors in onmouseover.
1717
+
1718
+ 2.0.1 (2011-07-11)
1719
+ ==================
1720
+
1721
+ * Make sure at_exit hooks aren't inherited by child processes.
1722
+
1723
+ 2.0.0 (2011-07-08)
1724
+ ==================
1725
+
1726
+ * Remove deprecated methods Element#{toggle,select,drag_and_drop_*,value}.
1727
+ * Add ability to pass :verbose, :native_events to the Chrome driver.
1728
+ * Synthetic mouse implementation for Firefox - improves drag and drop support platforms without native events.
1729
+ * Added Selenium::WebDriver::Opera (requires the remote server).
1730
+ * Fix for locating Firefox on 64-bit Windows when missing from the registry.
1731
+ * Fix native events on Firefox 4, 5.
1732
+
1733
+ 0.2.2 (2011-06-22)
1734
+ ==================
1735
+
1736
+ * Deprecate Element#{toggle,select,drag_and_drop_*}
1737
+ * Chrome.path= now sets the path to Chrome, Chrome.driver_path= the path to the chromedriver server.
1738
+ * Fix argument names in Mouse#move_to and Mouse#move_by.
1739
+ * Support Firefox 5
1740
+ * Chrome and Firefox drivers now includes the HasInputDevices module.
1741
+ * Selenium::Rake::ServerTask now works with Rake 0.9.
1742
+
1743
+ 0.2.1 (2011-06-01)
1744
+ ==================
1745
+
1746
+ * Allow passing custom command line switches to Chrome (requires today's release of the Chrome server)
1747
+ * Avoid mutating arguments to find_element (issue #1273).
1748
+ * Avoid conflicts when SUT modifies Array.prototype
1749
+ * Allow setting arbitrary capabilities by adding Capabilities#[]=
1750
+ * The Chrome driver is extended with TakesScreenshot.
1751
+ * IE driver detects bad protected mode settings.
1752
+ * Firefox driver no longer considers opacity when determining visibility.
1753
+ * Fix for ActionBuilder#move_by.
1754
+ * Treat Errno::EBADF as an indication that we failed to grab the socket lock (issue #1611).
1755
+ * Ensure Firefox launches don't hang on some Ruby versions (by improving Selenium::WebDriver::SocketPoller).
1756
+ * Various internal driver improvements.
1757
+
1758
+ 0.2.0 (2011-04-22)
1759
+ ==================
1760
+
1761
+ * Update Ruby bindings to use the rewritten Chrome driver (see https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver).
1762
+ * Add deprecation warning for WebDriver::Element#value (use Element#attribute("value") instead).
1763
+ * Change the default timeout for Wait instances to 5 seconds.
1764
+ * Fix bug where locators would fail if Object.prototype had been modified.
1765
+ * Various IE fixes
1766
+ - Issues: #698, #1444
1767
+ - Improved handling of showModalDialog()
1768
+ - Full-size screenshots
1769
+ * Allow users to override the dom.max_script_run_time preference in Firefox.
1770
+ * Removed DesiredCapabilities.safari, which was never supported anyway.
1771
+ * Add DesiredCapabilities.opera, which will be supported in the Remote server if OperaDriver is on the classpath.
1772
+ * Print warnings for deprecated constants in the RC client:
1773
+ - Selenium::SeleniumDriver => Selenium::Client::Driver
1774
+ - Selenium::CommandError => Selenium::Client::CommandError
1775
+ * Removed top-level constants:
1776
+ - SeleniumHelper (available as Selenium::Client::SeleniumHelper)
1777
+ - SeleniumCommandError (available as Selenium::Client::CommandError)
1778
+
1779
+ 0.1.4 (2011-03-21)
1780
+ ==================
1781
+
1782
+ * Support for Firefox 4.
1783
+ * Search PATH for Firefox / Chrome on OS X as well.
1784
+ * Bump dependencies for ffi and childprocess (#1356).
1785
+ * Find module renamed to SearchContext
1786
+ * Deprecated methods Driver#hover and Options#{speed,speed=} removed.
1787
+ * Improve IE driver stability, IE9 support
1788
+ * Added basic ActionBuilder and HasInputDevices#action. Not applicable for all browsers.
1789
+ * Added Driver#execute_async_script
1790
+ * Some WebDriver exception classes have been renamed to match its Java equivalents:
1791
+ ElementNotEnabledError -> InvalidElementStateError
1792
+ UnknownScriptResultError -> XpathLookupError
1793
+ * Fix bug where Element#disabled? would alternate between true/false (r11438)
1794
+
1795
+ 0.1.3 (2011-02-14)
1796
+ ==================
1797
+
1798
+ * Several crashing bugs fixed in the IE driver.
1799
+ * Alert API available through the remote driver.
1800
+ * Driver#refresh fixed in the IE driver.
1801
+ * Fixed paths for IE DLLs on Cygwin.
1802
+ * Screenshot support in the IE and Remote drivers.
1803
+ * Fix #1152 by avoiding IPv6 loopback.
1804
+ * Added Mouse and Keyboard classes, accessible as Driver#{mouse,keyboard}. Considered experimental (IE + HtmlUnit only at the moment).
1805
+ * Automation atoms now used extensively in the IE driver.
1806
+ * Firefox::Bridge is now easier to extend (i.e. with a custom launcher).
1807
+ * Add S::W::Remote::Http::Persistent (currently only usable with the remote server).
1808
+ * IE driver passes along options like the other remote drivers, enabling user-specified HTTP clients.
1809
+ * :firefox_profile added to Remote::Capabilities, enabling passing a profile to remote Firefoxes.
1810
+ * IE driver now supports launching multiple instances of the browser.
1811
+ * Remove some Ruby warnings (uninitialized ivars, URI.escape).
1812
+
1813
+
1814
+ 0.1.2 (2010-12-22)
1815
+ ==================
1816
+
1817
+ * Changed frame switching behaviour (http://groups.google.com/group/selenium-developers/browse_thread/thread/8dc7938c35bb3968)
1818
+ * IE driver rewrite landed.
1819
+ * Initial support for alerts/prompts (in Firefox).
1820
+ * Cygwin support.
1821
+ * Driver#execute_script now properly wraps elements inside Hashes.
1822
+ * Various fixes for Firefox 4.
1823
+
1824
+ 0.1.1 (2010-11-29)
1825
+ ==================
1826
+
1827
+ * Fix for Chrome.path=
1828
+ * Remote drivers always add Content-Length for POST requests (thanks joshuachisholm)
1829
+ * Fix for JS execution bug in the IE driver
1830
+ * Add ability to specify a proxy on the Http::Default client.
1831
+ * The remote drivers' :http_client argument now take a configured instance.
1832
+
1833
+ 0.1.0 (2010-11-11)
1834
+ ===================
1835
+
1836
+ * selenium-client code (Se1/RC client) is now included in the gem (require "selenium/client").
1837
+ * Add Selenium::WebDriver::Proxy, used to configure proxies for Firefox::Profile and the remote driver.
1838
+ * Tweaked Firefox profile preferences, improve logging, disabled crash reporter.
1839
+ * Reap Firefox profiles on close, not just on exit.
1840
+ * Add selenium/rake/server_task and selenium/server which wraps the Selenium server jar.
1841
+ * Various Firefox driver improvements (GC race conditions ++).
1842
+ * IE::Bridge#initialize now takes an options hash like the other bridges.
1843
+ * Added basic iPhone and Android driver classes.
1844
+ * Firefox driver now works on FreeBSD.
1845
+
1846
+
1847
+ 0.0.29 (2010-10-09)
1848
+ ===================
1849
+
1850
+ * Element#find_element with :xpath follows the XPath spec (i.e. results are not limited to the receiver's subtree).
1851
+ * Element#attribute(attribute) now returns "false" instead of nil.
1852
+ * Firefox::Profile instances can now be reused for multiple drivers.
1853
+ * Redirect Firefox console logs to a file with Firefox::Profile.log_file=
1854
+ * Added a simple Wait class, based on WebDriverWait in Java.
1855
+ * Search PATH for Firefox executable on Windows also.
1856
+ * Added Capabilities.android
1857
+ * Fix saving of screenshots on Windows and Ruby 1.9 (using "wb" mode string)
1858
+ * CSS selector support in the remote driver
1859
+ * CSS selector support for IE (using querySelector when available, Sizzle elsewhere)
1860
+ * CSS selector support for older versions of Firefox (through Sizzle)
1861
+ * Cookie expiration dates are now handled correctly (#730)
1862
+ * Make Driver#bridge private, since this seems to be a common cause of confusion.
1863
+ * Add {Element,Remote::Capabilities}#as_json for Rails 3 (http://jonathanjulian.com/2010/04/rails-to_json-or-as_json/)
1864
+ * User can configure path to exectuables with {Firefox,Chrome}.path = "/some/path"
1865
+ * Added "chromium" as a possible name for the Chrome binary (#769)
1866
+ * Correctly set the HTTP client timeout (#768)
1867
+ * switch_to.window with block now handles exceptions and non-local returns.
1868
+ * switch_to.window with block returns the result of the block.
1869
+ * Extracted handling of child processes to a separate gem: http://github.com/jarib/childprocess
1870
+
1871
+
1872
+ 0.0.28 (2010-08-23)
1873
+ ===================
1874
+
1875
+ * Fix behaviour of Element#==, Element#eql? and Element#hash (#hash still has issues on IE / remote).
1876
+ * Include remote server backtrace in raised errors (if available).
1877
+ * Chrome: Untrusted certificate support.
1878
+ * IE: Fix NoMethodError when getElementAttribute returns nil.
1879
+ * Driver#[] shorthand can take a locator hash, not just an id string.
1880
+
1881
+ 0.0.27 (2010-07-22)
1882
+ ===================
1883
+
1884
+ * Fixes for Element#attribute on IE / Firefox
1885
+
1886
+ 0.0.26 (2010-07-19)
1887
+ ===================
1888
+
1889
+ * Work around Curb issue: http://github.com/taf2/curb/issues/issue/40
1890
+
1891
+ 0.0.25 (2010-07-19)
1892
+ ===================
1893
+
1894
+ * Prevent Firefox from launching in offline mode (issue #587).
1895
+ * Add ability to set Firefox' binary path through Selenium::WebDriver::Firefox::Binary.path=
1896
+ * Add ability to install Firefox XPIs through Profile#add_extension.
1897
+ * Better packaging/building of Firefox/Chrome extensions, which adds rubyzip as a dependency.
1898
+ * Remote client supports HTTPS (issue #613 - thanks kkaempf).
1899
+ * Fix error message for TimeOutError in the IE driver (issue #602)
1900
+ * Add ability to use Chrome's default profile.
1901
+ * Fix for frame behaviour in Chrome (issue #273).
1902
+ * Standard gem directory structure (issue #475).
1903
+
1904
+ 0.0.24 (2010-06-17)
1905
+ ==================
1906
+
1907
+ * Fix issues with quitting Firefox/Chrome on Windows + MRI.
1908
+
1909
+
1910
+ 0.0.23 (2010-06-15)
1911
+ ===================
1912
+
1913
+ * Improved the HTTP clients:
1914
+ - hopefully fix some occasional socket errors on Windows
1915
+ - rescue error on driver.close() with curb
1916
+
1917
+ 0.0.22 (2010-06-11)
1918
+ ===================
1919
+
1920
+ * Bugfix: Workaround for http://github.com/taf2/curb/issues/issue/33 - curb would sometimes use DELETE for GET requests.
1921
+ * Minor doc fix
1922
+ * Add ability to set timeout for HTTP clients
1923
+
1924
+ 0.0.21 (2010-06-11)
1925
+ ===================
1926
+
1927
+ * User can specify :http_client for the Firefox driver.
1928
+ * Refactor HTTP client code
1929
+ * Add Remote::Http::Curb as an alternative to the default (net/http) client.
1930
+
1931
+
1932
+ 0.0.20 (2010-06-03)
1933
+ ===================
1934
+
1935
+ * Fix bug where Firefox would hang on quit().
1936
+
1937
+ 0.0.19 (2010-05-31)
1938
+ ===================
1939
+
1940
+ * Add a max redirect check to the remote driver
1941
+ * Add Firefox::Profile#assume_untrusted_certificate_issuer=
1942
+ * Add implicit waits (Selenium::WebDriver::Timeouts)
1943
+ * at_exit hook to clean temporary profiles
1944
+ * Fix for Errno::ECONNABORTED errors on Windows
1945
+ * Fix issue where Firefox::Profile#secure_ssl= would have no effect
1946
+ * Fix issue where locating elements by :css would fail in the Chrome driver.
1947
+ * IE driver now works on 64-bit rubies.