selenium-webdriver 4.0.0.beta3 → 4.0.0.rc3

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