Projekt

Obecné

Profil

Stáhnout (114 KB) Statistiky
| Větev: | Tag: | Revize:
1 4511a578 Pavel Fidranský
v3.11.0
2
=======
3
4
* Implemented `equals` and `hashCode` for `LoggingPreferences`
5
* Deleted deprecated methods from `*Options` and `MutableCapabilities`
6
* Converting an object to JSON now doesn't include the object's hash
7
  code.
8
* Removed deprecated methods from `RemoteWebDriver`.
9
* Switching Grid to use OkHttp rather than the Apache HttpClient.
10
* Internal change to better use Selenium's abstractions for handing
11
  JSON in Grid.
12
* Removed deprecated `GridRegistry.getHttpClientFactory` method.
13
* Removed `Registry.getConfiguration`
14
15
v3.10.0
16
=======
17
18
* Deprecate internal Duration in favor of java.time.Duration
19
* Fix handling of IE capabilities in Grid Nodes. Fixes #5502
20
* Fix problem where Grid wasn't starting Safari sessions
21
* Migrate Selenium Grid to reduce exporting GSON and Apache HttpClient
22
  as much to public APIs.
23
* Migrate Grid to use Selenium's own abstractions where possible. This
24
  means that more of it is using OkHttp rather than the Apache
25
  HttpClient.
26
* Fix an issue where RemoteProxy instances were causing an exception
27
  to be thrown if they weren't marked as a ManagedService.
28
* Deleting ability to run html suites with selenium-server-standalone,
29
  users are adviced to use htmlrunner
30
31
v3.9.1
32
======
33
34
* OkHttp backed instances can now connect to servers requiring
35
  authorisation. Based on PR #5444 proposed by @valfirst.
36
37
v3.9.0
38
======
39
40
* Switched to OkHttp for all HTTP communication. The version used can
41
  be changed back to the Apache HttpClient by setting the
42
  `webdriver.http.factory` system property to `apache`.
43
* Removed passthrough mode for the server.
44
* Grid: (implementation note) Start migrating servlets used to be
45
  command handlers.
46
* Upgraded every dependency to latest versions.
47
* Added varargs methods to `ExpectedConditions` in order to avoid
48
  annoying `Arrays.asList`.
49
* Better logging when new session creation errors.
50
51
v3.8.1
52
======
53
54
* Fixed Chrome mutator injecting null binary path into new session payload.
55
* Added mutator that stips grid-specific capabilities hurting IE driver.
56
* Fixed SafariOptions construction from plain Capabilities object.
57
58
v3.8.0
59
======
60
61
* Dropped support for PhantomJS, it's recommended to use headless Firefox or
62
  Chrome instead.
63
* Node skips configurations that does not match current platform, no more IE
64
  slots on Linux-based nodes.
65
* Introduced unique ids for node slot configurations. Hub injects UID of the
66
  matched configuration to the new request payload. Node mutates capabilities
67
  with matching config UUID only. This allows to have multiple configurations
68
  for the same browser in node config file.
69
* Implemented matching of some browser-specific capabilities on Grid hub,
70
  namely "marionette" for Firefox (default is true) and "technologyPreview"
71
  for Safari (default is false).
72
* "technologyPreview" capability is now honored again by SafariDriver.
73
* Added initial support for managing Grid Hubs and Nodes via JMX
74
* Removed `Alert.authenticate` and supporting classes
75
* Better handling of configuring SafariDriver via capabilities.
76
77
v3.7.1
78
======
79
80
* Including httpcore in the packaged libs.
81
* Sending geckodriver logs to stderr by default. The default log level
82
  is low enough that the log does not look polluted. Geckodriver does
83
  not allow to separate its own log from the browser logs, so messages
84
  from the browser log can appear in the log even on the lowest level.
85
* Avoid sending the shutdown command to driver services that don't
86
  support it.
87
* Add support for customizing the Grid Registry.
88
89
v3.7.0
90
======
91
92
* Firefox and Chrome binary paths specified in Grid Node configs are
93
  now honoured.
94
* W3C spec compliant drivers need not return RGBA values for colours
95
  defined in CSS.
96
* Minimise disk usage when starting new remote sessions.
97
* SafariDriver and legacy FirefoxDriver can now be configured when
98
  using the remote server through Capabilities. Notably, this allows
99
  the Safari Technology Preview to be used if it's installed.
100
* Implemented the ability to configure the firefox log target using
101
  the driver service builder or a system property. Logs are sent to
102
  the null output stream by default. Fixes #4136
103
* Simulate some w3c Actions commands using the old APIs. This allows a
104
  local end that only speaks the JSON Wire Protocol to use
105
  "Actions.moveTo" when communicating with a W3C compliant remote
106
  end. Apparently, people need this.
107
* More fluent APIs in `*Options` classes.
108
* Moving some safari config options from `SafariOptions` to the
109
  `SafariDriverService`.
110
* In Grid and Remote, force the use of the legacy Firefox driver when
111
  marionette flag is set.
112
* The protocol handshake now uses a `CapabilityTransform` to convert
113
  an JSON Wire Protocol capability to one or more w3c
114
  capabilities. These are located using the standard Java
115
  ServiceLoader framework.
116
* The protocol handshake also uses a `CapabilitiesFilter` that
117
  extracts keys and values specific to a browser from a JSON Wire
118
  Protocol capabilities map. Again, these are loaded using the
119
  `ServiceLoader` framework.
120
* `requiredCapabilities` are now no longer sent across the wire.
121
* Fixed handling of unrecognized platform names returned by remote
122
  end. #4781
123
* Better error messages from the htmlrunner.
124
* Migrated from using `DesiredCapabilities` to either
125
  `MutableCapabilities` or (preferably) `ImmutableCapabilities`.
126
* Move building of locators to How enum
127
128
129
v3.6.0
130
======
131
132
* Remove direct dependency on HTMLUnit and PhantomJS from Maven
133
  artifacts.
134
* All `*Option` classes now extend `MutableCapbilities`
135
  `new RemoteWebDriver(new ChromeOptions());`
136
* Deprecating constructors that don't take strongly-typed `*Options`. 
137
* Improved exceptions when a `Wait` times out when using a
138
  `WrappedWebDriver`.
139
* Added `Interactive` interface to EventFiringWebDriver. Fixes #4589
140
* Add options to start Firefox and Chrome in headless modes.
141
142
143
v3.5.3
144
======
145
146
Important note:
147
148
* The new standalone server and Grid Node feature a "pass through"
149
  mode. If you see changes to the Selenium WebDriver "logging" APIs or
150
  automatic capture of screenshots on error (or if you want the old
151
  behaviour back) you can do so by executing:
152
153
  `java -jar selenium-server-standalone-3.5.3.jar -enablePassThrough false`
154
155
* Allow user-provided DriverProviders to override default providers in
156
  passthrough mode.
157
* Fixes issue with W3C Actions not being properly filled when multiple
158
  input sources are used.
159
* Platform that represent platform families ("WINDOWS", "UNIX", "MAC",
160
  and "IOS") return `null` from `Platform.getFamily`.
161
* Handle null return values from chromedriver. Fixes #4555
162
* Synchronized "platform" and "platformName" capability values. Fixes #4565
163
* Add iOS `Platform`.
164
* Fix wrapping of maps with null values. Fixes #3380
165
* Grid: Add new w3c compatible `status` endpoints for Hub and nodes.
166
* Grid: Properly parse responses from upstream nodes that are not
167
  200. Fixes issue where `NoSuchElementException` was mistaken for a
168
  `NoSuchSessionException`.
169
* Grid: Handle re-encoding issue when transferring text from the
170
  endpoint node to the local end.
171
172
173
v3.5.2
174
======
175
176
Important note:
177
178
* The new standalone server and Grid Node feature a "pass through"
179
  mode. If you see changes to the Selenium WebDriver "logging" APIs or
180
  automatic capture of screenshots on error (or if you want the old
181
  behaviour back) you can do so by executing:
182
183
  `java -jar selenium-server-standalone-3.5.2.jar -enablePassThrough false`
184
185
* Avoid encoding numbers as floats rather then longs in JSON payloads.
186
* New "pass through" mode supports file uploads again.
187
* Added support for querying running sessions via the
188
  "/wd/hub/sessions" endpoint
189
* Fix a NullPointerException when deserializing exceptions from a
190
  remote webdriver.
191
* Handle the `macOS` as a valid platform name, as this is used by
192
  safaridriver.
193
194
195
v3.5.1
196
======
197
198
Important note:
199
200
* The new standalone server and Grid Node feature a "pass through"
201
  mode. If you see changes to the Selenium WebDriver "logging" APIs or
202
  automatic capture of screenshots on error (or if you want the old
203
  behaviour back) you can do so by executing:
204
205
  `java -jar selenium-server-standalone-3.5.1.jar -enablePassThrough false`
206
207
* Bump guava to version 23. This is work around an issue where maven
208
  will select guava's android variant if using a ranged selector.
209
210
211
v3.5.0
212
======
213
214
Note: Never pushed to maven due to problems resolving guava version.
215
216
Important note:
217
218
* The new standalone server and Grid Node feature a "pass through"
219
  mode. If you see changes to the Selenium WebDriver "logging" APIs or
220
  automatic capture of screenshots on error (or if you want the old
221
  behaviour back) you can do so by executing:
222
223
  `java -jar selenium-server-standalone-3.5.0.jar -enablePassThrough false`
224
225
* Bump guava to version 22.
226
* Add support for a new "pass through" mode. This allows a connection
227
  from your test's RemoteWebDriver, through the Grid Hub, to a Grid
228
  Node, and down to a DriverService and thence the browser to use the
229
  same WebDriver protocol (the Json Wire Protocol or the W3C one) end
230
  to end without translation. This mode can be disabled by starting
231
  the standalone server or Grid node with `-enablePassThrough false`
232
* Pin Guava to version 21+. This fixes problems with lambdas being
233
  used as ExpectedConditions.
234
* Start making *Option classes instances of Capabilities. This allows
235
  the user to do:
236
  `WebDriver driver = new RemoteWebDriver(new InternetExplorerOptions());`
237
* Better handling of `getText` when confronted with a Shadow DOM
238
* Better logging when using an Augmenter fails.
239
* Make it easier to add new @FindBy annotations.
240
* Attempt to kill processes before draining input, error, and output
241
  streams. This should reduce apparent hanging when closing Firefox in
242
  particular.
243
* Grid will make use of W3C capabilities in prefernce to the JSON Wire
244
  Protocol ones.
