v2.26.0
=======
WebDriver:
  * Updated OperaDriver to 0.15.
  * Added transparency support to the Color class.
  * Increased lock time a bit for the FirefoxDriver to make tests more 
    stable on Windows.
  * Added the enablePersistenHover capability to allow the user to specify
    whether to use the persistent hover thread in the IE driver. Defaults
	to true for IE.
  * Added support for native events for Firefox 15 and 16.
  * Removed deprecation from ChromeDriver constructors that take a Capabilities
    object. Also added a method to set experimental options in ChromeOptions
	which may be used to set options that aren't exposed through the ChromeOptions
    API.
  * Fixed SafariDriver to allow calling .quit() consecutively without error.
  * Modified FirefoxDriver to use atoms to switch between frames.
  * FIXED: 4535: Hover still does not work perfectly in IE.
  * FIXED: 4676: Unable to fire javascript events into SVG's. 
  * FIXED: 4320: Impossible to IE run tests in parallel via TestNG.
  * FIXED: 4309: 'Could not convert Native argument arg 0' error with Firefox.
  * FIXED: 4593: Alert.accept() Cancels the Resend Alert/Dialog Box.
  * FIXED: 4321: Upgrade HtmlUnitDriver to HtmlUnit 2.10.
  * FIXED: 4639: Webdriver 2.25 fails to quit on Windows.
  * FIXED: 3774: New SafariDriver sessions do not come with a clean profile.
  * FIXED: 4375: Executing javascript hangs Firefox.
  * FIXED: 4203: Java SafariDriver has limited websocket frame size.
  * FIXED: 4165: WebDriver fails on a machine with no IP address.
  * FIXED: 3969: SafariDriver should auto-dismiss alerts.

WebDriverJS:
  * FIXED: 4648: findElement errros not helpful.
  * FIXED: 4687: webserverjs cannot find module in node.js.
  * FIXED: 4649: Wrong Content-Length calculation in webdriverjs.
  * FIXED: 4425: Webdriver.js regression: webdriver.By.* selectors defect when
    using Node.js.

Grid:
  * FIXED: 4433: NPE at grid launch if invalid servlet class name is specified.
  * FIXED: 4526: elenium node stop responding when there are 2 or more tests
    waiting for a specific node.
  * FIXED: 2549: "-role hub" doesn't allow Firefox to starts.

v2.25.0
=======
WebDriver:
  * Added API for dealing with BASIC and DIGEST authentication
    dialogs. Currently not implemented in any drivers.
  * Warn users that the IE driver will no longer use the DLL in the
    next release.
  * Deprecated browser specific WebElement subclasses.
  * Added support for "requiredCapabilities" to the remote webdrivers
    and implemented basic support for these in the firefox
    driver. Failure to fulfull a required capability will cause a
    SessionNotCreatedException to be thrown.
  * Added the ability to determine how unhandled alerts should be
    handled. This is handled by the "unexpectedAlertBehaviour"
    capability, which can be one of "accept", "dismiss" or
    "ignore". Java code should use the UnexpectedAlertBehaviour
    enum. This is only implemented in Firefox for now.
  * Allow native events to be configured in Firefox and
    (experimentally) in IE using the "nativeEvents" capability.
  * Updated supported versions of Firefox to 17.
  * Firefox driver will enumerate through client rects until finding
    one with non-zero dimensions when clicking.
  * Better support for hovering on linux.
  * Safari driver will dismiss open alerts to prevent tests from
    hanging.
  * Better handling of overflow edge cases when determining element
    visibility.
  * Point users in the right direction when Safari fails to load a
    file:// URL.
  * Allowed to use IEDriverServer logging abilities in Java binding.
  * Avoid an issue where a call to submit could hang the firefox
    driver.
  * FluentWait will now handle any Throwable, not just
    RuntimeExceptions.
  * FIXED: 3897: Allow windows to be resized from a frame.

WebDriverJS:
  * Better stack traces from test code.
  * Update webdriver.atoms.element.type to recognize
    webdriver.Key.SEPARATOR

RC:
  * Better emulation provided by the WebDriver-backed Selenium when
    using IE, particularly when emulating firing of events.

