OperaDriver 0.10 released

I'm happy to announce another release of OperaDriver, version 0.10. I'm attempting to release earlier and more often than before, and while it's been only a week since the last week, I think averaging at about one release every fortnight would be a good plan.

In terms of API changes I've added a short-hand method ScopePreferences.reset() (which is an implementation of OperaPreferences) for resetting the value of a single preference to its default value. OperaDriver.preferences().* now also returns this type so that it won't have to be casted. In other words: No major changes.

This release can be called a bug fixing release. Richard Atkins has contributed a fix for WebElement not getting wrapped, which used to cause problems if you were accessing elements from the Selenium PageFactory over the remote driver. He also kindly fixed quotes escaping for JavaScript parameters, and a fix for handling cyclic references in JavaScript results to avoid stack overflow's.

The Selenium dependency has been updated to 2.17.0, and the WebDriver atoms have also been updated.

The check for whether a call to setLastModified() was successful was completely removed which should resolve the issue of not being able to start OperaDriver on a fresh system without any launchers previously installed.

paymand has added the -backend command-line argument to the launchers (they have also been upgraded) to cater for window-only screen snapshots when testing hardware accelerated Operas on Windows. This is a temporary workaround, however, and my hope is to address a more generic solution using the launcher protocol soon.

For the details, please see the attached change log.

The README can be found here: https://github.com/operasoftware/operadriver/blob/v0.10/README.md

OperaDriver 0.10 is available as a part of Selenium 2.18.

If using Maven, OperaDriver 0.10 is available in the group com.opera under the artifact ID operadriver.

You may download the OperaDriver JAR separately here: https://github.com/downloads/operasoftware/operadriver/operadriver-v0.10.zip

The generated API documentation has been updated and can be found here: http://operasoftware.github.com/operadriver/docs/

v0.10     (2011-01-24)

  [API CHANGES]

  * Added short-hand ScopePreference.reset() method for resetting a
    single preference.  (andreastt)

  * OperaDriver.preferences().* now returns a ScopePreference so that
    it won't have to be casted.  (andreastt)

  [ENHANCEMENTS]

  * Upgraded WebDriver atoms.  (andreastt)

  * Upgraded to Selenium 2.17.  (andreastt)

  * Cleaning VERSION file on build target "clean".  (danielb)

  [BUG FIXES]

  * Handle cyclic references in JavaScript results to avoid stack
    overflow.  (rjatkins)

  * Fix for proxied WebElement not being wrapped in OperaDriver.
    (rjatkins)

  * setLastModified() check fails on Windows, resolves issue #38.
    (andreastt)

  * Fix for NullPointerException in DesiredCapabilitiesTest.
    (andreastt)

  * Fix for SpartanRunner not exiting, resolves SPARTAN-1026.
    (danielb)

  * Escape quotes in JavaScript parameters.  (rjatkins)

  * Added OperaProfile.toJson(), avoids StackOverflowException in
    BeantoJsonConverter.  (dawagner)

  * Logging levle is now passed down to launcher on startup.
    (andreastt)

  [TESTS]

  * Converted ignored mouse tests to a low-level OperaMouse test,
    MouseTest.  (andreastt)

  * Added stale element exception tests for navigating between same
    page and two different pages.  (andreastt)

  * Added window switching tests.  (andreastt)

  * Tests for WebElements being proxied in PageFactory.  (rjatkins)

  * Check for whether @Ignore annotation is empty, fixes a few failing
    Windows tests.  (andreastt)

  * Removed or refactored tests relying on external resources.
    (andreastt)

  [OTHER]

  * Fix code quotes in README.  (stuk)

  * Upgraded Guava to 11.0.1.  (ajayk)

  * Added more IntelliJ run configurations.  (andreastt)

  * Added Richard Atkins to the AUTHORS file.  (andreastt)

  * Upgraded launcher dependency to 0.6 (which includes the
    command-line arguments -profile and -backend).  (andreastt)