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 added to differentiate between browser hang and client gone (which is -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: com.opera operadriver 0.9 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 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 Lists 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 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.