Grid:
  * FIXED: 3230: Implementing /lifecycle-manager?action=shutdown
    command for the Grid Hub to ensure backward compatibility with
    Grid1 behaviour.

Selenium Server:
  * Reworked SSL certificate generation code when proxying HTTPS
    connections to use non-deprecated APIs in BouncyCastle.

v2.24.1
=======
WebDriver:
  * Work has started on a basic performance profiler.
  * Java bindings: The Color class now supports more color conversions.
  * Failure to click on an element in the IE Driver will yield a more meaningful
    error.
  * FIXED: 3268: setting a cookie without one of the optional values (secure)
    null pointers through remote webdriver
  * FIXED: 1584: bot.dom.getVisibleText does not properly handle display:run-in
    or display:table.
  * FIXED: 4071: IE: JVM/IEDriverServer Crash when the current window is closed
    without switching to another window.
  * FIXED: 3683: WebDriver (selenium server) does not use user specified proxy PAC file for IE.
  * FIXED: 4070: Dot-net bindings: == oprerator fails if first argument is null.
  * FIXED: 4064: Selenium2 crash on IE8 when S_FALSE is returned from get_Document.
  * FIXED: 3945: The SafariDriver hangs if an iframe is deleted while it is selected.
  * FIXED: 3892: WebdriverJS: Need support mouse events
  * FIXED: 3198: Cannot take screenshot from IPhoneDriver in Java

v2.23.1
=======

Selenium RC:
  * Support for Firefox 13 on windows with RC api

v2.23.0
=======

WebDriver:
  * Firefox 13 support
  * CSS Selectors now allow compound selectors
  * SafariDriver is (still) in Beta, annotated accordingly in Java
  * FIXED: 3785: Implicit waits for Safari driver
  * FIXED: 1225: Get text is handled appropriately for self-closing tags.

v2.22.0
=======

Project:
  * Code grant from Google acknowledged in our copyright
    headers. Thanks, Google!

WebDriver:
  * JRE dependency upped to Java 6.
  * IE driver now uses the IEDriverServer. You may need to download
    this. Set the "useLegacyInternalServer" to boolean true if you
    need the old behaviour.
  * Standardized colour values returned from getCssValue are
    normalized to RGBA.
  * IE can use synthesized events if the capability
    "enableNativeEvents" is set to false. This is experimental and not
    expected to work properly.
  * Native events added for Firefox 12. 
  * Native events retained for Firefox 10, 11, and 3.x
  * Selenium-backed WebDriver can now return WebElements from
    executeScript.
  * With WebElement.getAttribute() a boolean attribute will return
    "null" if not present on an element.
  * A NoSuchWindowException will be thrown if the currently selected
    window is closed and another command is sent.
  * SafariDriver improved: frame switching, snapshot taking and JS
    executing added.
  * SafariDriver: changed message protocol. The 2.22.0 SafariDriver will
    not be backwards compatible with Selenium 2.21.
  * FIXED: 185: Appending screenshots to remote exceptions is now
    optional. Controlled via the "webdriver.remote.quietExceptions"
    capability.
  * FIXED: 1089: Style attributes are no longer lower-cased by default.
  * FIXED: 1934: Firefox cleans up temporary directories more effectively.
  * FIXED: 3647: WebElement.sendKeys now works in Firefox on XHTML pages.
  * FIXED: 3758: Maximize windows from inside a frame works as expected.
  * FIXED: 3825: Alerts from a nested iframe are now handled properly.

Grid:

  * Fixing Firefox profile extraction if a grid node started from a
    network location (UNC path)

Atoms:
  * bot.actions.type now works as expected in Firefox 12.
  * Introduced better mouse and keyboard abstractions
  

v2.21.0
=======

WebDriver:
  * Safaridriver has now been added !
  * Issue 3489, maximize the browser window
  * Significant stability improvements in firefoxdriver.
  * Issue 3357 log-path for chromedriver
  * IE driver issue 3360
  * Android driver issue 3504
  * Firefox issue 3559, max-connections-per-server
  * Issue 3520
  * Issue 2826
  * Native events support for Firefox 11
  * Dropped native events support for Firefoxes 4-9