245
* Fixing boolean command line arguments (#3877)
246
247
v3.4.0
248
======
249
250
* Geckodriver 0.16 is strongly recommended
251
* LiFT package is now available as a separate maven dependency.
252
* Deprecated numerous constructors on RemoteWebDriver that are no
253
  longer useful.
254
* `requiredCapabilities` are now being removed. Use
255
  `desiredCapabilities` instead.
256
* Legacy Firefox support broken out into a `XpiDriverService`, but
257
  still relies on the same `webdriver.xpi` as before.
258
* Better support for W3C endpoints
259
260
v3.3.1
261
======
262
263
* Better support for geckodriver v0.15.0. Notably, exceptions returned
264
  from the remote end are now unwrapped properly.
265
* Fix a bug with the status page of the standalone server.
266
* Deprecated `Capabilities.isJavascriptEnabled`
267
268
269
v3.3.0
270
======
271
272
* Support for geckodriver v0.15.0.
273
* Deprecated seldom used FirefoxDriver constructors.
274
* Added javadocs to show best way to create a new FirefoxDriver:
275
  ```
276
  DesiredCapabilities caps = new FirefoxOptions()
277
       // For example purposes only
278
      .setProfile(new FirefoxProfile())
279
      .addTo(DesiredCapabilities.firefox());
280
  WebDriver driver = new FirefoxDriver(caps);
281
  ```
282
* Stream New Session capabilities to disk before use to avoid eating
283
  every byte of available memory.
284
* Beginnings of local-end implementation of the w3c New Session
285
  capabilities. There's still some work to do.
286
287
v3.2.0
288
======
289
290
* Updated Guava to version 21 and started using Java 8 features. Users
291
  are recommended to update too.
292
* Fix a problem starting Firefox caused by missing libraries
293
* Experimental support for the W3C Action endpoints
294
* Remove deprecated `FluentWait.until(Predicate<?>)` method. This
295
  should make lambdas work properly with Wait instances now.
296
* Bump htmlunitdriver version to 2.24
297
* [Grid] Allow for customisation of TestSlot (#3431)
298
299
v3.1.0
300
======
301
302
* Update how the WebDriverException gathers system info. Resolves an
303
  issue with slow-downs on OS X Sierra.
304
* Update Wait and FluentWait for Java 8. Requires an update to the
305
  latest guava version 21.0
306
* Remove old marionette actions support.
307
* Selenium server now understands a "-version" flag.
308
* `WebElement.getText` now returns text from the Shadow DOM.
309
* Implemented a more straightforward way to specify firefox binary in
310
  GeckoDriverService builder.
311
* Firefox can now pick a channel to start from on Windows via
312
  `FirefoxBinary.Channel`
313
* ChromeDriver now supports `NetworkConnection` interface.
314
* htmlrunner bug fixes, in particular around `getValue`, and relative
315
  paths to the suite file.
316
* Fixes to make htmlrunner work.
317
* Removed native events from FirefoxDriver.
318
* Truncate the string representation of capabilities for display purposes.
319
* Implemented session storage for w3c codec.
320
* Change server dependency to htmlunit 2.23.2.
321
* [Grid] DefaultCapabilityMatcher now considers "browserVersion".
322
* [Grid] Fix node registration issue for Se2.x nodes with -servlets.
323
* [Grid] Windows nodes are no longer displayed as "mixedOS".
324
* [Grid] browser version capability specified on node command line no longer parsed to a Number
325
326
v3.0.1
327
======
328
329
* Include ElementScrollBehavior enum in the release.
330
* Add dependency on HTMLUnit to be included in the standalone server.
331
* Grid new session requests pass original request through to the node
332
  without any modifications.
333
* Fix NPE in htmlrunner when port is not specified.
334
* FirefoxDriver (legacy) fix to cleanup temp filesystem on quit (#2914 #2908).
335
336
v3.0.0
337
======
338
339
IMPORTANT CHANGES
340
341
* Firefox is only fully supported at version 47.0.1 or earlier. Support
342
  for later versions of firefox is provided by geckodriver, which is
343
  based on the evolving W3C WebDriver spec, and uses the wire protocol
344
  in that spec, which is liable to change without notice.
345
* You may wish to choose an ESR release such as 45.4.0esr or earlier.
346
* Firefox 47.0.0 is not supported at all.
347
348
Other major changes:
349
350
* Stability fixes in Grid.
351
* All Grid nodes can now offer help.
352
* Updated to the latest version of HtmlUnitDriver.
353
* Re-enabled log gathering for the standalone server.
354
* Firefox profile is passed to both the legacy FirefoxDriver and
355
  geckodriver.
356
357
v3.0.0-beta4
358
============
359
360
IMPORTANT CHANGES
361
362
* Firefox is only fully supported at version 47.0.1 or earlier. Support
363
  for later versions of firefox is provided by geckodriver, which is
364
  based on the evolving W3C WebDriver spec, and uses the wire protocol
365
  in that spec, which is liable to change without notice.
366
* You may wish to choose an ESR release such as 45.4.0esr or earlier.
367
* Firefox 47.0.0 is not supported at all.
368
369
Other major changes:
370
371
* Remove OSS safaridriver in preference for Apple's own SafariDriver
372
  that ships as part of Safari 10.
373
* [Grid] -nodeConfig (json) files have a new flatter format (#2789)
374
* [Grid] Fix #2721, -nodeConfig (json) settings were not always
375
  applied
376
* [Grid] Cleanup the api for RegistrationRequest -- will break
377
  compilation for people moving from 2.x -- removed the ability to
378
  change the GridNodeConfiguration reference via the
379
  RegistrationRequest object and removed all other setters
380
* Include the selenium version in exceptions (again).
381
* [HTML suite runner] Better flag compatibility with the 2.x
382
  selenium-server-standalone.
383
* Fix #2727, combine -jettyThreads and -jettyMaxThreads (#2735)
384
* [atoms] Cleaning up getAttribute dependencies, reducing size from
385
  36K to 7K
386
* Better support for the W3C webdriver wire codec.
387
* Added ability to use FirefoxOptions when starting firefox.
388
* Fixed a bug where the firefox profile was not being passed to the
389
  geckodriver.
390
* SafariDriver's Technology Preview can be used if installed.
391
392
v3.0.0-beta3
393
============
394
395
* The HTML table runner can be downloaded as selenium-html-runner.jar.
396
* leg-rc jar is no longer bundled into the main selenium jar. Instead,
397
  it needs to be downloaded separately.
398
* Removed deprecated SessionNotFoundException in favour of the
399
  NoSuchSessionException.
400
* Added a "protocol handshake" on starting a remote webdriver. We now
401
  log the wire dialect spoken (original as "OSS" and the version
402
  tracking the W3C spec as "W3C"). This may result in multiple calls
403
  to the new session endpoint on local end start up.
404
* Removed command names ending with "*w3c" and instead handle this
405
  with different codecs.
406
* Switch to using atoms for 'getAttribute' and 'isDisplayed' when
407
  communicating with a W3C remote end.
408
409
v3.0.0-beta2
410
============
411
412
* maven packaging fixes
413
* Update GeckoDriver --port argument in all bindings
414
* System property webdriver.firefox.marionette now forces the server in marionette or legacy firefox driver mode, ignoring any related Desired Capability
415
* Grid fix NPE's on registration when -browser not specified
416
417
v3.0.0-beta1
418
============
419
420
IMPORTANT CHANGES
421
422
* Minimum java version is now 8+
423
* The original RC APIs are only available via the leg-rc package.
424
* To run exported IDE tests, ensure that the leg-rc package is on the
425
  classpath.
426
* Support for Firefox is via Mozilla's geckodriver. You may download
427
  this from https://github.com/mozilla/geckodriver/releases
428
* Support for Safari is provided on macOS (Sierra or later) via
429
  Apple's own safaridriver.
430
* Support for Edge is provided by MS:
431
  https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
432
* Official support for IE requires version 9 or above. Earlier
433
  versions may work, but are no longer supported as MS has
434
  end-of-lifed them.
435
436
Other major changes:
437
438
* New html-table runner backed by WebDriver.
439
* Unused command line arguments are now no longer parsed.
440
441
442
v2.53.0
443
=======
444
445
FINAL 2.X RELEASE.
446
447
No more HtmlUnitDriver... Moved to a subproject https://github.com/SeleniumHQ/htmlunit-driver
448
449
Java:
450
    * Query Selenium Server to retrieve actual running port.  Fixes #1299
451
    * Upgrading HtmlUnit to 2.20
452
    * Java: Introducing NoSuchSessionException in the core API
453
    * Fixing memory leak in TemporaryFileSystem Fixes #1679
454
    * Fixing rectangle dimension, and adding equals and hashCode
455
    * Java: Adding a new W3C-compatible string error code
456
    * Add support to listen "refresh" events. Fixes #1584
457
    * extended ExpectedConditions with a list of new ones. New logic operators + conditions for css and html attributes
458
    * Java: Deleting webbit a test server
459
Grid:
460
    * cleanup cycle needs to be persisted to allMap, since that's where it's read from in other places. this stuff needs some cleanup...
461
    * adding grid e2e distribution test
462
    * fix mixed content issue
463
    * when sorting nodes for consideration, also take into account last time accessed for a more even distribution across nodes over the lifetime of the grid.
464
    * Also fix using the RemoteProxy's getResourceUsageInPercent instead of calculating it in the sort.  Fixes #1673
465
    * make HttpClientFactory private methods protected to allow one to extend / override.
466
467
v2.52.0
468
=======
469
470
Firefox:
471
    * Weakening platform restriction to enable 64-bit support
472
    * Fixing closed window handling in FF45
473
    * Implementing a capability that disables overlapping checks - "overlappingCheckDisabled"
474
475
WebDriver:
476
    * Fix deselecting options in <select>, actually throw Exceptions documented
477
    * handle special case spellcheck attribute Fixes #1605
478
479
Grid:
480
    * Allow forwarded response to be modified by CommandListener
481
482
v2.51.0
483
=======
484
485
Firefox:
486
    * finding another edge case where we need to check -1 from the right and bottom of the element's rect
487
    * stop gap to help with elementFromPoint not being completely reliable
488
    * Implementing ability to return non-boolean capabilities
489
    * Bumping up the max version
490
    * Fixing scrolling to elements in overflow:hidden blocks. Fixes issue #1527
491
    * Fixing issue #1509
492
    * Deleting deprecated constant
493
    * Deleting unused method FirefoxBinary.createProfile
494
495
WebDriver:
496
    * Fixing httpOnly cookies in HtmlUnit driver
497
    * Adding close connection support to HttpClient to combat hanging open files Fixes #1080
498
    * Increasing log buffer max size
499
    * optimize JsonToBeanConverter In case the input is a JsonNull, return null asap.
500
    * Add toString() to DefaultElementLocator
501
    * fix #1575
502
503
v2.50.1
504
=======
505
506
    * add a way to add to the list of capabilities to consider to the default capability matcher
507
    * Grid: Fixing timeout issue again... Why isn't it covered by tests? A rhetorical question...
508
    * Java: Improving handling of marionette errors
509
    * Java: Replacing ByteArrayOutputStream with CircularOutputStream to prevent OOM exception. Fixes issue #427
510
    * Java: Moving CircularOutputStream to another package (it's an internal class so no need to create a copy)
511
    * fix #1562
512
513
v2.50.0
514
=======
515
516
WebDriver:
517
    * Firefox: fixing sendKeys throwing "cross-process JS call failed " in FF45
518
    * Firefox: fixing click to multirect elements broken by the previous PR
519
    * Check element corners and middle for clickability
520
    * Fix keyCodes for some characters in the FirefoxDriver.
521
    * Firefox: fixing malformed URL handling. Fixed issue #1248
522
    * Prevent Firefox from opening a page on a second or later run and/or after some amount of time
523
    * Fixing executable finder on Windows
524
    * Fixing HtmlUnit driver to pass recently added tests
525
    * Firefox: fixing appending to contenteditable elements. Fixes issue 1419
526
    * correct javascript remote client ui executor to use new promise based execute introduced by 0fa587 Fixes #1521
527
    * Firefox: Adding an extra check to result wrapper. Fixes issue #1426
528
    * Changes to simplify the execution of finding elements.
529
    * Fixing issue #1479. The only reasonable thing we can do for select elements is to disable clickability checking, see https://gist.github.com/p0deje/c549e93fa19bf7aaee49
530
531
Grid:
532
    * Found a better place to convert seconds to milliseconds
533
534
v2.49.1
535
=======
536
537
Grid:
538
    * Fixing timeout issue in the Grid.
539
540
WebDriver:
541
    * Allow GeckoDriverService to be extended.
542
    * Update tagName test searching for "" to throw
543
544
v2.49.0
545
=======
546
547
WebDriver:
548
    * Add maven coordinate for the Firefox Driver when built using Buck.
549
    * Remove guava dep on the selenium-apis when built using Buck.
550
    * on osx for firefox, fallback to checking homebrew install, if the default isn't there
551
    * Pass Options.ime() through to the wrapped driver.
552
    * Fixing HTML suite test runner
553
    * Bump guava to version 19
554
    * Ensure that the buck-built core library has no third party dependencies.
555
    * Updating textContent attribute test for IE9
556
    * Adding appropriate wait to AuthenticatedPageLoadingTest
557
    * Refactor concrete WebDriverException#getSupportUrl's
558
    * Fix a NullPointerException in RemoteWebDriver.getCurrentUrl
559
    * Reduces time wasted in when using a native driver
560
    * add the useful information about the session / capabilities in the exception when the 'browser may have died'
561
    * give the cleaner almost double the time to clean up the sessions (a whopping 9 more ms). Hopefull will deflake this test in CI.
562
    * Adding El Capitan (OS X 10.11) to Platform
563
    * Updating IE driver to fix clearing of <input type='number'> fields
564
    * Treat a null response to getCookies as [].
565
    * Restore a isNativeEventsEnabled check.
566
    * Updating TestNG.
567
    * firefox: Throw error when element cannot be clicked
568
    * Include Windows 10 in the Platform enum.
569
    * adding selenium server pass throughs for W3C dialect of alert / window / cookie commands.
570
    * clearing a number input with invalid text, should actually clear it.
571
    * Add innerHTML attribute support to HtmlUnitDriver
572
    * Add textContent attribute support to HtmlUnitDriver
573
    * make RemoteMouse public, akin to RemoteKeyboard. Not sure why it wasn't made public when it was originally moved out of RWD.
574
    * Use platform-dependant line separator instead of hardcoded '\n'.
575
    * Safari should only specify MAC as platform in default desired capabilities
576
    * improve javadoc for FluentWait
577
    * Changing interface name to be more Java-ish
578
    * Update GeneratedJsTestServlet to work with test files that use Closure's module syntax.
579
    * Adding release-v3 crazyfun target
580
    * should be able to send keys to a content editable div that is initially empty
581
    * Implementing pure WebDriver grid server (v.3)
582
    * Making BrowserLauncherFactory non-static, to avoid global configuration, for better testability and configurability (per object, not globally)
583
    * Server: Moving shared classes to a more appropriate place out of the legacy server namespace
584
    * Deleting RemoteControlLauncher as it is just a couple of static methods to parse command line options, that should belong to the server.
585
    * Refactoring GridLauncher: replacing big switch with a map of simple launchers; it's a step toward decomposition of the GridLauncher and dynamic discovery of the elements that can be launched.
586
    * Refactoring GridLauncher build process
587
    * Decoupling node registration module (SelfRegisteringRemote) from concrete implementation of the server to be run on the node.
588
    * Refactoring grid node registration procedure to make server start/stop methods as simple as possible.
589
    * Breaking another dependency of Grid on RC server
590
    * Deleting fail-fast check of browser configuration, this breaks another Grid dependency on parts of RC server. The check must be performed in RC server (if ever).
591
    * Actually fix the Safari BUCK build
592
    * Monkey-patching W3C-compatible cookie serialization to fix Marionette. A more proper fix would be to change the parameters of a Command from Map to Object.
593
    * There is no need to create a profile for Marionette
594
    * removing prebuilt SafariDriver extension, bumping version number to 2.48
595
    * Fixing tests for JsonToBeanConverter to avoid "error" key collision that has got new semantics in the standard
596
    * Stop exposing embedded jetty out of SeleniumServer
597
    * Breaking unwanted grid dependency on parts of RC server
598
    * Deleting JsonKey, it's a useless abstraction
599
    * Breaking unwanted grid test dependency on RC server (the removed attribute is not used actually)
600
    * Fixes #1140, #1334, #1263, #669, #1165, #1132, #1186, #1203, #1214, #1242
601
            #1241, #1240, #1238, #1237
602
603
v2.48.2
604
=======
605
WebDriver:
606
    * Update fix for ChromeDriver to work with Marionette/Wires also.
607
608
v2.48.1
609
=======
610
WebDriver:
611
    * Fix #1123, ChromeDriver doesn't start up.
612
613
v2.48.0
614
=======
615
616
WebDriver:
617
    * java: add ExpectedConditions#numberOfWindowsToBe
618
    * Bump the buck version to the latest version.
619
    * fix maven build for jetty 9
620
    * adding pom files for jetty 9 repakced jars and the empty-javadoc jar used to upload to maven central
621
    * Restoring use of queued thread pool in the hub
622
    * Deleting commented code
623
    * Fixing UploadServlet in test environment to conform to servlet-api 3.1
624
    * Update jetty readme
625
    * Bump the Jetty version from 7 to 9
626
    * Updating screenshot code to retain scroll bars in required directions.
627
    * Updating screenshot code to prevent resizing if window is large enough.
628
    * Removing superfluous comment that was causing javadoc build error in ci
629
    * fixing the remaining jdk 8 javadoc errors
630
    * Make the javadocs for java/server too.
631
    * fixing java command line options for 'go' MaxPermSize -> MetaspaceSize in java 8
632
    * updating third party wicked good xpath to e33a3876a6d592b824942751d86ba5f2b08a3dc5 Fixes #1040
633
    * Removing use of Windows hooks for taking screenshots in IE.
634
    * Firefox: fixing sendKeys for contentEditable elements, it should append to the existing text.
635
    * Buck version bumps
636
    * Update closure-library to 04a8ceefc6972511e669563d47abeca18b28092c
637
    * Firefox: implementing mouse doubleclick action via nsIDOMWindowUtils
638
    * Add FluentWait.withMessage with string supplier
639
    * Firefox: fixing events generated as a result of click on an element that disappears after the click.
640
    * Firefox: implementing mouse up/down actions via nsIDOMWindowUtils. This makes mouse actions "more native". In particular, if there are overlapping element at the click point, the driver will click the topmost element.
641
    * Safari: stop embedding the extension in the client libs, it should be downloaded and installed manually.
642
    * Deleting a couple of redundant casts
643
    * No need to cast, the variable has required type already
644
    * Deleting redundant logging to console in tests
645
    * HtmlUnit: Ignoring one more test
646
    * Disabling a test if JS is not enabled
647
    * HtmlUnit: Unignoring a magically working test
648
    * HtmlUnit: restoring backward compatibility after changes in getCurrentUrl semantics
649
    * WDBC: restoring backward compatibility after changes in getCurrentUrl semantics
650
    * Deleting native events from firefox driver
651
    * Deleting outdated assumes for unsupported Firefox version
652
    * Resorting tests for moveByOffset action
653
    * Firefox: don't dispatch keypress event if defaultPrevent() of the keydown event is called because KEY_FLAG_PREVENT_DEFAULT has no effect
654
    * Moving IE specific test to IE test suite
655
    * Firefox: throwing proper exception on an attempt to find an element in the deleted frame
656
    * Firefox: changing getCurrentUrl to return top level browsing context address (to conform to the standard)
657
    * Firefox: fixing page source for plain text pages
658
    * Adding information on the reasons to ignore tests
659
    * fix the client and server classpath
660
    * Move the servlet-api package for easier automated updates.
661
    * Renaming the Jetty7AppServer to remove the version number.
662
    * Fix up failing htmlunitdriver test.
663
    * Simulating window.getPosition and setPosition operations
664
    * Simulating switchTo().window by name
665
    * Fixing test to switch back to the original window after opening a new one.
666
    * Implementing standard-compliant window operations
667
    * Implementing standard-compliant getSize, getPosition and getPositionInView
668
    * Deleting marionette tcp connector
669
    * remove unused css transform code from location in view
670
    * use BasicHttpRequest instead of EnclosingRequest
671
    * htmlunit passes the httponly cookie test
672
    * fix maven dependency of htmlunit driver on the support package
673
    * don't replace a platform specified to the add browser method, like the TODO says
674
    * Simulating submit operation for standard compliant drivers
675
    * Making sendKeys more backward compatible (because i18n tests)
676
    * Change buils to builds
677
    * Unignoring marionette tests passed after sendKeys rework
678
    * Fixing getSize operation broken by copy-paste from getLocation
679
    * Reworking sendKeys to send characters one by one, this is standard compliant behavior
680
    * Making switchTo().window more standard compliant
681
    * Making getLocation and getSize standard compliant
682
    * Making timeout setting methods standard compliant
683
    * Fixing "no such alert" error mapping
684
    * Making findElement(s) commands standard compliant (except for link text locators)
685
    * java: fix log string for RemoteTargetLocator#defaultContent
686
    * Update check to see if we are speaking to a W3C remote end point
687
    * specificationLevel is defined in http://w3c.github.io/webdriver/webdriver-spec.html#capabilities
688
    * use exception message.  no method overload exists for log.severe
689
    * Upgrade HtmlUnit 2.18
690
    * ReflectionBackendDriverSupplier: two arguments Capabilities
691
    * HtmlUnitMouse: no need to .focus()
692
    * Fix HtmlUnitWebElement.getCssValue
693
    * AMO requires the max version be an actual release version number
694
    * Correcting IE driver build process to create executables runnable on Windows XP Fixes issue #936.
695
    * Improve comments and error message on scrolling_test#testScrollingAccountsForScrollbarWidths.
696
    * Java client side support for launch_app command of chromedriver:
697
    * Add "additionalCommands" support to DriverCommandExecutor.
698
    * Use directExecutor().
699
    * Updating IE driver C++ code to use Visual Studio 2015.
700
701
Grid:
702
    * Run grid tests using Buck.
703
    * removing '-debug' command line parameter for grid hub, it isn't used anywhere.
704
    * adding edge icon for grid
705
706
707
v2.47.0
708
=======
709
710
** Java 7 is now requried, but you really should be on 8, since 7 is EOL **
711
712
713
WebDriver:
714
* Supports native events for Firefox version 31 (immediately previous
715
  ESR). Native event support has been discontinued for versions of
716
  Firefox later than 33. Synthetic events tested on Firefox versions 31
717
  (immediately previous ESR), 38 (immediately previous release and current
718
  ESR), and 39 (current release).
719
* Beta Alert.AuthenticateUsing api implementation added, beta testing with IE.
720
* Added TakesScreenshot to WebElement.
721
* (provided by Microsoft) Added language bindings for Microsoft Edge browser
722
* Make it possible for users to override how the Lock is obtained with Firefox.
723
* (provided by Ahmed Ashour) Added implementation of Alert for HtmlUnit driver.
724
* (provided by Ahmed Ashour) Fixed findElementByXPath for HtmlUnit driver to
725
  work for XML pages.
726
* (provided by Ahmed Ashour) Fixed HtmlUnit driver to allow for manipulating
727
  elements in SVG documents.
728
* (provided by Ahmed Ashour) Fixed HtmlUnit driver so that deleteAllCookies
729
  deletes cookies only for the current domain, matching other implementations.
730
* (provided by Tamás Buka) Created an overload to
731
  ExpectedConditions.frameToBeAvailableAndSwitchToIt support to index and
732
  WebElement so that WebDriverWait can use this mode to switch frames.
733
* (provided by Joshua Bruning) Allow access to local profiler logs. An
734
  exception may be thrown if the WebDriver server does not recognize profiler
735
  logs. In this case, the user should be able to see the local profiler logs.
736
* (provided by Sergey Tikhomirov) Changed visibility of isDecoratableList
737
  method of DefaultFieldDecorator to protected for use with custom PageFactory
738
  implementations.
739
* Froze javascript.enabled property in Firefox profiles
740
* FIXED #426: (provided by Anand Jayaram) Default the hub port to 4444, if no
741
  port was provided.
742
* FIXED #638: Disabled HTTP Public Key Pinning (HPKP) when the
743
  webdriver_accept_untrusted_certs capability is set. As of Firefox 39, Firefox
744
  ignores certificate overrides if the domain's certificate is pinned.
745
* FIXED #644: (provided by Brett Randall) Modified ErrorHandler to tolerate
746
  non-Number lineNumber, and also attempts to safely parse a non-Number Object
747
  if it receives a non-Number. If absent or non-numeric it now continues to
748
  build the StackTraceElement (instead of aborting that frame) and uses the
749
  conventional -1 for lineNumber.
750
* FIXED #658: Disable reading list info panel in Firefox.
751
752
Server:
753
* Added a guard that prevents starting "IE instead of Opera" (or some other
754
  unwanted browser that obviously does not match the desired capabilities).
755
  Previously if a new session request is forwarded to a node it results in a
756
  driver instance creation in any case. For example, let's suppose a user
757
  starts a node with -browser browserName=opera option, and there is no
758
  operadriver in the classpath. Then the user requests a new remote driver with
759
  browserName=opera. The hub forwards the request to the node, and the node
760
  attempts to find the "best matching" driver provider. As far as opera is not
761
  available, it can start any other browser. Because "best matching" does not
762
  imply matching. The new guard prevents this unwanted behavior.
763
764
Grid:
765
* Added support to grid for Microsoft Edge driver
766
* (provided by Dima Kovalenko) Sort Grid Proxies in order of least busy to
767
  busiest. This should prevent situation where one node is running multiple
768
  sessions while several nodes are completely idle.
769
770
RC:
771
* Removed start of Firefox with -silent option to prevent crash in Firefox.
772
773
IDE:
774
* FIXED #570: Add ability to record elements that do not have href attributes.
775
776
v2.46.0
777
=======
778
779
Important changes in this release:
780
781
* Supports native events for Firefox version 31 (immediately previous
782
  ESR). Native event support has been discontinued for versions of
783
  Firefox later than 33. Synthetic events tested on Firefox versions 31
784
  (immediately previous ESR), 37 (immediately previous release), and 38
785
  (current release and current ESR).
786
* Remove all support from both webdriver and RC for Presto-based
787
  Opera. Blink-based Opera is still supported!
788
* Added beta Marionette driver (for Firefox OS and recent desktop
789
  releases).
790
* Fixing critical selenium server error caused by a user registering a
791
  driver class compiled with a higher Java version than the server is
792
  running (eg: server runs with Java 7, but the driver is comopiled to
793
  target Java 8)
794
* FirefoxDriver: now supported on OpenBSD (added by minusf@gmail.com)
795
* HtmlUnitDriver: Updated to HtmlUnit 2.17. Requires Java 7 or above to work.
796
797
Other notable changes:
798
799
* Added ability to clear file input fields for Firefox.
800
* Fix bug in Safari where Selenium updated the page under test in some
801
  circumstances.
802
* HtmlUnit: do not disable mouse notifications when js is disabled,
803
  css is also related to this information (only partly implemented in
804
  HtmlUnit at the moment)
805
* Updated htmlunitdriver to use htmlunit 2.17
806
* Upgraded commons-exec from 1.1 to 1.3
807
* Changed capability name from pageLoadingStrategy to pageLoadStrategy
808
* FIX: Google Code issue #7749: Add Get/Set network connection
809
  commands to JsonHttpCommandHandler to be able to use commands in
810
  selenium grid.
811
* Allow clients to specify TCP timeouts in the remote webdriver.
812
* Allow the chrome binary passed in capabilities to have a higher
813
  priority than node configuration.
814
* ChromeDriver: Added ability to pass whitelisted-ips option to the
815
  chromedriver
816
* Implement lazy loopback detection. This provides ~10x speed
817
  improvement of selenium server startup.
818
* Allow loading option descriptions from JSON file instead of
819
  Properties, allowing the server to manage order of options in the
820
  help message
821
* SafariDriver: In SafariDriver's page script, copy window properties
822
  to goog.global. (provided by juangj@google.com)
823
* Add a method toList that allows converting CompositeAction to JSON
824
* FirefoxDriver: Skip the profile cleaning step when launching Firefox
825
* Implement both integer (legacy) and string (standard) response status
826
  for the JSON wire protocol
827
* FirefoxDriver: Disable https://wiki.mozilla.org/Advocacy/heartbeat
828
  Firefox 37+ feature in browser sessions started by FirefoxDriver.
829
* FirefoxDriver: Added getters to FirefoxProfile to allow reading
830
  preset preference values
831
* PageFactory: Changed default value of how part of @FindBy annotation
832
  from ID to UNSET, but treat them equivalent to ensure backward
833
  compatibility
834
* PageFactory: Provide ability to use custom annotations. (Provided
835
  by Artem Koshelev)
836
* Use DaemonExecutor from commons-exec instead of DefaultExecutor.
837
  Fixes Google Code issue 4734. (Provided by Richard Atkins)
838
* FirefoxDriver and Java language bindings now handle both legacy and
839
  W3C specification dialects of element reference serialization in the
840
  JSON wire protocol.
841
* FirefoxDriver:  Don't force garbage collection in httpd.js for
842
  Firefox when connections are closed
843
844
v2.45.0
845
=======
846
847
Important changes in this release:
848
849
* Native events in Firefox relied on an API that Mozilla no longer
850
  provides. As such, fall back to synthesized events on recent Firefox
851
  versions.
852
853
Other changes:
854
855
* When Selenium is unable to interact with an element, such as the
856
  case when an element is missing or disabled, this change will output
857
  exactly how Selenium is attempting to locate the element, such as
858
  the XPath or id of the element. This greatly speeds up
859
  troubleshooting issues, as the exception message clearly states what
860
  element is broken/missing for common problems like an
861
  ElementNotFoundException.
862
* improve ByCssSelector#toString
863
* Remove automatic installation of the SafariDriver in Java.
864
* Complete Selenium Java Server support for Blink based Opera
865
* Upgrading PhantomJS driver
866
* Pull HttpClient implementation details out of HttpCommandExecutor.
867
* Fix issue 8254: Extensions were incorrectly transferred between
868
  Windows client and Linux grid node, because ZipEntry had incorrect
869
  name with '\' as separators.
870
* Adding capabilities and browser type for Opera Blink, and
871
  configuring tests to run in Opera Blink
872
* Adding support for Blink-based Opera to Java binding
873
* Adding Yosemite platform
874
* Allowing to set an arbitrary platform capability even if it can't be
875
  converted to Platform enum. Non-standard platform values can cause
876
  matching issues on Grid, but they can be usable for third-party Grid
877
  implementations
878
* Taking XML namespaces into account when searching by XPath. Checked
879
  to work in Firefox. Chrome supports namespaces out of the box. Need
880
  to update IE and Safari drivers to use the updated atom and test
881
  them carefully.
882
883
v2.44.0
884
=======
885
886
  * Updating Native events to support Firefox 24, 31, 32 and 33
887
  * Update calls to deprecated guava methods.
888
  * Remove the deprecated DatabaseStorage interface. And callers. Note that the browser implementations may still have an implementation of these interfaces, but nothing in the main project implements it so we should be okay.
889
  * Bump the version of guava to 18
890
  * Bringing MarionetteConnection in line with the current marionette state (FF33)
891
  * Add new tests for some wait conditions Also add the ExpectedConditionsTest to the test suite.
892
  * Update FindBy annotations description
893
  * Moving last part of browserlaunchers package from client to server
894
  * Moving Proxies utility class to server
895
  * Moving LauncherUtils to the server
896
  * Moving utility method isScriptFile to the only class where it is needed
897
  * Deleting tests for removed deprecated classes
898
  * Moving more RC stuff to the server
899
  * Moving tests too
900
  * Moving proxy management stuff to the server, it is used in RC browser launchers only
901
  * Using asMap as well as toMap to convert an object to Json
902
  * Using JsonNull.INSTANCE instead of null
903
  * Removing deprecated classes
904
  * Log stacktrace. Adds more info on catch to be put into the log instead of just console.  This will help debug issues when one has access to grid hub log but no access to console.
905
  * Remove unused static import of Ignore.Driver.HTMLUNIT.
906
  * Remove obsolete ChromeOptions code.
907
  * trim() HTTP response content because some drivers send back a response containing trailing null bytes, which the GSON parser does not like.
908
  * If JsonParser.parse() fails to parse a string obtained from a reflective call to a toJson() method, assume it is a primitive string.
909
        This is the case for, e.g., FirefoxProfile.toJson(), which returns a base64-encoded zip file. That string likely contains at least one '/', which the Gson parser rejects.
910
  * Fixing SessionId from json converter to better handle the case of null sessionId
911
  * Fix the Eclipse config. The new gson dependency wasn't added. Now is :) Also switched a call in HtmlUnitWebElement to use guava rather than commons-lang since that's already included in the build configs for both Buck and CrazyFun.
912
  * Get the Buck build working again.
913
  * HtmlUnit: add text to the end of input fields. This makes the htmlunit driver work as the other drivers do.
914
  * HtmlUnit: Fix getAttribute for dynamic properties.
915
  * Enable Html5CapabilitiesTest for HtmlUnit
916
  * Fix classpath for running tests in eclipse This allows the htmlunitdriver tests to run in Eclipse.
917
  * Fixing broken CrossDomainRpcLoader
918
  * Implementing autoconverion of platform in Capabilities on write
919
  * Moving from org.json to gson because the license. Fixes issue 7956
920
  * Revert "Bump the version of webbit to 0.4.15"
921
  * Optimizing finding multiple elements by id by using CSS selectors if available. Fixes issue 7682
922
  * Fixing WDBS compatibility with IE5. Fixes issue 7938
923
  * HtmlUnitDriver: Initial code cleanup.
924
  * Eclipse classpath fixes for htmlunit.
925
  * Deflake a test.
926
927
v2.43.1
928
=======
929
930
  * Fixing socketlock bug with reusing the same profile multiple times
931
932
v2.43.0
933
=======
934
WebDriver:
935
936
  * Updating Native events to support Firefox 24, 31 and 32
937
  * Add note on stale element checks and a WebElement represents a DOM element
938
  * Upgrade third party dependency JavaScript-XPath to 0.1.12
939
  * Fix example code: "using(-Chrome)DriverExecutable"
940
  * Make event_firing_test.html pass in Firefox 24 ESR.
941
  * Fix an error propagation bug when a command fails from bad inputs.
942
  * Handle the case where a proxied element from PageFactory causes a FluentWait to timeout.
943
  * Integrating the Microsoft Internet Explorer driver implementation
944
  * Allow subclasses of HttpCommandExecutor to extend it at runtime.
945
  * Handle the case where executeScript returns an HTMLDocument.
946
  * IEDriver crashes in WaitUntilElementFocused() because of null pointer. Fixes issue #7577
947
  * Deprecate the original RC interface in Selenium.
948
    As part of Selenium 3.0, we shall be moving the original RC interface to a
949
    legacy JAR that will be available as a separate download. As the first step
950
    in this process, the original "Selenium" interface is being marked as
951
    deprecated.
952
  * Run FirefoxDriver tests with Buck.
953
  * Bump timeout for tests since a suite is also a test.
954
  * Run htmlunit-driver tests with Buck.
955
  * Run the ignored tests printer with Buck.
956
  * Get org.openqa.selenium.SmallTests building with Buck.
957
  * Working around limitations in subpixel precision event handling.
958
959
    The bug/limitation where browser supports subpixel precision for elements but not for dispatched events was found in both modern Chrome (http://crbug.com/396380) and Firefox (?) browsers.
960
    (IE doesn't seem to be affected: before and including IE9 - no subpixel for elements and events; from ie10 - subpixel is supported for both elements and events).
961
962
    This test was lucky so far (mostly?) and didn't hit this issue, until Chrome 37 that enabled subpixel text scaling by default.
963
964
    This change makes *sure* elements have subpixel coordinates (if only browser supports'em) and then it makes sure this test doesn't fail because of that (while still testing selenium atoms).
965
966
    While there, I moved asserts from event handlers into the normal test flow so jsunit can properly attribute assertion failures to specific test methods.
967
  * Updating prebuilt libs for windows
968
  * Re-add the rubyzip jar
969
  * updating prebuilts for linux
970
  * Updating to gecko 32
971
  * Log formatter should be able to work with empty keys array. Fixes issue 7357
972
  * Fixing infinite read from socket. Fixes issue 7814
973
  * WDBS: safe check for window.localStorage
974
  * Driver should operate cookies for the current frame, not the topmost one. Fixes issue 7799 in
975
    Firefox
976
  * Actually supporting promised Id for webdriver.WebElement.
977
  * Adding more checks for JS functions removed from IE11. Fixes issue 7803
978
  * Fixing use of deprecated API in httpclient
979
  * Fixing use of deprecated API in guava
980
  * Update Closure library to head and compiler to the latest release
981
  * Implementing ability to use FirefoxDriver on a machine where localhost is not the first alias for
982
    127.0.0.1. Fixes issue 3280
983
  * Handle null and empty paths the same as /
984
  * fixing maven build, adding reference to jetty-rc-repacked-5
985
  * adding pom and info on uploading jetty-repacked-5 to maven central
986
  * Adding checks for JS functions removed from IE11. Fixes issue 7780
987
  * Deleting what appears to be unused deps.
988
  * Add more options to the Builder API (every common, settable capability should be covered).
989
    * Require calling Builder.usingServer(url) to use a remote server. If this is not called, the
990
     builder will attempt to create a client locally, throwing an error if it can't (e.g. for IE).
991
    * Add browser specific constructors to simplify creating a client without the Builder.
992
    Fixes issue 7593
993
  * Updating json-cpp lib and replacing mongoose web server with civetweb.
994
  * Safari is flaky. Reducing timeout to fail faster when we're going to fail.
995
  * Catch driver start-up failures.
996
  * Add explicit API for configuring log prefs rather than forcing users to rely on
997
    magic capability strings.
998
  * Clean up internal Firefox logging API.
999
  * Use LogLevelMapping to convert JSON wire protocol name to Level instance.
1000
  * Make the jettyMaxThreads parameter actually be effective
1001
  * Fix NullPointerException when File#listFiles() returns null. Fixes issue #1934
1002
  * Making WDBS.start command a no-op if it was instantiated with an already started driver. Fixes issue 3993
1003
  * Handling possible exception in stringification of window.location. Fixes issue 3908
1004
* Modified IE driver server to more closely follow W3C spec
1005
1006
    This commit includes a number of changes designed to bring the IE driver
1007
    into closer alignment with the W3C WebDriver specification. It provides
1008
    no functional changes to the driver, nor does it change any external-
1009
    facing API. The changes are:
1010
     * Changed webdriver::Server to examine the response from the newSession
1011
       command for the session ID rather than a two-stage process. The
1012
       webdriver::Server::DispatchCommand method now calls the
1013
       InitializeSession method directly when processing the newSession
1014
       command.
1015
     * Removed the now-obsolete webdriver::Server::CreateSession method.
1016
     * Added a Serialize/Deserialize method pair on the webdriver::Command
1017
       class (renaming the Populate method to Deserialize).
1018
     * Revamped the serialization of webdriver::Command to use 'name' instead
1019
       of 'command' for the command name.
1020
     * Added a session ID member to the webdriver::Command object.
1021
     * Modified the webdriver::Command object to no longer draw distinction
1022
       between parameters passed in as part of the URL substitution and those
1023
       passed in as part of the JSON payload in the body.
1024
     * Modified webdriver::CommandHandler::ExecuteInternal (and all subclass
1025
       implementations to use a single parameters map instead of the dual
1026
       URL tokens/JSON payload parameters maps used previously.
1027
  * Propagate webdriver_firefox_port preference to FirefoxDriver, was being ignored. Fixes issue 5172
1028
  * Adding a new selenium server option -logLongForm to log more details to the console. Fixes issue 6645
1029
  * Handling possible IllegalStateException while cleaning orphaned and timed out sessions. Fixes issue 6771
1030
  * Setting forwarded content for CommandListener afterCommand handler. Fixes issue 7443
1031
  * Fixing the list of extensions to search for an executable on Windows, and logging process startup
1032
    errors. Fixes issue 7514
1033
  * Setting layout.css.devPixelsPerPx to 1.0 if native events are enabled only. Fixes issue 7445
1034
  * BODY element is always shown/displayed.
1035
    related section in the W3C spec:
1036
    https://dvcs.w3.org/hg/webdriver/raw-file/default/webdriver-spec.html#determining-if-an-element-is-displayed
1037
  * Implementing switchToParentFrame support in atoms
1038
  * Setting HtmlUnit to emulate FF24 by default
1039
  * Updating HtmlUnit to 2.15
1040
  * Stop polluting the log with stacktraces. Fixes issue 7460
1041
  * Returning less specific platform info from firefox driver. Fixes issue 3354
1042
  * Adding driver info into TimeoutException thrown by WebDriverWait. Fixes issue 7429
1043
  * Implementing switchToParentFrame command for IE driver
1044
  * Adding URL endpoint for switchToParentFrame
1045
1046
v2.42.2
1047
=======
1048
WebDriver:
1049
1050
  * errorHandler needs to be instantiated. Fixing NPE with IEDriver Issue #7415
1051
1052
v2.42.1
1053
=======
1054
WebDriver:
1055
1056
  * resorting context endpoints, belong with mobile spec
1057
  * re-added Context endpoints to java client
1058
  * allow custom ErrorHandler for HTTPCommandExecutor
1059
  * fixing toJSON of chrome options where equal options become unequal.
1060
1061
v2.42.0
1062
=======
1063
WebDriver:
1064
1065
  * updating firefox prebuilts, thanks jleyba for fixing the build!
1066
  * Use PRUnichar for Gecko < 29, char16_t otherwise.
1067
  * Updating third_party/py/jython.jar to Jython 2.5.3
1068
  * Removing unused functions
1069
  * Implementing more straightforward way to send keyboard events in synthesized mode. Fixes typing into number inputs and rich text editors (like tinymce)
1070
  * Fixing interactions API in Firefox to be able to move mouse to elements in frames using native events. Fixes issue 7253
1071
  * Removing unused import
1072
  * Refactoring: moving an auxiliary class from the top level to inner class
1073
  * Removing outdated getValue command handler
1074
  * Change ClearElement to be a subclass of WebElementHandler instead of WebDriverHandler
1075
  * Removing outdated (unused) command constants
1076
  * Fixing clicks on invisible elements in HtmlUnitDriver broken by ElementNotVisibleException being a subclass of InvalidElementStateException
1077
  * Click after move with offset should use last mouse position
1078
  * Adding new interface methods to the stubs
1079
  * Preserve wrapped test function's string representation for Mocah's BDD interface.
1080
  * Fixing IE driver to allow JavaScript objects with property names with spaces
1081
  * Ignoring IE6-only test failure for CSS
1082
  * Bump the hmltunit version to 2.14
1083
  * Remove a class of our which replicates HTTP status codes already given meaningful names in the standard JRE.
1084
  * Updating version match for native libs in firefox plugin manifest file
1085
  * Updating native events dll for FF28
1086
  * Implement ability to load driver providers using ServiceLoader. A user can add new providers or override existing ones. To use this ability a user should:
1087
  * Refactoring the process of driver instances creation to use a new DriverProvider interface. DefaultDriverProvider wraps the current logic -- creating instances using reflection. This is a step to implement ability to load additional providers using ServiceLoader that can add new providers or override existing ones.
1088
  * Ruby: Fix for extensions whose install.rdf uses an attribute for em:id (issue 5978)
1089
  * fixes issue for locating newly installed chrome versions
1090
  * Fixing IE driver crash when clicking on link that opens a new window.
1091
  * Properly configure the http client in the presence of user credentials.
1092
  * java json converter chooses Long (Number base class). Fixing RemoteNetworkConnection
1093
  * SUPPORTS_BROWSER_CONNECTION was removed, missed a reference
1094
  * Clean up use deprecated methods & classes.
1095
  * ElementNotVisibleException is a type of InvalidElementStateException.
1096
  * Tweak messaging on SafariDriver client page to better reflect what is happening. Also added a log message pointing users to the toolbar button that opens the driver log page.
1097
  * Remove some no-op calls to deprecated functions.
1098
  * Pull the logic for converting Command/Response pairs to and frame HTTP request/response pairs into a common codec instead of duplicating the logic on the client and server.
1099
  * Change some tests to use Alert#accept() instead of Alert#dismiss() to get rid of alert dialogs. This is a workaround to ChromeDriver issue 764:
1100
  * When running tests against the remote server, ignore two tests that use required capabilities. The remote server only supports desired capabilities on new session requests.
1101
  * Update two tests to work when running with a remote server, where the original js error will be the root exception, but not necessarily the second error in the cause chain.
1102
  * Test if we need to skip cookie tests for lack of a valid domain name before calling a method that asserts we have a valid domain name.
1103
  * Convert HttpRequest/Response to POJOs; handle all conversion to and from HttpServletRequest/Response inside DriverServlet.
1104
  * Every command handler returns ResultType.SUCCESS and those handlers that return an actual value do so through a level of indirection. This commit changes command handlers to just return results directly to the caller, making it possible to delete a lot of unnecessary code.
1105
  * Move static resource serving code into DriverServlet. It is not part of the JSON wire protocol and including it in the command dispatcher complicates planned refactoring and other code cleanup.
1106
  * Mobile - Network Connection implementation for Java and Python.
1107
  * ChromeDriver 2.10.267517 binds to the loopback address instead of 0.0.0.0, so only attempt to connect using the loopback address.
1108
  * Code comment changes for wait()
1109
  * added task name to SCHEDULE_TASK event
1110
  * Eclipse compiler update for Java 8 support
1111
  * Updating naive user agent string checks to account for IE11
1112
  * Adding Windows 8.1 detection to Platform.extractFromSysProperty
1113
  * retry a test failure if there was a 'sauce' issue, like we exceeded the total time a test session is allowed to take.
1114
  * adding Windows 8.1 platform, so we can use it in saucelabs for IE11 testing
1115
  * Remove deprecated functions on webdriver.promise.Promise class * Use templates with webdriver.promise.Promise to improve types   documentation.
1116
  * Loosen input type to webdriver.stacktrace.getStack_ to account for an rare condition in FF 28+ where the Error() constructor returns undefined (not sure what causes it, just know it happens)
1117
  * Add ability to save an abitrary base64 string as a screenshot from a WebDriverJS test running in a browser.
1118
  * When Firefox is configured to accept all SSL certs (which is the default behavior), we need to set a time offset to prevent Firefox from using HSTS (HTTP Strict Transport Security). If we don't do this, Firefox will pre-fetch the certs for sites that should always be accessed over HTTPS and allows Firefox to catch man-in-the-middle attacks. While this is A Good Thing for users, it prevents WebDriver from accepting self-signed certs for these domains (e.g. when they are accessed through a HTTPS proxy).
1119
  * Remove unnecessary dependency on bouncycastle.
1120
  * Making ChromeDriver directly implement the interfaces representing features it implements.
1121
  * Updating build process for Firefox native events components to use gecko 29 SDK
1122
  * Updating buck version to latest OSS release
1123
  * Use addEventListener if possible. Fixes issue 6680
1124
  * Packaging webdriven selenium (emulator) to client-combined jar. Fixes issue 7206
1125
  * Don't use system path separators when computing URL paths.
1126
  * Make Cookie serializable
1127
  * Ignoring a test for HtmlUnitDriver that can't be run due to HtmlUnit restrictions
1128
  * Allowing FindBy, FindBys, FindAll annotations on types
1129
  * Minor cleanup FirefoxBinary.java
1130
  * Adding Firefox native event version support to CHANGELOG
1131
  * Adding version number to the capabilities returned by htmlunitdriver. Fixes issue 7110
1132
  * Implementing augmentation indicator as an annotation
1133
  * Error handling for startSession is handled in the parent class now.
1134
  * Remove deprecated functions.
1135
  * Revert "Fixing Java 8 incompatibility caused by use of old jruby" because it breaks java 7 compatibility :(
1136
  * Fixing Java 8 incompatibility caused by use of old jruby
1137
  * Export logging API from main webdriver module.
1138
  * Setting pixel density to be independent from OS settings. Fixes issue 6112
1139
1140
v2.41.0
1141
=======
1142
WebDriver:
1143
 * Update to support native events for Firefox 28 (removed native event
1144
   support for Firefox 26). Native events are now supported for the
1145
   following Firefox versions:
1146
1147
   17 (immediately previous ESR release)
1148
   24 (current ESR release)
1149
   27 (immediately previous release
1150
   28 (current release)
1151
1152
 * Fixed capabilities to be sent properly encoded. For instance,
1153
   capabilities for mobile have copyright signs.
1154
 * Renamed some commands in the Firefox driver to prepare for Selenium
1155
   3. This essentially means that we're mirroring the names of the
1156
   commands in the function names within the driver. Also implemented
1157
   handling a Selenium 3 style "sessionId" in a Command received by a
1158
   Selenium 2 server.
1159
 * Implemented support for switching context as described here:
1160
   http://code.google.com/p/selenium/source/browse/spec-draft.md?repo=mobile#133.
1161
   This feature will be used by mobile WebDriver users to switch
1162
   between different contexts like the native or the webview UI element
1163
   tree. The feature is end to end tested with latest Selendroid
1164
   snapshot version (6a126ab). In the langauge bindings, this is
1165
   implemented as a role-based interface. Subclasses of RemoteWEbDriver
1166
   that need this should extend TargetLocator and use covariant return
1167
   types to keep everything happy and sweet.
1168
 * Removed InternetExplorerDriver constructor that accepts
1169
   WindowsProxyManager as a parameter. Proxy management moved to
1170
   IEDriverServer and WindowsProxyManager is used for RC only now.
1171
 * Removed use of VK_ENTER since its been removed from Firefox. PUA
1172
   code uses VK_RETURN now like Mozilla Tools.
1173
 * Added switch to parent frame command to the wire protocol and API.
1174
 * Added httpOnly flag to Cookie JSON object.
1175
 * (on behalf of Tobias Lidskog): Added property for silencing
1176
   chromedriver. The Java property "webdriver.chrome.silentOutput" is
1177
   now used to set the default value for silent mode in chromedriver
1178
   using the ChromeDriverService class. This is analogous to the
1179
   existing system property for controlling verbose mode.
1180
 * (on behalf of Yi Zeng): Updated download link to googleapis.com
1181
 * Reduced the visibility of a deprecated class in the htmlunit driver.
1182
 * Removed deprecated FirefoxProfile.setProxyPreferences method.
1183
 * Removed deprecated ChromeOptions.setExperimentalOptions
1184
 * FIXED: 4843: (on behalf of Jonatan Kronqvist): Regard all modifier
1185
   keys in SingleKeyAction. An earlier commit added META, but COMMAND
1186
   and LEFT_* were left out as they were misinterpreted as aliases,
1187
   which they aren't (they onlyuse the enum definition to get the same
1188
   character code of the keys).
1189
 * FIXED: 5331: Added javadoc to JavascriptExecutor executeAsyncScript
1190
   about the default timeout. Also added some extra information on
1191
   troubleshooting common issues.
1192
 * FIXED: 7014: Fixed parameters parsing.
1193
 * FIXED: 7033: Fixed javadoc.
1194
1195
WebDriverJS:
1196
 * FIXED: 7105: Properly bind "this" for beforeEach/it/afterEach in
1197
   mocha integration.
1198
1199
Grid:
1200
 * Modified to ignore exceptions during the clean-up process if failing
1201
   to start a RemoteWebDriver instance.
1202
 * FIXED: 6770: Setting a timeout when Jetty has low resources to
1203
   prevent hub from hanging.
1204
 * FIXED: 6771: If a session times out and the browser was never
1205
   started, it should still be cleaned up on the hub side.
1206
   BeforeRelease should then be a no-op and not throw.
1207
 * FIXED: 6772: Added a configuration parameter to set the number of
1208
   threads Jetty uses. Default is -1, which implements the current
1209
   behavior (255 threads from Jetty's default settings)
1210
 * FIXED 6773: Consuming the request in all cases to properly release
1211
   resources.
1212
 * FIXED: 6811: Clean up immediately if starting a driver or session
1213
   errors in RemoteWebDriver.
1214
 * FIXED: 6878: Actually pass the response body to CommandListener
1215
   implementations, per the interface contract.
1216
 * FIXED: 7047: Updated a grid timeout property that seems to have been
1217
   overlooked in a previous cleanup.
1218
1219
RC:
1220
 * Added lost quotes in JSON format (RC).
1221
 * Removed old version of Selenium RC emulation and leaving the new one
1222
   in place.
1223
1224
v2.40.0
1225
=======
1226
WebDriver:
1227
 * Update to support native events for Firefox 27 (removed native event
1228
   support for Firefox 25).
1229
 * Removed the iPhone driver. Also leaving the atoms available, so that
1230
   appium and iosdriver can use them.
1231
 * Deleted the client side of the AndroidDriver. Note that the atoms
1232
   are still left in place so that Selendroid can still be compiled.
1233
 * Make the RemoteWebDriver implement TakesScreenshot. There's only one
1234
   driver that doesn't implement the interface (the HtmUnitDriver) and
1235
   this is the most common cause for using the Augmenter, which isn't
1236
   very discoverable.
1237
 * Imported PhantomJSDriver 1.1.0, removing 1.0.4 (previous version).
1238
 * Implemented augmentation of previously augmented instances
1239
 * Fixed JdkAugmenter's inability to add interfaces that are already implemented
1240
 * Removed org.openqa.selenium.net.INetAddress, an unnecessary abstraction
1241
   around java.net.InetAddress.
1242
 * (on behalf of Tobias Lidskog) Add ability to send --silent flag to
1243
   chromedriver.
1244
   when building an inverted predicate.
1245
 * Implemented part of advanced user interactions using injected atoms
1246
 * Fixed HtmlUnitDriver to handle timeout exception on refresh.
1247
 * Implemented page load timeouts in Firefox without stopping page
1248
   loading.
1249
 * Implemented pageLoadingStrategy capability in Firefox.
1250
 * Migrated the WebDriverBackedSelenium to
1251
   com.thoughtworks.selenium.webdriven. This also leaves behind a
1252
   deprecated implementation of each of the key interfaces to ease
1253
   migration for users.
1254
 * Implemented proper error code for the case of invalid css selector
1255
   empty class name, and compound class name in atoms.
1256
 * Implemented alert and confirmation handling in WDBS (Java)
1257
 * Throw a more descriptive error when typing in certain types of input
1258
   elements in Chrome. Starting with Chrome 33, certain types of input
1259
   elements do not support the selection API (in fact, they throw when
1260
   you try to access the property). This prevents us from fully
1261
   simulating typing in the atoms.
1262
 * FIXED: 2397: (on behalf of TommyBeadle) Fixed exception handling
1263
 * FIXED: 3991: Add Keys.chord(Iterable<CharSequence>) as a utility
1264
   method.
1265
 * FIXED: 4606: Stop web page loading after timeout.
1266
 * FIXED: 4843: (on behalf of Jonatan Kronqvist) Keys.META is now
1267
   regarded as modifier key in SingleKeyAction. Keys.META, Keys.COMMAND,
1268
   Keys.LEFT_ALT, Keys.LEFT_CONTROL and Keys.LEFT_SHIFT are now also
1269
   regarded as modifier keys in SingleKeyAction (because of their
1270
   aliases).
1271
 * FIXED: 5397: Disabled validation of cookies loaded from the browser.
1272
   If the browser could parse the cookie we are to be able to provide
1273
   this information to the user even if the cookie is inalid.
1274
 * FIXED: 5859: Implemented keyDownNative, keyUpNative and
1275
   keyPressNative in WDBS. These commands are implemented via Actions.
1276
 * FIXED: 6512: When the host is unknown, make the HtmlUnitDriver
1277
   return an error page.
1278
 * FIXED: 6657: Make the LoggingPreferences implement Serializable.
1279
 * FIXED: 6681: Preventing augmentation of subclasses of RemoteWebDriver. Fixes
1280
 * FIXED: 6830: (on behalf of GeorgeKlinich) Urlencoding result
1281
   returned by server implementation of WebDriverBackedSelenium.
1282
 * FIXED: 6834: Creating sesion cookie if expiry is not set. Fixes issue 6834
1283
 * FIXED: 6947: Script timeout should get reset even when async
1284
   callback is called synchronously.
1285
1286
WebDriverJS:
1287
 * For consistency with Closure's new promise API, use thenCatch()
1288
   and thenFinally() instead of addCallback(), addErrback(), et al.
1289
 * ResultType.EXCEPTION and ResultType.ERROR are handled the exact same way,
1290
   so remove one of them and simplify some code.
1291
 * Treat promise.fulfill/reject as no-ops instead of throwing if the
1292
   promise has already been resolved.
1293
 * Added some utility functions to simplify working with arrays of
1294
   promises.
1295
 * FIXED: 6826: Add support for custom locators in webdriverjs.
1296
1297
Grid:
1298
 * FIXED: 4589: Restrict the host where grid hub is listening if -host
1299
   option is specified.
1300
 * FIXED: 6445: Shorten string representation of capabilities in the
1301
   hub log and grid console.
1302
1303
RC:
1304
 * Deprecated browser launchers for dead versions of firefox.
1305
1306
v2.39.0
1307
=======
1308
WebDriver:
1309
 * Update to support native events for Firefox 26.
1310
 * Removed server side of iPhone driver.
1311
 * Removed server-side of AndroidDriver and deprecating client side.
1312
1313
WebDriverJS:
1314
 * FIXED: 6686: Changed Deferred#cancel() to silently no-op if the
1315
   deferred has already been resolved.
1316
1317
v2.38.0
1318
=======
1319
WebDriver:
1320
  * Update to support native events for Firefox 25.
1321
  * Updated httpclient and httpcore maven dependencies
1322
  * When moving the mouse relative to an element hidden in a parent's
1323
    overflow region, that element must first be scrolled into view
1324
    before the mouse move can be completed.
1325
  * Removed WindowsProxyManager from InternetExplorerDriver, proxy
1326
    management is implemented in IEDriverServer now.
1327
  * The logging level for the FirefoxDriver's native components can now
1328
    be set from the command line with the SELENIUM_LOG_LEVEL
1329
    environment variable. Valid values are ERROR, WARN, INFO, DEBUG,
1330
    and TRACE. If the value is not set, or an unrecognized value is
1331
    specified, the log level will be set to FATAL (which was the
1332
    previous behavior).
1333
  * Implemented ability to return Date object from executeScript
1334
    (Firefox only).
1335
  * Fixed Firefox returning the actual state of nativeEvents.
1336
  * Made it possible to switch the webdriver.xpi from the command line
1337
    using a system property.
1338
  * Removed hardcoded chromedriver version
1339
  * SafariDriver WebElement#getTagName() should return a lowercase
1340
    string.
1341
  * If ChromeDriver fails to start, suppress any exceptions from the
1342
    subsequent "clean-up" quit() so the error from start is not lost.
1343
  * Added an alternate, and Android-friendly, implementation of the
1344
    Augmenter that uses JDK interface proxies instead of cglib. This
1345
    new implementation is available as org.openqa.remote.JdkAugmenter;
1346
    the default Augmenter implementation still relies on cglib.
1347
  * Prevented an infinite loop when computing overflow state when the
1348
    documentElement has fixed position.
1349
  * Improveed logging for UnixProcess#destroy().
1350
  * If an error is thrown while typing a key sequence, return that
1351
    error to the client. Prior to this change, the driver would
1352
    effectively hang.
1353
  * Do not attempt to generate a key event if the target element is no
1354
    longer attached to the DOM. nsIPressShell (which is used to
1355
    dispatch events) will throw a generic NS_UNEXPECTED_ERROR if we
1356
    fail to make this check.
1357
  * FIXED: 3107: (On behalf of Ross Patterson) Preventing possible NPE.
1358
  * FIXED: 4501: (On behalf of Robert Ambrus) Introduced a system
1359
    property org.openqa.jetty.SocketListener.bufferSize that allows to
1360
    set the size of the buffer Jetty uses for network communications.
1361
  * FIXED: 4698: Added missing expected conditions.
1362
  * FIXED: 5295: User defined element properties should be retrievable
1363
    with getAttribute.
1364
  * FIXED: 5900: Revamped the SafariDriver's internal networking.
1365
  * FIXED: 6294: Implemented ability to switch to a frame by id or name
1366
    in WDBS.
1367
  * FIXED: 6358: Disabled Content Security Policy in Firefox.
1368
  * FIXED: 6414: Fixed the way EventFiringWebDriver unwraps the
1369
    underlying driver.
1370
  * FIXED: 6431: Catch an exception thrown if the chrome executable is
1371
    not found and stop chromedriver before propagating it.
1372
  * FIXED: 6445: Shortened Firefox profile textual representation in
1373
    capabilities.
1374
  * FIXED: 6473: Implemented ability to pass --verbose option to
1375
    chromedriver.
1376
1377
WebDriver JS:
1378
  * Always annotate errors for rejected promises
1379
  * FIXED: 6284: Omit x/y offsets from the mouseMove command instead of
1380
    defaulting to (0,0).
1381
  * FIXED: 6471: Correctly document the contract on
1382
    WebElement#getAttribute
1383
  * FIXED: 6612: On Unix, use the default IANA ephemeral port range if
1384
    unable to retrieve the current system's range.
1385
  * FIXED: 6617: Checking for Error.captureStackTrace is sufficient to
1386
    determine if an environment supports stack traces. This avoids
1387
    unnecessarily triggering debuggers configured to halt when an error
1388
    is thrown.
1389
  * FIXED: 6627: Safely rebuild chrome.Options from a partial JSON spec.
1390
1391
Grid:
1392
  * FIXED: 6357: Added PhantomJS icon to the grid console.
1393
  * FIXED: 6392: Removed misleading log messages.
1394
1395
RC:
1396
  * FIXED: 1666: Fixed typo in RegExp.test function name.
1397
  * FIXED: 1758: Ignoring closed windows when collecting attributes
1398
    from all windows (RC).
1399
  * FIXED: 2508: Fixed screenshot size calculation for quirks mode (RC)
1400
  * FIXED: 2845: Moved storedVars from test case level to test suite
1401
    level.
1402
  * FIXED: 3185: Fixed JSON converter (RC).
1403
  * FIXED: 3270: Fixed switch to window by var= locator (RC).
1404
  * FIXED: 5103: Fixed screenshooter in Firefox and Selenium RC,
1405
    limiting the size of the screenshot to pevent failures.
1406
  * FIXED: 6496: Enabled .htm and .xhtml extensions for test suites.
1407
1408
v2.37.0
1409
=======
1410
  * Fix Firefox native event support on Linux for 23 & 24.
1411
1412
v2.36.0
1413
=======
1414
WebDriver:
1415
  * Updated Firefox native event components to support Firefox 24.
1416
  * Updated HtmlUnit to 2.13.
1417
  * Updated HttpClient to 4.3.
1418
  * Updated version of Guava to 15.
1419
  * Updated version of wgxpath.
1420
  * Return an empty string instead of "null" when the browserName and
1421
    version capabilities are not set.
1422
  * Stop propagation of the webdriver-evaluate custom event when
1423
    executing user supplied JavaScript. Without this change, the event
1424
    handler will trigger twice for async scripts, causing the driver to
1425
    attempt to evaluate the user script twice, leading to unpredictable
1426
    behavior.
1427
  * Added a new pause action to the interactions API.
1428
  * Improved support for using the HTML5 APIs through the remote
1429
    server by augmenting the session driver before attempting to
1430
    access HTML5 capabilities.  If the driver does not support the
1431
    requested feature, throw an UnsupportedCommandException instead of
1432
    a ClassCastException.
1433
  * Implemented elementScrollBehavior capability in FirefoxDriver.
1434
  * Fixed getLocation to work on scrolled pages.
1435
  * Fixed autoscrolling for elements located in frames.
1436
  * Fixed drag-n-drop for elements in frames in Firefox with native
1437
    events
1438
  * Implemented SOCKS proxy support for FirefoxDriver
1439
  * Fixed support for SVG documents in the atoms.
1440
  * Fixed computing an element's container dimensions to account for
1441
    the scrollbar size when scrolling
1442
  * FIXED: 2670: Made subclasses of By serializable.
1443
  * FIXED: 6200: Pass command line arguments to the Selenium server
1444
    instead of to the JVM.
1445
  * FIXED: 6293: Added more informative error message.
1446
  * FIXED: 6346: Allow args to passed to the JVM using the jvmArgs
1447
    option.
1448
1449
Grid:
1450
  * Added ability to fetch slotCounts from /grid/api/hub. The resource
1451
    looks like this:
1452
1453
        { "slotCounts": { "total": 20, "free": 8 } }
1454
1455
  * Added ability to fetch newSessionRequestCount from the
1456
    /grid/api/hub resource.
1457
1458
1459
v2.35.0
1460
=======
1461
WebDriver:
1462
  * Updated Firefox native event components to support Firefox 23.
1463
  * Removing deprecated interactions interfaces (Keyboard, Mouse,
1464
    TouchScreen).
1465
  * Updated operadriver to 1.4.
1466
  * Introduced ie.setProxyByServer capability to select how IE browser
1467
    proxy will be set up, either by old Java code using Windows
1468
    registry or inside IEDriverServer using WinINet methods. This
1469
    capability is marked as deprecated and will be removed in future
1470
    versions. In the future, IE proxy settings will be set up only by
1471
    IEDriverServer. Current default value of ie.setProxyByServer is
1472
    false so Windows registry will be used for IE proxy setup.
1473
  * Guarded around IE returning an empty object for the active element.
1474
  * FIXED: 6055: Fixing "invalid xpath" issue, actually invalid NS
1475
    resolver.
1476
1477
WebDriver JS:
1478
  * FIXED: 6079: The parent process should not wait for spawned driver
1479
    service processes (chromedriver, phantomjs, etc.)
1480
1481
v2.34.0
1482
=======
1483
1484
WebDriver:
1485
  * Updated Firefox native event components to support Firefox 22.
1486
  * Update synthesized mouse implementation. Mouse moves are
1487
    implemented using nsIDOMWindowUtils.
1488
  * Finding libX11.so.6 in a slightly more intelligent way: Check that
1489
    dlopen actually succeeds, if not found in one of the fixed paths,
1490
    look in the LD_LIBRARY_PATH.
1491
  * Added ExpectedConditions to check for the visibility of all
1492
    WebElements in a List
1493
  * Updated the wgxpath library.
1494
  * Updated our copy of the Closure compiler and library to the most
1495
    recent versions.
1496
  * Updated the atoms library, including support for MS pointer events
1497
    and refinements to element visibility tests.
1498
  * Close all open connections when stopping the SafariDriver server.
1499
  * Fall back to a loopback address if the current machine does not
1500
    have an external IP address (as will be the case when there is no
1501
    internet connection).
1502
  * Remove sizzle dependency from the firefox driver. We only needed
1503
    this for versions of firefox prior to 3.5, which we no longer
1504
    support.
1505
  * Fixed Select.escapeQuotes method.
1506
  * Added SafariOptions and support for custom Safari extensions.
1507
  * Moved Mouse, Keyboard and TouchScreen to the interactions package
1508
    where they belong. This has the benefit of also making our build
1509
    files simpler once we delete the original versions which have been
1510
    deprecated.
1511
  * Deprecated the HasTouchScreen interface.
1512
  * Fixed condition in Select.select_by_index method to fix case when
1513
    selection is performed by index on a multiple select element.
1514
  * Implemented an alpha version of a Marionette (WebDriver implemented
1515
    natively in Firefox) driver.
1516
  * Deprecated IPhoneDriver.
1517
  * Added support for the HTML5 "hidden" attribute. If an element, or
1518
    ancestor, has hidden attribute make, it is not shown.
1519
  * FIXED: 2285: Allow setting default logLevel for standalone-server.
1520
  * FIXED: 5609: Adding the ability to redirect firefox process output
1521
    to file.
1522
  * FIXED: 5669: Add Driver#remote_status for the Ruby remote driver.
1523
  * FIXED: 5715: Adding toString method for the event firing
1524
    webelement.
1525
1526
WebDriver JS:
1527
  * When capturing console output, guard against user scripts that
1528
    redefine the console global.
1529
  * Improved logging in the test client.
1530
  * Use goog.labs.testing.assertThat for the assertThat library.
1531
  * Improved stack trace handling
1532
  * Defined a webdriver.Capabilities class for webdriverjs.
1533
  * Added native ChromeDriver support to WebDriverJs.
1534
  * Mark discarded tasks as cancelled to prevent hanging on
1535
    asynchronously scheduled callbacks.
1536
  * Include the webdriverjs tests in the built npm package. Updated
1537
    the README with instructions for running the tests using npm.
1538
  * Add native PhantomJS support to webdriverjs.
1539
1540
Grid:
1541
  * Update grid for change in behavior of WebDriver's new session
1542
    command.
1543
  * Fixed handling of JSON conversion errors at node.
1544
  * FIXED: 5942: Fix hang of hub when node machine is not available.
1545
1546
RC:
1547
  * Fixed RC tests failing in Firefox beta builds. This has been fixed
1548
    in two ways:
1549
1550
    * Rely on the automation atoms where possible.
1551
    * Obtain the document and window from the element the event is
1552
      firing from.
1553
1554
    In the course of fixing this, all but one usage of "triggerEvent"
1555
    was replaced. Because of this, the method has been inlined to the last
1556
    call site.
1557
  * FIXED: 1646: UTF-8 encoded user-extensions.js support.
1558
1559
1560
v2.33.0
1561
=======
1562
1563
WebDriver:
1564
  * getText() ignores elements in the <head>
1565
  * Bundled OperaDriver version bumped to 1.3.
1566
  * Added a FindAll annotation for the PageFactory to use.
1567
  * Added a toString() implementation to Color.
1568
  * Deleted the Selenium-backed WebDriver.
1569
  * FIXED: 2218: IE >=9 versions triggerMouseEvent like other
1570
    browsers.
1571
  * FIXED: 2610: Implementing ability to specify path to the chrome
1572
    executable in the node configuration file using chrome_binary
1573
    capability.
1574
  * FIXED: 2685: Increasing port range for Firefox to chose from when
1575
    starting.
1576
  * FIXED: 4790: Improvements made to Firefox startup in highly
1577
    concurrent environments.
1578
  * FIXED: 5045: Added support for fetching logs from SafariDriver.
1579
  * FIXED: 5652: Adding unhandled alert text to the exception message.
1580
  * Added LogType.PERFORMANCE, supported in chromedriver2 0.9+.
1581
1582
WebDriver JS:
1583
  * FIXED: 5511: Implement
1584
    driver.manage().timeouts().pageLoadTimeout(ms) for WebDriverJs.
1585
  * FIXED: 5632: It's now possible to create a new session with
1586
    WebDriverJs when running in a browser.
1587
  * Add a WebDriverJs client to the SafariDriver's logging window so
1588
    it's possible to use WebDriver from the devtools REPL on that
1589
    page.
1590
1591
Grid:
1592
1593
  * Making "beta" console the default one, it's time to get out of
1594
    beta status
1595
  * Old console is now available at /grid/old/console/
1596
  * Addressed memory leaks caused by per-session logging.
1597
  * FIXED: 3001: Making Selenium the default protocol if a node was
1598
    started with "-role rc" option.
1599
1600
RC:
1601
  * FIXED: 3636: selenium.fireEvent works with the webdriver-backed
1602
     selenium and IE.
1603
1604
v2.32.0
1605
=======
1606
1607
WebDriver:
1608
  This release supports Firefox verions: 10esr, 17esr, 19, 20
1609
1610
  * Let WindowsUtils.killPID() kill the whole process tree
1611
  * Implementing support for implicit "submit" button type in
1612
    HtmlUnitDriver.
1613
  * bug fix for python hang with 302 response
1614
  * Adding better support for SVG within Firefox. Has better scrolling
1615
    to element and allows JavaScript execution
1616
  * Fixing case of "no active element" for HtmlUnitDriver
1617
  * WindowsUtils.kill() fix on Windows 8
1618
  * Updating HtmlUnit to 2.12 (and cssparser to 0.9.9)
1619
  * Fixing illegal negative timeout values for HtmlUnitDriver, zero
1620
    means infinite wait
1621
  * Implementing pageLoadTimeout in HtmlUnitDriver
1622
  * Allow users to specify a custom location for Safari's data
1623
    directory using the "safari.dataDir" capability.
1624
  * Fix for using DesiredCapabilities with WebDriverBackedSelenium
1625
  * PhantomJS Driver bindings updated to 1.0.3
1626
  * Minimize the number of third party libraries used by the very
1627
    heart of the remote webdriver server.
1628
  * fix issue where server was appending '?null' to all forwarded
1629
    requests
1630
  * Issues fixed: 5293, 4902, 5283, 5278
1631
1632
v2.31.0
1633
=======
1634
  (summary not created, check version history logs)
1635
1636
v2.30.0
1637
=======
1638
1639
WebDriver:
1640
  * Fixing a bug introduced by a change in how we get already logged
1641
    messages from the console service in firefox. This allows us to
1642
    function with firefox 19
1643
  * FIXED: 1181: Improved loopback detection
1644
  * FIXED: 1627: Implementing ability to use auto proxy in
1645
    HtmlUnitDriver.
1646
  * FIXED: 3652: moveToElement with offset should consider 0 as a
1647
    valid value, not as "undefined".
1648
  * FIXED: 3868: Better ephemeral port range selection.
1649
  * FIXED: 4107: Added prebuilt version of the SafariDriver extension
1650
    to the client jar.
1651
  * FIXED: 4821: WebDriverBackedSelenium works when added to project
1652
    via maven.
1653
  * FIXED: 4940, 5075: Added iceweasel to list of firefox variants.
1654
  * FIXED: 5022: Text node with overflow:hidden and height/width 0 to
1655
    not be visible since we cant see them.
1656
  * FIXED: 5030: Only send files to upload, not directories.
1657
  * FIXED: 5079: FluentWait.until(Predicate) method does not propagate
1658
    predicate message.
1659
  * FIXED: 5109: We should show elements visible if there is a pixel
1660
    visible.
1661
  * Semi-private change: Changes in the Coordinate class.
1662
1663
JS:
1664
  * Update WebDriverJS to support parallel flows.  This change renames
1665
   several low-level classes and functions in the promise module:
1666
1667
      promise.Application                                 -> promise.ControlFlow
1668
        #schedule(string, function)                       ->   #execute(function, [string])
1669
        #scheduleTimeout(string, number)                  ->   #timeout(number, [string])
1670
        #scheduleWait(string, function, number, [string]) ->   #wait(function, number, [string])
1671
1672
    The old schedule* functions are still present, but will print a
1673
    warning message if called. They will be removed in 2.31.
1674
1675
RC:
1676
  * Added ability to use relative path to an -htmlSuite file.
1677
  * FIXED: 3498: Proxy based browsers are back to normal on HTTPS
1678
  * FIXED: 5113: Implementing GET requests support for RC protocol.
1679
1680
1681
v2.29.0
1682
=======
1683
1684
WebDriver:
1685
  * Firefox 18 support.
1686
  * IEDriver supports "requireWindowFocus" desired capability. When
1687
    using this and native events, the IE driver will demand focus and
1688
    user interactions will use SendInput() for simulating user
1689
    interactions. Note that this will mean you MUST NOT use the
1690
    machine running IE for anything else as the tests are running.
1691
  * Use the "webdriver.remote.shorten_log_messages" system property to
1692
    reduce the verboseness of ouput from executeScript and
1693
    executeAsyncScript when using the RemoteWebDriver.
1694
  * Switching HtmlUnitDriver default from FIREFOX_3_6 to FIREFOX_10
1695
  * SafariDriverExtension should restore Safari's previous settings on
1696
    shutdown.
1697
  * Bundled version of PhantomJSDriver bumped to 1.0.1
1698
  * Updated the version of guava-libraries used to 14.
1699
  * Updated HtmlUnit to 2.11
1700
  * Deprecated XPathLookupException in favour of
1701
    InvalidSelectorException
1702
  * FIXED: 3602: Changing IE view port calculations to allow for
1703
    always-present vertical scroll bar, and to test for horizontal
1704
    scroll bar and adjust as required by page content.
1705
  * FIXED: 4576: self registering proxy now check for user specified
1706
    proxy id.
1707
  * FIXED: 5010: icons in chrome newtab now correctly identified as
1708
    being shown.
1709
1710
RC:
1711
  * FIXED: 4818: Make sure that each generated SSL cert has a unique
1712
    ID associated with it.
1713
1714
Project:
1715
  * Moved to git. Most obvious in revision number in our exceptions.
1716
1717
1718
v2.28.0
1719
=======
1720
1721
WebDriver:
1722
  * "null" can now be passed to executeScript
1723
  * .Net: Corrected FileUtilities.FindFile() to correctly return the
1724
    current directory if the specified file is located there.
1725
  * .Net: Introduces the Updating the CustomFinderType property to the
1726
    .NET FindsByAttribute. This allows use of custom By subclasses in
1727
    the PageFactory. The custom finder must be a subclass of By, and
1728
    it must expose a public constructor that takes a string argument.
1729
  * SafariDriver: better attempts to catch native dialogs from user
1730
    defined onbeforeunload handlers.
1731
  * Updating HtmlUnit to 2.11
1732
  * Added the PhantomJS bindings to the release. You'll still need to
1733
    download PhantomJS itself separately.
1734
1735
RC:
1736
  * Implemented getAllWindowNames in WebDriverBackedSelenium
1737
  * Implemented openWindow in WebDriverBackedSelenium to allow opening
1738
    relative URLs
1739
1740
1741
v2.27.0
1742
=======
1743
1744
WebDriver:
1745
  * Added support for native events for Firefox 17.
1746
  * Added support for ghostdriver (PhantomJS)
1747
  * Adding new capability "enableElementCacheCleanup" to the IE
1748
    driver. When set to true, the IE driver will clean the
1749
    known-element cache of invalid elements after every page
1750
    load. This is intended to keep memory usage down and improve
1751
    performance. However, it is an intrusive change, so this
1752
    capability is provided temporarily to allow disabling this
1753
    behavior if problems arise. The default of this new capability is
1754
    "true", meaning this behavior is turned on by default.
1755
  * Added shift key handling to the synthetic keyboard actions.
1756
  * Modifying scroll behavior in IE driver SendKeysCommandHandler to
1757
    call Element::GetLocationOnceScrolledIntoView() instead of calling
1758
    the DOM scrollIntoView() function. Should result in less page
1759
    scrolling during test runs.
1760
  * Checking if CSS transforms on elements, or their parents, are
1761
    hiding them and therefore returning they arent visible.
1762
  * Add not, refreshed, invisibilityOfElementWithText to
1763
    ExpectedConditions.
1764
  * Added support for new IE10 pointer events.
1765
  * FIXED: 1543: Allowing equal sign in a cookie value.
1766
  * FIXED: 2103, 3508: Modified to no longer hang on alerts triggered
1767
    by onchange of <select> elements or by onsubmit of <form>
1768
    elements.
1769
  * FIXED: 2035: Returning a simple result (null) after opening a new
1770
    window instead of the window object (that can't be serialized to
1771
    JSON).
1772
  * FIXED: 2353: Only call blur() for IE if the element is not the
1773
    <body> element.
1774
  * FIXED: 3043: Better error message reporting when browser launch
1775
    fails.
1776
  * FIXED: 4490: Checking script evaluation result to prevent null
1777
    reference exception.
1778
  * FIXED: 4736: Added all of the extended colour keywords to the
1779
    Colors enum in support of
1780
    http://www.w3.org/wiki/CSS3/Color/Extended_color_keywords.
1781
  * FIXED: 4800: Fixed calculation of coordinates for elements in
1782
    frames/iframes where the element is scrolled out of view within
1783
    the frame.
1784
1785
Grid:
1786
  * FIXED: 3818: Generating session identifiers with UUID to prevent duplication.
1787
1788
RC:
1789
  * FIXED: 4668: Fixing ability to open relative URLs in WDBS.
1790
  * FIXED: 4273: Added getCssCount to the list of the methods
1791
    supported by WebDriverBackedSelenium.
1792
  * FIXED: 4055: WDBS implementation of getValue for radio buttons now
1793
    reflects behaviour of RC.
1794
  * FIXED: 4784: Processing locators before use in getCssCount and
1795
    getXpathCount.
1796
1797
1798
v2.26.0
1799
=======
1800
WebDriver:
1801
  * Updated OperaDriver to 0.15.
1802
  * Added transparency support to the Color class.
1803
  * Increased lock time a bit for the FirefoxDriver to make tests more
1804
    stable on Windows.
1805
  * Added the enablePersistenHover capability to allow the user to specify
1806
    whether to use the persistent hover thread in the IE driver. Defaults
1807
    to true for IE.
1808
  * Added support for native events for Firefox 15 and 16.
1809
  * Removed deprecation from ChromeDriver constructors that take a Capabilities
1810
    object. Also added a method to set experimental options in ChromeOptions
1811
    which may be used to set options that aren't exposed through the ChromeOptions
1812
    API.
1813
  * Fixed SafariDriver to allow calling .quit() consecutively without error.
1814
  * Modified FirefoxDriver to use atoms to switch between frames.
1815
  * FIXED: 4535: Hover still does not work perfectly in IE.
1816
  * FIXED: 4676: Unable to fire javascript events into SVG's.
1817
  * FIXED: 4320: Impossible to IE run tests in parallel via TestNG.
1818
  * FIXED: 4309: 'Could not convert Native argument arg 0' error with Firefox.
1819
  * FIXED: 4593: Alert.accept() Cancels the Resend Alert/Dialog Box.
1820
  * FIXED: 4321: Upgrade HtmlUnitDriver to HtmlUnit 2.10.
1821
  * FIXED: 4639: Webdriver 2.25 fails to quit on Windows.
1822
  * FIXED: 3774: New SafariDriver sessions do not come with a clean profile.
1823
  * FIXED: 4375: Executing javascript hangs Firefox.
1824
  * FIXED: 4203: Java SafariDriver has limited websocket frame size.
1825
  * FIXED: 4165: WebDriver fails on a machine with no IP address.
1826
  * FIXED: 3969: SafariDriver should auto-dismiss alerts.
1827
1828
WebDriverJS:
1829
  * FIXED: 4648: findElement errros not helpful.
1830
  * FIXED: 4687: webserverjs cannot find module in node.js.
1831
  * FIXED: 4649: Wrong Content-Length calculation in webdriverjs.
1832
  * FIXED: 4425: Webdriver.js regression: webdriver.By.* selectors defect when
1833
    using Node.js.
1834
1835
Grid:
1836
  * FIXED: 4433: NPE at grid launch if invalid servlet class name is specified.
1837
  * FIXED: 4526: elenium node stop responding when there are 2 or more tests
1838
    waiting for a specific node.
1839
  * FIXED: 2549: "-role hub" doesn't allow Firefox to starts.
1840
1841
v2.25.0
1842
=======
1843
WebDriver:
1844
  * Added API for dealing with BASIC and DIGEST authentication
1845
    dialogs. Currently not implemented in any drivers.
1846
  * Warn users that the IE driver will no longer use the DLL in the
1847
    next release.
1848
  * Deprecated browser specific WebElement subclasses.
1849
  * Added support for "requiredCapabilities" to the remote webdrivers
1850
    and implemented basic support for these in the firefox
1851
    driver. Failure to fulfull a required capability will cause a
1852
    SessionNotCreatedException to be thrown.
1853
  * Added the ability to determine how unhandled alerts should be
1854
    handled. This is handled by the "unexpectedAlertBehaviour"
1855
    capability, which can be one of "accept", "dismiss" or
1856
    "ignore". Java code should use the UnexpectedAlertBehaviour
1857
    enum. This is only implemented in Firefox for now.
1858
  * Allow native events to be configured in Firefox and
1859
    (experimentally) in IE using the "nativeEvents" capability.
1860
  * Updated supported versions of Firefox to 17.
1861
  * Firefox driver will enumerate through client rects until finding
1862
    one with non-zero dimensions when clicking.
1863
  * Better support for hovering on linux.
1864
  * Safari driver will dismiss open alerts to prevent tests from
1865
    hanging.
1866
  * Better handling of overflow edge cases when determining element
1867
    visibility.
1868
  * Point users in the right direction when Safari fails to load a
1869
    file:// URL.
1870
  * Allowed to use IEDriverServer logging abilities in Java binding.
1871
  * Avoid an issue where a call to submit could hang the firefox
1872
    driver.
1873
  * FluentWait will now handle any Throwable, not just
1874
    RuntimeExceptions.
1875
  * FIXED: 3897: Allow windows to be resized from a frame.
1876
1877
WebDriverJS:
1878
  * Better stack traces from test code.
1879
  * Update webdriver.atoms.element.type to recognize
1880
    webdriver.Key.SEPARATOR
1881
1882
RC:
1883
  * Better emulation provided by the WebDriver-backed Selenium when
1884
    using IE, particularly when emulating firing of events.
1885
1886
Grid:
1887
  * FIXED: 3230: Implementing /lifecycle-manager?action=shutdown
1888
    command for the Grid Hub to ensure backward compatibility with
1889
    Grid1 behaviour.
1890
1891
Selenium Server:
1892
  * Reworked SSL certificate generation code when proxying HTTPS
1893
    connections to use non-deprecated APIs in BouncyCastle.
1894
1895
v2.24.1
1896
=======
1897
WebDriver:
1898
  * Work has started on a basic performance profiler.
1899
  * Java bindings: The Color class now supports more color conversions.
1900
  * Failure to click on an element in the IE Driver will yield a more meaningful
1901
    error.
1902
  * FIXED: 3268: setting a cookie without one of the optional values (secure)
1903
    null pointers through remote webdriver
1904
  * FIXED: 1584: bot.dom.getVisibleText does not properly handle display:run-in
1905
    or display:table.
1906
  * FIXED: 4071: IE: JVM/IEDriverServer Crash when the current window is closed
1907
    without switching to another window.
1908
  * FIXED: 3683: WebDriver (selenium server) does not use user specified proxy PAC file for IE.
1909
  * FIXED: 4070: Dot-net bindings: == oprerator fails if first argument is null.
1910
  * FIXED: 4064: Selenium2 crash on IE8 when S_FALSE is returned from get_Document.
1911
  * FIXED: 3945: The SafariDriver hangs if an iframe is deleted while it is selected.
1912
  * FIXED: 3892: WebdriverJS: Need support mouse events
1913
  * FIXED: 3198: Cannot take screenshot from IPhoneDriver in Java
1914
1915
v2.23.1
1916
=======
1917
1918
Selenium RC:
1919
  * Support for Firefox 13 on windows with RC api
1920
1921
v2.23.0
1922
=======
1923
1924
WebDriver:
1925
  * Firefox 13 support
1926
  * CSS Selectors now allow compound selectors
1927
  * SafariDriver is (still) in Beta, annotated accordingly in Java
1928
  * FIXED: 3785: Implicit waits for Safari driver
1929
  * FIXED: 1225: Get text is handled appropriately for self-closing tags.
1930
1931
v2.22.0
1932
=======
1933
1934
Project:
1935
  * Code grant from Google acknowledged in our copyright
1936
    headers. Thanks, Google!
1937
1938
WebDriver:
1939
  * JRE dependency upped to Java 6.
1940
  * IE driver now uses the IEDriverServer. You may need to download
1941
    this. Set the "useLegacyInternalServer" to boolean true if you
1942
    need the old behaviour.
1943
  * Standardized colour values returned from getCssValue are
1944
    normalized to RGBA.
1945
  * IE can use synthesized events if the capability
1946
    "enableNativeEvents" is set to false. This is experimental and not
1947
    expected to work properly.
1948
  * Native events added for Firefox 12.
1949
  * Native events retained for Firefox 10, 11, and 3.x
1950
  * Selenium-backed WebDriver can now return WebElements from
1951
    executeScript.
1952
  * With WebElement.getAttribute() a boolean attribute will return
1953
    "null" if not present on an element.
1954
  * A NoSuchWindowException will be thrown if the currently selected
1955
    window is closed and another command is sent.
1956
  * SafariDriver improved: frame switching, snapshot taking and JS
1957
    executing added.
1958
  * SafariDriver: changed message protocol. The 2.22.0 SafariDriver will
1959
    not be backwards compatible with Selenium 2.21.
1960
  * FIXED: 185: Appending screenshots to remote exceptions is now
1961
    optional. Controlled via the "webdriver.remote.quietExceptions"
1962
    capability.
1963
  * FIXED: 1089: Style attributes are no longer lower-cased by default.
1964
  * FIXED: 1934: Firefox cleans up temporary directories more effectively.
1965
  * FIXED: 3647: WebElement.sendKeys now works in Firefox on XHTML pages.
1966
  * FIXED: 3758: Maximize windows from inside a frame works as expected.
1967
  * FIXED: 3825: Alerts from a nested iframe are now handled properly.
1968
1969
Grid:
1970
1971
  * Fixing Firefox profile extraction if a grid node started from a
1972
    network location (UNC path)
1973
1974
Atoms:
1975
  * bot.actions.type now works as expected in Firefox 12.
1976
  * Introduced better mouse and keyboard abstractions
1977
1978
1979
v2.21.0
1980
=======
1981
1982
WebDriver:
1983
  * Safaridriver has now been added !
1984
  * Issue 3489, maximize the browser window
1985
  * Significant stability improvements in firefoxdriver.
1986
  * Issue 3357 log-path for chromedriver
1987
  * IE driver issue 3360
1988
  * Android driver issue 3504
1989
  * Firefox issue 3559, max-connections-per-server
1990
  * Issue 3520
1991
  * Issue 2826
1992
  * Native events support for Firefox 11
1993
  * Dropped native events support for Firefoxes 4-9
1994
1995
Grid:
1996
  * Significant changes in the timeout strategy0 between hub, nodes and browser.
1997
    See http://code.google.com/p/selenium/wiki/Grid2 section on timeouts.
1998
    Compatibility note: It is recommended to at least update the nodes
1999
    to 2.21. Upgrading only the hub will effectively disable the
2000
    browser-death timeout and is *not* recommended.
2001
  * Improved error messages on console
2002
  * Content length issue solved, Issue 2362
2003
  * Issues 3328,3366
2004
  * Improvements in thread dumps in both hub and node,
2005
    possible to corrolate the two.
2006
  * Added hub api to query parameters
2007
2008
Server:
2009
  * -browserTimeout <timeoutInSeconds> added to
2010
    differentiate between browser hang and client gone (which is
2011
    -timeout <timeout>)
2012
    - System property -Dselenium.server.timeout removed, use -timeout instead.
2013
    See http://code.google.com/p/selenium/wiki/RemoteWebDriverServer
2014
    for further details.
2015
    * Issue 3577
2016
2017
2018
v2.20.0
2019
=======
2020
2021
WebDriver:
2022
  * RemoteWebDriver.setLogLevel is no longer a static method.
2023
  * Introduce a timeout for page loads. This needs to be used in
2024
    conjunction with the unstable page load detection.
2025
  * Adding alertIsPresent ExpectedCondition.
2026
  * Turning off password saving in the Android driver.
2027
  * FIXED: 3391: scroll containing elements, not just windows.
2028
  * FIXED: 2211: Allow the http client factory to discover the proxy
2029
    for traffic between the http command executor and the webdriver
2030
    server via the normal system properties.
2031
2032
WebDriverJS:
2033
  * Refactored the WebDriverJs promise manager to use a proper tree to
2034
    track scheduled tasks.
2035
  * In webdriver.Builder, default to http://localhost:4444/wd/hub if a
2036
    server URL is not specified.
2037
2038
Grid:
2039
  * JDK 1.6.1_31 recommended for maximum stability
2040
  * The HUB is now upgraded to run with Jetty 7.6.1.
2041
  * Making the id for proxy final, and allowing it to be specified
2042
    from the registration request. If the id isn't in the request, the
2043
    remote host is used as an id, as it was before.
2044
  * FIXED: 3096: Memory leak in selenium hub.
2045
2046
RC:
2047
  * More work on SSL certs. Should work cleanly in Firefox now.
2048
  * FIXED: 1982: Clear an input element in such a way as to avoid
2049
    firing any events when emulating typing in selenium
2050
    emulation. Fixes issue 1982.
2051
2052
Atoms:
2053
  * Submit a form when the enter button is pressed in its input
2054
    element.
2055
  * Add a "mouse pixel scroll" event to the atoms events module.
2056
  * Adding a public "mouseOver" action and a little internal
2057
    refactoring around the mouseOver functionality.
2058
2059
2060
v2.19.0
2061
=======
2062
2063
WebDriver:
2064
  * Server-side implementation of the webdriver-backed selenium.
2065
  * "sendKeys" works in the webdriver-backed selenium when using
2066
    safari.
2067
  * Implement local/session storage for iOS driver.
2068
  * Exceptions now thrown when an alert occurs during script
2069
    execution.
2070
  * Native events implemented for Firefox 10.
2071
  * Renamed the experimental "fast" page loaded strategy "unstable"
2072
    and disable queuing of commands when it's enabled.
2073
  * Corrections to javadocs.
2074
  * Disabled native events for Firefox 8 as it's deprecated by
2075
    Mozilla.
2076
2077
RC:
2078
  * Update cybervillains certificate (thanks to Ivan De Marino and
2079
    Mark Watson @ Neustar)
2080
  * Default to using the native xpath engine in selenium-backed
2081
    webdriver instances.
2082
  * Correctly fire events when outside a firefox extension
2083
2084
WebDriverJS:
2085
  * Return a promise from webdriver.WebDriver.prototype.quit() so
2086
    users may register callbacks.
2087
  * Small tweaks so WebDriverJs works as expected in IE7/8.
2088
2089
Known Issues:
2090
  * Holding down a modifier key and clicking with Firefox 10 on
2091
    Windows does not work reliably when using native events.
2092
2093
2094
v2.18.0
2095
========
2096
2097
WebDriver:
2098
  * FIXED: 3169: Getting value attribute on option elements.
2099
  * Alert handling in Firefox and IE: Throwing UnhandledAlertException
2100
    if an alert is present during an operation. The unhandled alert is
2101
    also dismissed to mitigate repeat exceptions.
2102
  * Better handling of getText invocations on SVG elements.
2103
  * FIXED: 3253: Clicking stopped working on Firefox 4.
2104
  * Android Driver now supports Flash, Geolocation.
2105
  * FIXED: 1371: iPhone Driver now supports frame switching.
2106
2107
RC:
2108
  * FIXED: 2958: Selenium RC now closes IE HTA when the tests finish.
2109
2110
WebDriverJs:
2111
  * Fixes around findElements.
2112
2113
v2.17.0
2114
========
2115
2116
WebDriver:
2117
  * Removed deprecated methods
2118
  * FIXED: 3152: iWebDriver will auto-play HTML5 video
2119
  * Fixed issue with permissions on windows caused by wrapping
2120
  * FIXED: 3154, 3144: Issues launching Firefox 9 due to modal dialog
2121
  * Adding warning to android apk when used with an incompatible
2122
    android version (issue 3142)
2123
  * FIXED: 3167: Sending empty keys to a text field no longer throws
2124
  * FIXED: 3173: Using ChromeOptions no longer causes stack exhaustion
2125
  * FIXED: 3169: getAttribute("value") falls back to the text of
2126
    option tags, if no value attribute is specified
2127
  * Updated operadriver to version 0.9
2128
2129
Maven:
2130
2131
  * NOTE: We have removed our dependency on the operadriver from our
2132
    pom, because it creates a circular dependency.  To use the
2133
    operadriver, add the following dependency to your own pom.xml
2134
    file:
2135
2136
    <dependency>
2137
      <groupId>com.opera</groupId>
2138
      <artifactId>operadriver</artifactId>
2139
      <version>0.9</version>
2140
    </dependency>
2141
2142
RC:
2143
  * Bumped firefox support up to Firefox 12
2144
2145
Grid:
2146
  * FIXED: 3161: Thread safety issues
2147
2148
Known issues:
2149
  * Some issues around scrolling (3075, 3045, 3034)
2150
2151
v2.16.1
2152
=======
2153
2154
RC:
2155
  * FIXED: 3148: Allow IE to be launched.
2156
2157
v2.16.0
2158
=======
2159
2160
WebDriver:
2161
  * Native events enabled for Firefox 9
2162
  * The FirefoxDriver now enables apps to use offline storage by
2163
    default.
2164
  * ChromeDriver allows setting the chrome driver's environment more
2165
    easily.
2166
  * RemoteWebElement implementations now guarantee that the ID used to
2167
    identify them. This allows "hashCode" and "equals" to be local
2168
    operations in Java.
2169
  * The PageFactory will now no longer decorate List<WebElement>
2170
    fields unless annotated with a @FindBy.
2171
  * By default, clicks will now be in the middle of elements.
2172
  * RemoteWebDriver will use uncacheable GET requests to communicate
2173
    with the remote webdriver server.
2174
  * HtmlUnitDriver defaults to emulating Firefox 3.6.
2175
  * FIXED: 2985: Calling quit() on the IE Driver in a shutdown hook
2176
    will no longer kill the JVM.
2177
  * FIXED: 2893: You can now pass a Map to executeScript when using
2178
    Firefox.
2179
  * FIXED: 1395, 2747, 2869, 2431: Upgraded version of CocoaHTTPServer
2180
    to the latest and greatest.
2181
2182
WebDriverJS:
2183
  * Test failures are now annotated with the task history.
2184
  * JSONP support dropped in favour of CORS. For those browsers where
2185
    CORS is not fully implemented, added a "/xdrpc" (cross-domain rpc)
2186
    end-point.
2187
  * Change the promise.Application event loop to run at a set interval
2188
    instead of trying to explicitly trigger it at the appropriate
2189
    times. This makes debugging much simpler.
2190
  * WebDriverJS hub front-end now renders correctly in IE.
2191
2192
Grid:
2193
  * It's now a beautiful butterfly.
2194
2195
RC:
2196
  * IE HTA mode will now close the final window.
2197
  * All windows are now opened as "resizable". This means that they
2198
    should always open in new windows rather than tabs in IE.
2199
  * *chrome mode can type into file input elements on Firefox 8+
2200
  * WebDriverCommandProcessor has all constructors depending on the
2201
    (deprecated) SuppliesWebDriver class marked as deprecated. Will be
2202
    deleted in the next release.
2203
2204
Automation Atoms:
2205
  * Bug fixes and updates
2206
  * Included a touchscreen abstraction
2207
2208
2209
v2.15.0
2210
=======
2211
Project:
2212
  * Code donation from Google.
2213
2214
WebDriver:
2215
  * Now supports up to and including Firefox 11.
2216
  * Changed order of FirefoxProfile initialization attempts on a
2217
    remote host: 1) try to load from capabilities, 2) try to load
2218
    locally if webdriver.firefox.profile is specified, 3) create an
2219
    empty profile.
2220
  * Added the beginning of infrastructure for gathering logs from
2221
    webdriver tests.
2222
  * Added an UnreachableBrowserException.
2223
  * Additional work on the WebDriver JS console.
2224
  * Implicit waits now change how long we wait for alerts. This
2225
    functionality will change in 2.16
2226
  * FIXED: 2700: The infamous scrolling issue.
2227
  * FIXED: 2816: ClassCastException when calling switchTo().alert().
2228
2229
Grid:
2230
  * Grid now distinguishs between CLIENT_GONE and
2231
    FORWARDING_TO_NODE_FAILED.
2232
  * FIXED: issue where older RCs could not connect to a newer hub.
2233
2234
RC:
2235
  * Selenium-backed WebDriver now uses atoms for typing.
2236
2237
Automation Atoms:
2238
  * Significantly reworked input device abstractions.
2239
2240
Known Issues:
2241
  * HTA mode for Selenium RC (*iexplore) leaves a browser window open.
2242
2243
2244
v2.14.0
2245
=======
2246
WebDriver:
2247
  * Deleted all deprecated methods in the Java API.
2248
  * Client code cleaned to work with Java 5. Server code needs Java 6.
2249
  * Added a front-end for executing WebDriverJS scripts. Point a
2250
    browser at http://localhost:4444/wd/hub.
2251
  * Can now query an Android driver for supported capabilities.
2252
  * Updated JSON framework used in the iOS driver.
2253
  * Fixed issue with scrolling on small viewports with native events
2254
    in Firefox.
2255
  * FIXED: 2889: FluentWait supports adding a custom message to
2256
    timeout exception.
2257
  * FIXED 2798: When implicit waits are enabled in the FirefoxDriver,
2258
    stale element reference errors when searching for child elements
2259
    are now handled properly
2260
  * FIXED 2917: Preventing endless recursion in hashCode.
2261
2262
Server:
2263
  * Memory leak fixed
2264
2265
Grid:
2266
  * New beta console added.
2267
  * Grid nodes were leaking even more memory that regular server
2268
    nodes.
2269
  * Fixed a scenario that used to lead to "session = null" errors.
2270
  * Now support iOS nodes.
2271
2272
Known issues:
2273
  * Continuing problems with element out of bounds exception being
2274
    thrown.
2275
2276
2277
v2.13.0
2278
=======
2279
Dependency change:
2280
  * Selenium/webdriver java dependencies now use apache commons-exec
2281
    (http://commons.apache.org/exec/) version 1.1. If you are using manual
2282
    dependency management you will need to add this to your project.
2283
    If you resolve via maven central (maven, ivy, gradle), this will
2284
    be handled automatically.
2285
WebDriver:
2286
  * Recovering from null window references in the Firefox driver (#1438)
2287
  * Make native events work correctly on Linux with the Python bindings (#2633)
2288
  * Improved finding Firefox on Windows in the C# bindings (2818)
2289
  * Screenshots in Python are now working (2829)
2290
  * Exporting webdriver.promise from the Javascript API (2839)
2291
  * Permission denied accessing some elements using the Firefox driver (2863)
2292
  * Fixed typing into content editable elements with Firefox (2.12 regression)
2293
  * Firefox is started in the forgeground on OS X. Focus / blur events now have
2294
    higher chance of firing correctly on OS X.
2295
  * Deprecated methods were removed from the FirefoxDriver and FirefoxProfile
2296
    classes (saveScreenshot, enableNativeEvents, alwaysLoadNoFocusLib).
2297
  * The amount of time a test can remain hanging is now capped (to 3 hours).
2298
2299
Grid:
2300
  * Gracefully handle registration of old nodes in a new grid hub (#2738).
2301
  * Releasing all the resources when a proxy is removed from the hub (#2768).
2302
2303
Known issues:
2304
  * Synthesized mouse events are inaccurate (Affects Firefox driver users
2305
    on OS X) (2281)
2306
  * Invalid move target out of bounds exception thrown.2700
2307
  * Dragged elements end up in the wrong location, with the Firefox driver,
2308
    when scrolling is required (typically with small viewport) (2877)
2309
2310
v2.12.0
2311
=======
2312
2313
RC
2314
  * Disabled web security checks for Chrome by default.
2315
  * Actually reenabling *safariproxy.
2316
2317
WebDriver
2318
  * Firefox 8 support enabled
2319
  * Added @Beta annotation. Any method marked with this may be deleted
2320
    or changed without notification.
2321
  * Added @Beta Window control for Firefox in Ruby and Java. This
2322
    allows resizing and moving.
2323
  * Renamed FirefoxProfile.enableNativeEvents() to
2324
    FirefoxProfile.areNativeEventsEnabled(). Deprecated original
2325
    method. Will be removed in 2.13.
2326
  * Renamed FirefoxProfile.alwaysLoadNoFocusLib() to
2327
    FirefoxProfile.shouldLoadNoFocusLib(). Deprecated original
2328
    method. Will be removed in 2.13.
2329
  * Better reporting of page size when attempting to move out of bounds.
2330
  * More informative error message when a remote webdriver client
2331
    fails to connect to the browser.
2332
  * PageFactory now only decorates WebElement lists.
2333
  * Calling WebElement.clear on a disabled or readOnly element will
2334
    throw an InvalidElementStateException.
2335
  * WebDriver.getWindowHandle will throw a NoSuchWindowException if
2336
    the window is closed.
2337
  * FIXED: 1498: HtmlUnit no longer finds containing element when
2338
    searching by CSS.
2339
2340
Grid
2341
  * Made Grid orphan check only apply to Se1 clients.
2342
2343
Atoms
2344
  * Implemented clear action for contentEditable elements.
2345
2346
2347
v2.11.0
2348
=======
2349
2350
RC:
2351
  * Safari proxy added back to the supported browser.
2352
2353
2354
v2.10.0
2355
======
2356
2357
Grid:
2358
  * Stability and reliability fixes.
2359
  * A single node can now process both selenium 1.0 and selenium webdriver requests.  Old proxies deprecated.
2360
  * FIXED: 2617: Removing unnecessary logging.
2361
  * FIXED: 2650, 2400: Unregister dead nodes.
2362
2363
WebDriver:
2364
  * FIXED: 2700: Don't throw MoveTargetOutOfBoundsError where we shouldn't.
2365
  * FIXED: 2301: Allow commas in CSS selectors.
2366
  * FIXED: 2099: Occasional XPath lookup errors.
2367
  * FIXED: 1771: Don't scroll unnecessarily.
2368
  * FIXED: 2674: Don't incorrectly decorate List<WebElement>s which don't have @FindBy annotations.
2369
2370
Javascript:
2371
  * Added jsapi, including node integration.  More details to come.
2372
2373
General:
2374
  * Updated version of guava used to 10.0.1.
2375
2376
v2.9.0
2377
======
2378
2379
Project:
2380
  * ThoughtWorks code grant to the Software Freedom Conservancy complete.
2381
2382
WebDriver:
2383
  * Support for Ice Cream Sandwich in the AndroidDriver
2384
  * CSS Selector support enabled for Android
2385
  * Remote webdriver server log now contains '[HTML source]' instead of full
2386
    source.
2387
  * Better respect for preformatted text in WebElement.getText()
2388
  * Adding better error message when failing to connect to the FirefoxDriver.
2389
  * Reduced scrolling during tests for IE and Firefox.
2390
  * Preserve the state of modified keys when using native events on Linux.
2391
  * Support for experimental page load detection in firefox. Set the
2392
    "webdriver.load.strategy" to "fast" in the FirefoxProfile to enable less
2393
    conservative page loading detection at the risk of greater test
2394
    instability.
2395
  * FIXED: 2031: Shielding backslashes when writing preferences to a file.
2396
    There is an issue with Firefox: it drops \n and \r when it moves user
2397
    preferences to prefs.js. This patch is a workaround.
2398
  * FIXED: 2223: Clicks on labels are now propagated to the referenced element.
2399
  * FIXED: 2646: PortProber no longer attempts to divide by zero.
2400
  * FIXED: 2675: Better detection of where to click on links.
2401
2402
RC:
2403
  * FIXED: 569: Making assert and verify methods NPE-safe.
2404
2405
2406
v2.8.0
2407
======
2408
2409
WebDriver
2410
  * FIXED: 1967,1934: Temporary directories no longer fill up disk.
2411
  * FIXED: 2295,1899: Better handling of select/option tags in HtmlUnit
2412
  * Disabled elements won't be cleared any more
2413
  * FIXED: 2531: Allow setting frozen firefox profile preferences to their frozen values.
2414
  * FIXED: 2509: Fixing error=24 too many open files bug
2415
  * Added setFileDetector to RemoteWebDriver to allow files to be uploaded to the remote server
2416
  * Faster error reporting if chromedriver isn't executable
2417
  * FIXED: Occasional ClassCastExceptions
2418
  * FIXED: Proxy configuration NullPointerException problem
2419
  * FIXED: 1326: Allow parallel execution of FirefoxDriver on Linux with native events
2420
  * FIXED: 384: Fixed native FirefoxDriver crash on some 64-bit linux systems
2421
  * FIXED: 417: Allow @FindBy annotations to be put on List<WebElement> as well as just WebElement fields
2422
  * Added native event support for Firefox 7
2423
  * Added constructor to ChromeDriver that lets you specify the ChromeDriverService as well as the DesiredCapabilities
2424
  * FIXED: By.linkText now always trims leading and trailing whitespace
2425
  * FIXED: Issues with doubleClick in Firefox
2426
2427
RC
2428
  * FIXED: 1934: -singleWindow works for *iexplore
2429
  * Selenium Server params work with RC Grid configuration
2430
  * Adding support for Firefox 8
2431
2432
v2.7.0
2433
======
2434
2435
WebDriver
2436
  * FIXED: 2487: FirefoxDriver no longer types in the URL bar.
2437
  * FIXED: Issues to do with not clicking on elements out of view when using
2438
    native events.
2439
  * FIXED: 2456: Double click and get no longer hangs Firefox.
2440
  * Improved emulation of Selenium RC when using Opera in the
2441
    WebDriverBackedSelenium.
2442
  * FIXED: 2421: Chrome returns doubles instead of ints because it supports
2443
    sub-pixel rendering.
2444
2445
RC
2446
  * FIXED: #2413: "Missing space between browser name and custom path in error
2447
    message"
2448
  * FIXED: 2390, 2477: Make -h a synonym for -help
2449
2450
Automation Atoms
2451
  * Allow bot.dom.getInViewLocation to scroll a specified location into view.
2452
2453
2454
v2.6.0
2455
======
2456
2457
WebDriver
2458
  * Better handling of the case where emphemeral sockets are exhausted.
2459
  * More widespread use of the InvalidSelectorError in Chrome and Remote.
2460
  * When using native events, prevent firefox from scrolling if an element is
2461
    already in the view.
2462
  * Improvements in the mouse emulation (movement, click, double click, context
2463
    click)
2464
  * Bumped included version of OperaDriver to 0.7.1.
2465
  * Attempt to address issue #1443 (the infamous "getWindow() == null" problem)
2466
  * Added timing information to WebDriver exceptions resulting from command
2467
    invocations in the remote driver.
2468
  * Added an ExpectedConditions class with common ExpectedCondition
2469
    implementations.
2470
  * Better usage of sockets in the remote webdriver
2471
2472
RC
2473
  * WebDriver-backed Seleniums will now clear text fields before typing.
2474
2475
Grid
2476
  * Significantly improved thread safety.
2477
  * Improved information on the index page of the hub.
2478
2479
Automation Atoms
2480
  * bot.inject.executeScript* handles function arguments better.
2481
  * Add atom to get the frame index of a frame element (bot.frame.getFrameIndex)
2482
  * Added emulation of touch devices and events
2483
  * Use DOM Events level 2 and 3 for events IE if available
2484
2485
2486
v2.5.0
2487
======
2488
2489
WebDriver
2490
  * Firefox 7 support without Native Events
2491
  * Implementing scrolling past the viewport for Firefox
2492
  * FIXED: 1020: Clicking on a link over multiple lines in Firefox
2493
  * Minor cleanups of code
2494
2495
Grid
2496
  * FIXED: Thread Safety Issues
2497
2498
2499
2500
v2.4.0
2501
======
2502
2503
WebDriver:
2504
  * Firefox 6 support.
2505
  * Change in the wire protocol to bring alert checking inline with the
2506
    semantics of other commands.
2507
  * Improved text handling: non-breaking spaces are now returned as spaces, even
2508
    in the middle of an existing body of text.
2509
  * Minor fixes for detecting whether elements are visible.
2510
  * Added handling of lists and maps in EventFiringWebDriver.executeScript().
2511
  * FIXED: 2158: Fixing HtmlUnit select element getAttribute behaviour for
2512
    "multiple" attribute.
2513
  * Better handling of cookies in the remote webdriver (particularly Chrome)
2514
  * FIXED: Thread safety issues.
2515
  * Added clear app cache to the wire protocol.
2516
2517
2518
Selenium:
2519
  * Firefox 8 support.
2520
2521
2522
v2.3.0
2523
======
2524
2525
WebDriver:
2526
  * Better detection of clickable areas in Firefox.
2527
  * Alert handling works in Chrome.
2528
  * Merge of Google-contributed code into the underlying Atoms.
2529
  * FIXED: Internet Explorer crashes when an element has empty text and getText called.
2530
  * FIXED: IBM JDK throws different exception when unable to bind to a socket.
2531
2532
2533
v2.2.0
2534
======
2535
2536
Selenium RC:
2537
  * Avoiding double quoting the "method" when captured network traffic is
2538
    returned via XML.
2539
2540
WebDriver:
2541
  * relatedTarget now set on appropriate events (mouseover, mouseout)
2542
  * Multiply wrapped WebElements now unwrapped properly when using the remote
2543
    webdriver
2544
  * RemoteWebElement will reuse an ID if the element has been looked up before.
2545
  * Better warnings for emulated Selenium methods "allowNativeXpath" and
2546
    "useXpathLibrary"
2547
  * More consistent errors when an xpath expression returns something that is
2548
    not a WebElement (indicated via the InvalidSelectorException.
2549
2550
Grid:
2551
  * Adding support for a "host" variable in the config files.
2552
  * Additional logging
2553
2554
2555
v2.1.0
2556
======
2557
2558
WebDriver:
2559
  * Round to 0 if something looks like it's off the edge of the screen when
2560
    calculating distances. Fixes issue 1776.
2561
  * Deleting the deprecated TimeoutException inner class and replacing with the
2562
    top-level one
2563
2564
Grid:
2565
  * Properly form the HTML output for console display.
2566
  * Track when a session has become orphaned.  I.e., when the client sends no
2567
    commands after the initial session creation.  This almost always indicates
2568
    the client is no longer connected and the session is unusable immediately.