Grid:
  * Significant changes in the timeout strategy0 between hub, nodes and browser.
    See http://code.google.com/p/selenium/wiki/Grid2 section on timeouts.
    Compatibility note: It is recommended to at least update the nodes
    to 2.21. Upgrading only the hub will effectively disable the 
    browser-death timeout and is *not* recommended.
  * Improved error messages on console
  * Content length issue solved, Issue 2362
  * Issues 3328,3366
  * Improvements in thread dumps in both hub and node,
    possible to corrolate the two.
  * Added hub api to query parameters

Server:
  * -browserTimeout <timeoutInSeconds> added to
    differentiate between browser hang and client gone (which is
    -timeout <timeout>)
    - System property -Dselenium.server.timeout removed, use -timeout instead.
    See http://code.google.com/p/selenium/wiki/RemoteWebDriverServer 
    for further details.
    * Issue 3577


v2.20.0 
=======

WebDriver:
  * RemoteWebDriver.setLogLevel is no longer a static method.
  * Introduce a timeout for page loads. This needs to be used in
    conjunction with the unstable page load detection.
  * Adding alertIsPresent ExpectedCondition.
  * Turning off password saving in the Android driver.
  * FIXED: 3391: scroll containing elements, not just windows.
  * FIXED: 2211: Allow the http client factory to discover the proxy
    for traffic between the http command executor and the webdriver
    server via the normal system properties.

WebDriverJS:
  * Refactored the WebDriverJs promise manager to use a proper tree to
    track scheduled tasks.
  * In webdriver.Builder, default to http://localhost:4444/wd/hub if a
    server URL is not specified.

Grid:
  * JDK 1.6.1_31 recommended for maximum stability
  * The HUB is now upgraded to run with Jetty 7.6.1.
  * Making the id for proxy final, and allowing it to be specified
    from the registration request. If the id isn't in the request, the
    remote host is used as an id, as it was before.
  * FIXED: 3096: Memory leak in selenium hub.

RC:
  * More work on SSL certs. Should work cleanly in Firefox now.
  * FIXED: 1982: Clear an input element in such a way as to avoid
    firing any events when emulating typing in selenium
    emulation. Fixes issue 1982.

Atoms:
  * Submit a form when the enter button is pressed in its input
    element.
  * Add a "mouse pixel scroll" event to the atoms events module.
  * Adding a public "mouseOver" action and a little internal
    refactoring around the mouseOver functionality.


v2.19.0
=======

WebDriver: 
  * Server-side implementation of the webdriver-backed selenium.
  * "sendKeys" works in the webdriver-backed selenium when using
    safari.
  * Implement local/session storage for iOS driver.
  * Exceptions now thrown when an alert occurs during script
    execution.
  * Native events implemented for Firefox 10.
  * Renamed the experimental "fast" page loaded strategy "unstable"
    and disable queuing of commands when it's enabled.
  * Corrections to javadocs.
  * Disabled native events for Firefox 8 as it's deprecated by
    Mozilla.

RC:
  * Update cybervillains certificate (thanks to Ivan De Marino and
    Mark Watson @ Neustar)
  * Default to using the native xpath engine in selenium-backed
    webdriver instances.
  * Correctly fire events when outside a firefox extension

WebDriverJS:
  * Return a promise from webdriver.WebDriver.prototype.quit() so
    users may register callbacks.
  * Small tweaks so WebDriverJs works as expected in IE7/8.

Known Issues:
  * Holding down a modifier key and clicking with Firefox 10 on
    Windows does not work reliably when using native events.


v2.18.0
========

WebDriver:
  * FIXED: 3169: Getting value attribute on option elements.
  * Alert handling in Firefox and IE: Throwing UnhandledAlertException
    if an alert is present during an operation. The unhandled alert is
    also dismissed to mitigate repeat exceptions.
  * Better handling of getText invocations on SVG elements.
  * FIXED: 3253: Clicking stopped working on Firefox 4.
  * Android Driver now supports Flash, Geolocation.
  * FIXED: 1371: iPhone Driver now supports frame switching.

RC:
  * FIXED: 2958: Selenium RC now closes IE HTA when the tests finish.

WebDriverJs:
  * Fixes around findElements.

v2.17.0
========

WebDriver:
  * Removed deprecated methods
  * FIXED: 3152: iWebDriver will auto-play HTML5 video
  * Fixed issue with permissions on windows caused by wrapping
  * FIXED: 3154, 3144: Issues launching Firefox 9 due to modal dialog
  * Adding warning to android apk when used with an incompatible
    android version (issue 3142)
  * FIXED: 3167: Sending empty keys to a text field no longer throws
  * FIXED: 3173: Using ChromeOptions no longer causes stack exhaustion
  * FIXED: 3169: getAttribute("value") falls back to the text of
    option tags, if no value attribute is specified
  * Updated operadriver to version 0.9

Maven:

  * NOTE: We have removed our dependency on the operadriver from our
    pom, because it creates a circular dependency.  To use the
    operadriver, add the following dependency to your own pom.xml
    file:

    <dependency>
      <groupId>com.opera</groupId>
      <artifactId>operadriver</artifactId>
      <version>0.9</version>
    </dependency>

RC:
  * Bumped firefox support up to Firefox 12

Grid:
  * FIXED: 3161: Thread safety issues

Known issues:
  * Some issues around scrolling (3075, 3045, 3034)

v2.16.1
=======

RC:
  * FIXED: 3148: Allow IE to be launched.

v2.16.0
=======

WebDriver: 
  * Native events enabled for Firefox 9
  * The FirefoxDriver now enables apps to use offline storage by
    default.
  * ChromeDriver allows setting the chrome driver's environment more
    easily.
  * RemoteWebElement implementations now guarantee that the ID used to
    identify them. This allows "hashCode" and "equals" to be local
    operations in Java.
  * The PageFactory will now no longer decorate List<WebElement>
    fields unless annotated with a @FindBy.
  * By default, clicks will now be in the middle of elements.
  * RemoteWebDriver will use uncacheable GET requests to communicate
    with the remote webdriver server.
  * HtmlUnitDriver defaults to emulating Firefox 3.6.
  * FIXED: 2985: Calling quit() on the IE Driver in a shutdown hook
    will no longer kill the JVM.
  * FIXED: 2893: You can now pass a Map to executeScript when using
    Firefox.
  * FIXED: 1395, 2747, 2869, 2431: Upgraded version of CocoaHTTPServer
    to the latest and greatest.

WebDriverJS:
  * Test failures are now annotated with the task history.
  * JSONP support dropped in favour of CORS. For those browsers where
    CORS is not fully implemented, added a "/xdrpc" (cross-domain rpc)
    end-point.
  * Change the promise.Application event loop to run at a set interval
    instead of trying to explicitly trigger it at the appropriate
    times. This makes debugging much simpler.
  * WebDriverJS hub front-end now renders correctly in IE.

Grid:
  * It's now a beautiful butterfly.

RC:
  * IE HTA mode will now close the final window.
  * All windows are now opened as "resizable". This means that they
    should always open in new windows rather than tabs in IE.
  * *chrome mode can type into file input elements on Firefox 8+
  * WebDriverCommandProcessor has all constructors depending on the
    (deprecated) SuppliesWebDriver class marked as deprecated. Will be
    deleted in the next release.
 
Automation Atoms: 
  * Bug fixes and updates
  * Included a touchscreen abstraction
 
 
v2.15.0
=======
Project:
  * Code donation from Google.

WebDriver: 
  * Now supports up to and including Firefox 11.
  * Changed order of FirefoxProfile initialization attempts on a
    remote host: 1) try to load from capabilities, 2) try to load
    locally if webdriver.firefox.profile is specified, 3) create an
    empty profile.
  * Added the beginning of infrastructure for gathering logs from
    webdriver tests.
  * Added an UnreachableBrowserException.
  * Additional work on the WebDriver JS console.
  * Implicit waits now change how long we wait for alerts. This
    functionality will change in 2.16
  * FIXED: 2700: The infamous scrolling issue.
  * FIXED: 2816: ClassCastException when calling switchTo().alert().

Grid:
  * Grid now distinguishs between CLIENT_GONE and
    FORWARDING_TO_NODE_FAILED.
  * FIXED: issue where older RCs could not connect to a newer hub.

RC:
  * Selenium-backed WebDriver now uses atoms for typing.

Automation Atoms:
  * Significantly reworked input device abstractions.

Known Issues:
  * HTA mode for Selenium RC (*iexplore) leaves a browser window open.


v2.14.0
=======
WebDriver:
  * Deleted all deprecated methods in the Java API.
  * Client code cleaned to work with Java 5. Server code needs Java 6.
  * Added a front-end for executing WebDriverJS scripts. Point a
    browser at http://localhost:4444/wd/hub.
  * Can now query an Android driver for supported capabilities.
  * Updated JSON framework used in the iOS driver.
  * Fixed issue with scrolling on small viewports with native events
    in Firefox.
  * FIXED: 2889: FluentWait supports adding a custom message to
    timeout exception.
  * FIXED 2798: When implicit waits are enabled in the FirefoxDriver,
    stale element reference errors when searching for child elements
    are now handled properly
  * FIXED 2917: Preventing endless recursion in hashCode.

Server:
  * Memory leak fixed

Grid:
  * New beta console added.  
  * Grid nodes were leaking even more memory that regular server
    nodes.  
  * Fixed a scenario that used to lead to "session = null" errors.
  * Now support iOS nodes.

Known issues:
  * Continuing problems with element out of bounds exception being
    thrown.


v2.13.0
=======
Dependency change:
  * Selenium/webdriver java dependencies now use apache commons-exec
    (http://commons.apache.org/exec/) version 1.1. If you are using manual
    dependency management you will need to add this to your project.
    If you resolve via maven central (maven, ivy, gradle), this will
    be handled automatically.
WebDriver:
  * Recovering from null window references in the Firefox driver (#1438)
  * Make native events work correctly on Linux with the Python bindings (#2633)
  * Improved finding Firefox on Windows in the C# bindings (2818)
  * Screenshots in Python are now working (2829)
  * Exporting webdriver.promise from the Javascript API (2839)
  * Permission denied accessing some elements using the Firefox driver (2863)
  * Fixed typing into content editable elements with Firefox (2.12 regression)
  * Firefox is started in the forgeground on OS X. Focus / blur events now have
    higher chance of firing correctly on OS X.
  * Deprecated methods were removed from the FirefoxDriver and FirefoxProfile
    classes (saveScreenshot, enableNativeEvents, alwaysLoadNoFocusLib).
  * The amount of time a test can remain hanging is now capped (to 3 hours).

Grid:
  * Gracefully handle registration of old nodes in a new grid hub (#2738).
  * Releasing all the resources when a proxy is removed from the hub (#2768).

Known issues:
  * Synthesized mouse events are inaccurate (Affects Firefox driver users
    on OS X) (2281)
  * Invalid move target out of bounds exception thrown.2700
  * Dragged elements end up in the wrong location, with the Firefox driver,
    when scrolling is required (typically with small viewport) (2877)

v2.12.0
=======

RC
  * Disabled web security checks for Chrome by default. 
  * Actually reenabling *safariproxy.

WebDriver
  * Firefox 8 support enabled
  * Added @Beta annotation. Any method marked with this may be deleted
    or changed without notification.
  * Added @Beta Window control for Firefox in Ruby and Java. This
    allows resizing and moving.
  * Renamed FirefoxProfile.enableNativeEvents() to
    FirefoxProfile.areNativeEventsEnabled(). Deprecated original
    method. Will be removed in 2.13.
  * Renamed FirefoxProfile.alwaysLoadNoFocusLib() to
    FirefoxProfile.shouldLoadNoFocusLib(). Deprecated original
    method. Will be removed in 2.13.
  * Better reporting of page size when attempting to move out of bounds.
  * More informative error message when a remote webdriver client
    fails to connect to the browser.
  * PageFactory now only decorates WebElement lists.
  * Calling WebElement.clear on a disabled or readOnly element will
    throw an InvalidElementStateException.
  * WebDriver.getWindowHandle will throw a NoSuchWindowException if
    the window is closed.
  * FIXED: 1498: HtmlUnit no longer finds containing element when
    searching by CSS.

Grid
  * Made Grid orphan check only apply to Se1 clients.

Atoms
  * Implemented clear action for contentEditable elements.


v2.11.0
=======

RC:
  * Safari proxy added back to the supported browser.


v2.10.0
======

Grid:
  * Stability and reliability fixes.
  * A single node can now process both selenium 1.0 and selenium webdriver requests.  Old proxies deprecated.
  * FIXED: 2617: Removing unnecessary logging.
  * FIXED: 2650, 2400: Unregister dead nodes.

WebDriver:
  * FIXED: 2700: Don't throw MoveTargetOutOfBoundsError where we shouldn't.
  * FIXED: 2301: Allow commas in CSS selectors.
  * FIXED: 2099: Occasional XPath lookup errors.
  * FIXED: 1771: Don't scroll unnecessarily.
  * FIXED: 2674: Don't incorrectly decorate List<WebElement>s which don't have @FindBy annotations.

Javascript:
  * Added jsapi, including node integration.  More details to come.

General:
  * Updated version of guava used to 10.0.1.

v2.9.0
======

Project:
  * ThoughtWorks code grant to the Software Freedom Conservancy complete.

WebDriver:
  * Support for Ice Cream Sandwich in the AndroidDriver
  * CSS Selector support enabled for Android
  * Remote webdriver server log now contains '[HTML source]' instead of full
    source.
  * Better respect for preformatted text in WebElement.getText()
  * Adding better error message when failing to connect to the FirefoxDriver.
  * Reduced scrolling during tests for IE and Firefox.
  * Preserve the state of modified keys when using native events on Linux.
  * Support for experimental page load detection in firefox. Set the
    "webdriver.load.strategy" to "fast" in the FirefoxProfile to enable less
    conservative page loading detection at the risk of greater test
    instability.
  * FIXED: 2031: Shielding backslashes when writing preferences to a file.
    There is an issue with Firefox: it drops \n and \r when it moves user
    preferences to prefs.js. This patch is a workaround.
  * FIXED: 2223: Clicks on labels are now propagated to the referenced element.
  * FIXED: 2646: PortProber no longer attempts to divide by zero.
  * FIXED: 2675: Better detection of where to click on links.

RC:
  * FIXED: 569: Making assert and verify methods NPE-safe.


v2.8.0
======

WebDriver
  * FIXED: 1967,1934: Temporary directories no longer fill up disk.
  * FIXED: 2295,1899: Better handling of select/option tags in HtmlUnit
  * Disabled elements won't be cleared any more
  * FIXED: 2531: Allow setting frozen firefox profile preferences to their frozen values.
  * FIXED: 2509: Fixing error=24 too many open files bug
  * Added setFileDetector to RemoteWebDriver to allow files to be uploaded to the remote server
  * Faster error reporting if chromedriver isn't executable
  * FIXED: Occasional ClassCastExceptions
  * FIXED: Proxy configuration NullPointerException problem
  * FIXED: 1326: Allow parallel execution of FirefoxDriver on Linux with native events
  * FIXED: 384: Fixed native FirefoxDriver crash on some 64-bit linux systems
  * FIXED: 417: Allow @FindBy annotations to be put on List<WebElement> as well as just WebElement fields
  * Added native event support for Firefox 7
  * Added constructor to ChromeDriver that lets you specify the ChromeDriverService as well as the DesiredCapabilities
  * FIXED: By.linkText now always trims leading and trailing whitespace
  * FIXED: Issues with doubleClick in Firefox

RC
  * FIXED: 1934: -singleWindow works for *iexplore
  * Selenium Server params work with RC Grid configuration
  * Adding support for Firefox 8

v2.7.0
======

WebDriver
  * FIXED: 2487: FirefoxDriver no longer types in the URL bar.
  * FIXED: Issues to do with not clicking on elements out of view when using
    native events.
  * FIXED: 2456: Double click and get no longer hangs Firefox.
  * Improved emulation of Selenium RC when using Opera in the
    WebDriverBackedSelenium.
  * FIXED: 2421: Chrome returns doubles instead of ints because it supports
    sub-pixel rendering.

RC
  * FIXED: #2413: "Missing space between browser name and custom path in error
    message"
  * FIXED: 2390, 2477: Make -h a synonym for -help

Automation Atoms
  * Allow bot.dom.getInViewLocation to scroll a specified location into view.


v2.6.0
======

WebDriver
  * Better handling of the case where emphemeral sockets are exhausted.
  * More widespread use of the InvalidSelectorError in Chrome and Remote.
  * When using native events, prevent firefox from scrolling if an element is
    already in the view.
  * Improvements in the mouse emulation (movement, click, double click, context
    click)
  * Bumped included version of OperaDriver to 0.7.1.
  * Attempt to address issue #1443 (the infamous "getWindow() == null" problem)
  * Added timing information to WebDriver exceptions resulting from command
    invocations in the remote driver.
  * Added an ExpectedConditions class with common ExpectedCondition
    implementations.
  * Better usage of sockets in the remote webdriver

RC
  * WebDriver-backed Seleniums will now clear text fields before typing.

Grid
  * Significantly improved thread safety.
  * Improved information on the index page of the hub.

Automation Atoms
  * bot.inject.executeScript* handles function arguments better.
  * Add atom to get the frame index of a frame element (bot.frame.getFrameIndex)
  * Added emulation of touch devices and events
  * Use DOM Events level 2 and 3 for events IE if available


v2.5.0
======

WebDriver
  * Firefox 7 support without Native Events
  * Implementing scrolling past the viewport for Firefox
  * FIXED: 1020: Clicking on a link over multiple lines in Firefox
  * Minor cleanups of code

Grid
  * FIXED: Thread Safety Issues
  


v2.4.0
======

WebDriver:
  * Firefox 6 support.
  * Change in the wire protocol to bring alert checking inline with the
    semantics of other commands.
  * Improved text handling: non-breaking spaces are now returned as spaces, even
    in the middle of an existing body of text.
  * Minor fixes for detecting whether elements are visible.
  * Added handling of lists and maps in EventFiringWebDriver.executeScript().
  * FIXED: 2158: Fixing HtmlUnit select element getAttribute behaviour for
    "multiple" attribute.
  * Better handling of cookies in the remote webdriver (particularly Chrome)
  * FIXED: Thread safety issues.
  * Added clear app cache to the wire protocol.


Selenium:
  * Firefox 8 support.
  

v2.3.0
======

WebDriver:
  * Better detection of clickable areas in Firefox.
  * Alert handling works in Chrome.
  * Merge of Google-contributed code into the underlying Atoms.
  * FIXED: Internet Explorer crashes when an element has empty text and getText called.
  * FIXED: IBM JDK throws different exception when unable to bind to a socket.


v2.2.0
======

Selenium RC:
  * Avoiding double quoting the "method" when captured network traffic is
    returned via XML.

WebDriver:
  * relatedTarget now set on appropriate events (mouseover, mouseout)
  * Multiply wrapped WebElements now unwrapped properly when using the remote
    webdriver
  * RemoteWebElement will reuse an ID if the element has been looked up before.
  * Better warnings for emulated Selenium methods "allowNativeXpath" and
    "useXpathLibrary"
  * More consistent errors when an xpath expression returns something that is
    not a WebElement (indicated via the InvalidSelectorException.

Grid:
  * Adding support for a "host" variable in the config files.
  * Additional logging


v2.1.0
======

WebDriver:
  * Round to 0 if something looks like it's off the edge of the screen when
    calculating distances. Fixes issue 1776.
  * Deleting the deprecated TimeoutException inner class and replacing with the
    top-level one

Grid:
  * Properly form the HTML output for console display.
  * Track when a session has become orphaned.  I.e., when the client sends no
    commands after the initial session creation.  This almost always indicates
    the client is no longer connected and the session is unusable immediately.
