1.0.81 29th March 2019

Updated Chrome drivers to 73.0.3683.68

Updated Opera drivers to 2.42

Updated Firefox drivers to 0.24.0

1.0.80 27th January 2019

Updated Chrome drivers to 2.45

Updated Firefox drivers to 0.23.0

Updated Opera drivers to 2.41

Updated IE drivers to 3.141.5

Updated Edge driver to 17134

1.0.78 1st October 2018

Updated Spring to 5.1.0

Updated Chrome drivers to 2.42

Updated Firefox drivers to 0.22.0

Updated Opera drivers to 2.40

Updated IE drivers to 3.14

Updated Edge driver to 17134

1.0.77 17th August 2018

Updated spring to 5.0.8

Updated Selenium to 3.14

Updated Chrome drivers to 2.41

Updated Gradle to 2.9

Updated other dependencies

1.0.76 14th July 2018

Updated to Spring 5.0.7

1.0.75 1st July 2018

Updated Selenium to 3.13.

Updated Chrome driver to 2.40.

Update Firefox driver to 0.21.0.

Updated Opera driver to 2.37.

Updated IE drivers to 3.13.

1.0.74 11th May 2018

Updated to Selenium 3.12.

Updated to Spring 5.0.8.

Updated IE drivers to 3.12.

Updated Gradle to 4.7.

1.0.73 19th April 2018

Upgraded Chrome drivers to 2.38.

1.0.72 14th April 2018

Upgraded Firefox drivers to 0.20.1.

Upgraded Edge driver to Release 16299.

1.0.71 29th March 2018

Upgraded to Opera drivers to 2.35.

1.0.70 18th March 2018

Upgraded to Chrome drivers to 2.37.

1.0.69 17th March 2018

Upgraded IE drivers to 3.11.1.

Upgraded Firefox drivers to 0.20.0.

Upgraded Selenium to 3.11.

Upgraded Gradle to 4.6.

1.0.68 3rd March 2018

Updated to Selenium 3.10.0.

1.0.67 2nd March 2018

Added new steps for switching to iframes. Details can be found here.

1.0.66 22nd February 2018

Updated the Linux 64 bit PhantomJS executable to 2.1.3. Other operating systems and architectures remain on PhantomJS 2.1.1.

1.0.65 20th February 2018

Disabled support for HTTPS proxies when using Chrome headless, as Chrome headless currently has a bug that prevents proxies for secure sites.

1.0.64 17th February 2018

Updated to Selenium 3.9.1

1.0.63 10th February 2018

Added a new step to allow SVG elements to be clicked when the SVG is embedded in an <object>.

And I click the "//*[@id='CNR']/*[name()='path'][1]" element in the object element "/html/body/object"

In this example the SVG image is embedded in the <object> element found at /html/body/object. The element in the SVG being clicked is found with the XPath //*[@id='CNR']/*[name()='path'][1].

Note that the SVG element being clicked (e.g. //*[@id='CNR']/*[name()='path'][1]) must be found via an XPath. The <object> element can be found with the usual selectors including XPaths, CSS Selectors, IDs etc.

An example of this new step can be found in the Iridium test suite at

Note that this step does not work in IE, as IE does not support document.evaluate().

1.0.62 7th February 2018

Updated to Selenium 3.9.0

Switched to the ApacheHttpClient for the RemoteWebDriver, as the default OKHTTP resulted in authentication errors with BrowserStack.

Updated other dependencies.

1.0.61 27th January 2018

Fixed up the error InvalidArgumentError: Expected [object Undefined] undefined to be an integer when running Firefox headless. See for details.

Added --no-sandbox for Chrome headless. See for details.

Updated to Spring 5.0.3.

Updated to Gradle 4.5.

Updated other dependencies.

1.0.60 21st January 2018

Updated Opera driver to 2.33

1.0.59 12th January 2018

Updated Chrome driver to 2.35

1.0.58 7th January 2018

Updated ZAP to 2.7.0.

Updated some dependencies.

Cleaned up some Checkstyle violations.

Updated Edge driver to latest insider build.

1.0.57 16th December 2017

Reverted update to ZAP API which broke some tests.

1.0.56 12th December 2017

Updated Chrome drivers to 2.34

Updated IE drivers to 3.8

1.0.55 2nd December 2017

Updated to Selenium 3.8.1.

The step

I log in with username "user" and password "pass"

now throws a NotImplementedException. This is because support for basic auth was removed in Selenium 3.8.0. See the Selenium release notes for more details.

1.0.54 27th November 2017

Updated to Selenium 3.7.1.

1.0.53 12th November 2017

Updated Opera driver to 2.32.

Updated IE driver to 3.7.

Updated Spring to 5.0.1.RELEASE.

1.0.52 5th November 2017

Updated Geckodriver to 0.19.1.

Updated Gradle to 4.3.

1.0.51 29th October 2017

Updated Chrome driver to 2.33

1.0.50 30th September 2017

Updated Opera driver to 2.30.

Updated IE drivers to 3.6.

Updated Edge driver to latest insider build.

Updated Selenium to 3.6.

Updated Spring to 5.0.0.

Updated a number of other dependencies.

1.0.49 24th September 2017

Updated Firefox driver to 0.19.0.

Updated IE driver to 3.5.1.

Updated Selenium to 3.53.

Added some notes on running Iridium with Java 9 in the Launching chapter.

Disabled the acceptInsecureCertssetting for IE to fix this error:

Unable to match capability set 0: acceptInsecureCerts was 'true', but the IE driver does not allow bypassing insecure (self-signed) SSL certificates

1.0.48 9th September 2017

Removed browser interop rouinte for Firefox screen maximize because has been resloved.

Updated some dependencies.

Iridium is now sponsered by BrowserStack, so we have access to the Automate service for testing.

Fixed the generation of JavaDoc, so the docs at work again.

1.0.47 3rd September 2017

Updated Chrome driver to 2.32.

Updated Selenium to 3.52.

1.0.41 19th August 2017

Updated Edge driver to use insider build.

Updated Selenium to 3.51.

Updated BrowserMob to 2.1.5-SNAPSHOT.

When the keystroke delay is 0, the WebElement.sendKeys() method is now called with the full string instead of looping over each character with no delay. This can improve test performance on remote browsers as fewer network calls have to be made.

Note that iPad and iPhones tests current fail in Browserstack because of a Appium bug causing the error "Unrecognized platform: iOS". See for more details.

1.0.38 7th August 2017

ISSUE 109: Implemented some changes to the steps that verify text on the page.

1.0.37 6th August 2017

Updated Chrome drivers to 2.31 and Firefox drivers to 0.18.0.

Both Chrome and Firefox have introduced bugs that mean the window maximize step does not work. See these following links for more details:

For Chrome and Firefox, the step And I maximize the window will do nothing. You can use the step And I set the window size to "1024x768" (using whatever resolution you want) as a workaround in the meantime.

1.0.35 / 1.0.36 10th June 2017

Disabled the password manager in Chrome.

Updated Chrome and Firefox drivers.

JAR file used for JNLP launchers has changed to

Note that while Chrome 59 has been released, the current version of the Chrome driver fails to start the browser in a headless mode. See for details.

1.0.34 22nd May 2017

WebDriver Executable Options

Added the useSuppliedWebdrivers system property. When set to false (the default is true), this property will prevent Iridium from extracting and using the supplied webdriver executables.

This may be useful if your antivirus program flags these executables as dangerous, as it means you can download the drivers for yourself, exclude them from the antivirus scan individually, and then reference them with the,, webdriver.edge.driver, webdriver.opera.driver or webdriver.gecko.driver system properties.

You can download webdriver executables from the following links:







Mouse Movement

And experimental system property called moveCursorToElement was added to move the mouse cursor on the screen while the test is being run. See the System Property Reference chapter for more details.

Help Popups

A step was added to display a simple text box over the web browser at certain points during the test. For example the step

Then I display the help message "Hi there"

will display the text "Hi there" over the browser for a few seconds. This provides a way to display some additional information for a recording or demonstration.

1.0.33 20th May 2017

Added the ChromeSecure and ChromeHeadlessSecure test targets. These targets create an instance of Chrome will a number of features disabled, including disabling the File API, microphones and webcams. These options limit the amount of information a test can potentially read and distribute.

See for details on the arguments passed to Chrome in secure mode.

1.0.32 15th May 2017

Added the delayBetweenRetries system property, which defines the time in seconds between a failed test and the next retry (if testRetryCount is greater than 1).

The delayBetweenRetries system property is useful to allow temporary network conditions to resolve themselves before trying to run a test again.

1.0.30 - 1.0.31 14th May 2017

Fix up bug where remote tests had to have urlMappings in the configuration file or there was an exception. Now the urlMappings are optional.

1.0.25 - 1.0.27 10th May 2017

A bunch of small changes to improve logging, and add retries to logic that will intermittently fail. These changes have been added to make Iridium more robust in certain edge cases.

1.0.24 7th May 2017

Fixed an issue in Firefox where clicking links based on their text conent (i.e. the And I click the link with the text content of "whatever" and And I click the hidden link with the text content alias of "Link Contents" steps) would fail intermittently.

Allowed the page open steps like Given I open the page "" to ignore timeouts e.g. Given I open the page "" ignoring timeouts. PhantomJS would intermittently timeout on these steps, and ignoring the timeout allows the tests to continue.

1.0.23 6th May 2017

If there is an exception thrown while trying to create the webdriver instance, Iridium will exit with an error code of -3. This is an indication that drivers and/or browsers may have been started but not cleaned up, so this error code should be captured to ensure that processes are manually cleaned up.

1.0.22 5th May 2017

Upgraded to Selenium 3.4.0

Upgraded Firefox drivers to 0.16.1

1.0.21 4th May 2017

Updated IE and Opera web drivers.

Added support for running headless tests in Chrome 59. Note that Chrome 59 is currently in beta at the moment. To run tests against headless Chrome, set the testDestination system property to ChromeHeadless.

Utility has been added to convert XML datasets to CSV format.

Added the firefoxBinary system property to allow the location of the Firefox executable to be defined.

1.0.20 3rd May 2017

Fixed up a bug where the configuration file was not reloaded with each execution of Iridium, which was causing issues with tests where Iridium was executed repeatedly with different configuration values.

Fixed up the deletion of some global files.

Fixed up the shutdown timer to allow it to be cancelled when the test finished within the allocated time.

1.0.19 2nd May 2017

Added the ability to define datasets in CSV files. To use a CSV file, set the dataset system property to the location of a file with the .csv extension.

1.0.18 28th April 2017

The "found by" steps can now be written in a more natural format.

To convert a "found by" step to the new format, remove the text "element found by" and add an optional adjective after the string used to identify the element.

For example, these two steps are equivalent:

And I click the element found by "Motor Burnout Input"
And I click the "Motor Burnout Input" button

In the second example, any adjective can follow the string used to identify the button. Here are some additional examples that demonstrate the new format:

And I click the "Motor Burnout Input" check box
Then I select "Previous Insurance Input" from the "Previous Insurance" drop down list
And I wait "10" seconds for the "Continue" thingamagig to be clickable
Then I click the "Policy Start Input" span
Updated drivers

Chrome drivers have been updated to version 2.2.9

Marionette (Firefox) drivers have been left at 0.15.0 because of the bug described in Also note that the marionette driver version 0.15.0 does not appear to work with the latest version of Firefox (53 at this point), so if you experience errors running tests with the latest version of Firefox, downgrade to version 50. Firefox 50 is the version that is tested as part of the Travis CI build process, and so is known to work.

Keep in mind that you can override the included Marionette driver with the webdriver.gecko.driver system property.

1.0.11 - 1.0.17 25th April 2017

Cleaned up additional temporary files created when a test is run.

Fixed some issues when tests were run against Browserstack.

Internal changes to allow Iridium to be more easily used as a library in other applications.

Edge driver was updated to release 15063.

1.0.10 21st April 2017

Added a bunch of tests for negative cases (i.e. ensuring steps fail appropriately) and fixed up some failing steps.

1.0.9 8th April 2017

Fixed a bug that would prevent PhantomJS from starting when run under a user that could not create the log file in the default location.

1.0.8 7th April 2017

Added the system property reportsDirectory to allow the directory where the Iridium report files are saved to be overridden.

1.0.6 / 1.0.7 6th April 2017

Updated dependency versions.

1.0.5 5th April 2017

  • Fixed the following exception:
    ConfigurationException: Configuration pool has been exhausted!

  • HAR files saved when Iridium is closed now have a timestamp in the filename i.e. browsermob<timestamp>.har. This means that retries of failed tests will preserve the HAR file for the original failed test.

  • The filename for the stepAnd I dump the HAR file to "test.har" can now be defined as an alias. See this step in the test script for an example.

1.0.4 3rd April 2017

When browsermob has been instructed to capture traffic in a HAR file (i.e. with the step Given I enable HAR logging) the HAR file will be saved to a file called browsermob.har when Iridium exits regardless of whether the test succeeded or failed. This change was done to allow debugging the HAR file from failed tests.

This change makes the step And I dump the HAR file to "test.har" a little redundant now, but you can still use this step to dump out the contents of the HAR file at different points in the test if need be.

1.0.3 31st March 2017

Browsermob now captures all headers and cookies in addition to requests and response data when saving a HAR file.

1.0.2 20th March 2017

Updated to Selenium 3.3.

Updated Chrome, Firefox and IE drivers to latest versions.

1.0.1 18th February 2017

Updated WebDriver executables for Chrome, Firefox and IE.

1.0.0 17th February 2017

This is the same as 0.0.92, which was promoted to the 1.0.0 release.

0.0.92 23rd January 2017

ISSUE 90: Added steps to allow links to be opened in new windows, and to close the current window.

And I open the link with the text content of "Test Link" in a new window
And I switch to the new window
And I close the current window

0.0.91 22nd January 2017

Cleaned up a resource leak.

0.0.90 21st January 2017

ISSUE 89: Added two new steps to allow aliases to be changed to lower or upper case:

And I modify the alias "CaseChange" by converting it to upper case
Then I verify that the alias "CaseChange" is equal to "ABCDEFG"
And I modify the alias "CaseChange" by converting it to lower case
Then I verify that the alias "CaseChange" is equal to "abcdefg"

The alias map is now passed into JavaScript code blocks as argument[0]:

And I run the following JavaScript and save the result to alias "JavaScript Return Value"
     if (arguments[0].length % 2 !== 0) {
         return "arguments[0] should always be an even number";
     for (var i = 0; i < arguments[0].length; i += 2) {
        if (arguments[0][i] === 'CaseChange') {
            return arguments[0][i + 1];
     return "Failed to find alias mapping";
Then I verify that the alias "JavaScript Return Value" is equal to alias "CaseChange"

ISSUE 88: The step And I select option number alias "Number Alias" from the drop down list found by alias "Location Alias" if it exists now accepts a string that can be used as an alias for the option number.

ISSUE 87: Fixed a bug where steps that had the condition "if it exists" would still fail if the element didn't exist. This was because the wrong exceptions were being caught.

0.0.89 18th January 2017

Fixed an issue where BrowserMob was not being shutdown on exit.

0.0.88 13th January 2017

ISSUE 84: Added the ability to take a screenshot on failure. Set the enableScreenshotOnError system property to true to enable this feature.

0.0.86 / 0.0.87 11th January 2017

  • Updated geckodriver to 0.13.0.
  • Updated BrowserMob to 2.1.4.
  • Deleted the MergedReport.xml file when tests fail and the testRetryCount system property is set to repeat tests. This means failed tests don't show up in a JUnit report when a subsequent run passes completely.

0.0.85 9th January 2017

Fixed up the event handling implemented by the interop function used by Marionette and Edge to select items in a drop down list. The onchange event now bubbles, which fixes issues in the TicketMonster example when run in Edge and Marionette.

0.0.84 8th January 2017

Incorporated a pull request from Alex Shteinikov which adds two new steps for working with headers:

And I set header "X-Forwarded-For" with value ""
And I remove header "User-Agent"

Fixed a bug where feature files reference via an #IMPORT comment would fail if they were saved with Windows line endings.

0.0.80 - 0.0.83 28th December 2016

No actual code changes were done in the releases. This was work to update the TravisCI build script to deploy Maven artifacts and JavaDoc HTML automatically with each release to remove any manual step from deployments.

0.0.79 24th December 2016

Added the steps:

And I "mouseup" "50%" horizontally and "50%" vertically within the area of the element found by "slider"
And I "mousedown" "50%" horizontally and "50%" vertically within the area of the element found by "slider"
And I "click" "50%" horizontally and "50%" vertically within the area of the element found by "slider"
And I "mouseover" "50%" horizontally and "50%" vertically within the area of the element found by "slider"
And I "mouseout" "50%" horizontally and "50%" vertically within the area of the element found by "slider"
And I "mouseup" "50%" horizontally and "50%" vertically within the area of the element found by "slider"
And I "mousemove" "50%" horizontally and "50%" vertically within the area of the element found by "slider"
And I "dblclick" "50%" horizontally and "50%" vertically within the area of the element found by "slider"

See the regression tests for examples of how these steps can be used.

Also see the Best Practices chapter for a discussion on the difference between these custom event steps and raw JavaScript for interacting with advanced UI elements.

0.0.77 / 0.0.78 24th December 2016

Added the following steps:

  • And I run the following JavaScript
  • And I run the following JavaScript and save the result to alias "Alias Name"

This is an example of how to use the steps:

And I run the following JavaScript and save the result to alias "Slider Value"
    return $( "#slider" ).slider( "value" );

These steps have been added to work around the fact that advanced UI elements like sliders, date pickers, address capture elements etc often require a very precise and complex set of UI events to accurately simulate, and it is often easier to simply interact with these elements directly using code (and indeed it may be impossible to interact with these elements using the other steps provided by Iridium).

Running custom JavaScript in a test does dilute the benefits provided by interacting with a page as a user would. They also also introduce security considerations. So use these steps with caution and as a last resort.

0.0.76 22nd December 2016

Updated the Chrome WebDriver executables

0.0.73 18th December 2016

Iridium will now clean up any existing CucumberThread#.html report directories before running new tests.

0.0.72 17th December 2016

Added steps for working with alert prompts:

  • And I wait "30" seconds for an alert to be displayed
  • And I click "OK" on the alert
  • And I click "Cancel" on the alert

0.0.71 17th December 2016

Fixed up an issue importing fragments.
Fixed up an issue were an exception was thrown if a URL was defined as a system property or via a configuration file. It is now possible to run a test script with no external URL definitions.

0.0.70 16th December 2016

ISSUE 70: Fixed a bug that prevented manual screenshots from being taken if scenario screenshots were not enabled.

0.0.68 / 0.0.69 15th December 2016

ISSUE 66: Added the ability to #IMPORT complete feature files by stripping out the Feature: line from the imported file.

ISSUE 63: Added the step

And I modify the element found by "identifier" by setting the attribute "attribute-name" to "new attribute value"

0.0.67 11th December 2016

Fixed an exception when an attempt to merge an unknown XML file into the final jUnit report is made.

0.0.66 2nd December 2016

Added the following steps:

  • And I scroll to the bottom of the page
  • And I scroll to the top of the page

0.0.64 / 0.0.65 1st December 2016

Added support for automatically selecting 32 bit drivers in Windows. This means Iridium will work in the test VMs supplied by Microsoft.

0.0.63 30th November 2016

  • Fixed some Firefox interop issues regarding the selection of options by text in a drop down list and element focus events.
  • Added Firefox to the TravisCI build tests for increased coverage.
  • Fixed a bug where configuration XML files were being deleted.

0.0.62 28th November 2016

Added system properties browserStackAccessToken and browserStackUsername as an alternative to saving these details in the configuration XML file.

0.0.61 15th November 2016

Added the ability to define URL sets from system properties. For example you might define the default URL and a URL to another app called "launcher" with the following options


You can then access these in the test script with the steps

And I open the application
# Do some things
And I open the application "launcher"

0.0.60 14th November 2016

Forced Cucumber to run in strict mode, so unmatched steps now result in an error.

Added a number of system properties to enable or disable Cucumber reports:

  • htmlReportFile
  • jsonReportFile
  • txtReportFile
  • junitReportFile

0.0.59 8th November 2016

Add the following steps:

  • And I press the up arrow on the active element ignoring errors
  • And I press the left arrow on the active element ignoring errors
  • And I press the right arrow on the active element ignoring errors

Added a workaround for the Edge browser when selecting elements from a drop down list.

Added the system property disableInterop which can be set to true to disable all browser specific workaround implemented by Iridium.

0.0.58 7th November 2016

Fixed up the groupName system property to properly restrict BrowserStack browsers to the correct group.

0.0.57 7th November 2016

  • The tests were cleaned up, fixing up a number of steps that had spelling or grammar errors.
  • JUL logging is now routed through LogBack, and unnecessary warnings generated by PhantomJS are no longer logged.

0.0.56 4th November 2016

Added the step

And I dump the value of the alias "Alias name" to the console

This was added to make it clear what value was used in a scenario when running multiple datasets.

0.0.55 3rd November 2016

Fixed up concurrency issues which would result in exceptions like java.util.ConcurrentModificationException and random issues when saving and validating aliased values.

0.0.53 and 0.0.54 2nd November 2016

Added the following steps:

Then I wait "time" seconds for the page to contain the text "text"
Then I wait "time" seconds for the page to contain the text alias "text"
Then I wait "time" seconds for the page to contain the regex "regex"
Then I wait "time" seconds for the page to contain the regex alias "regex"

0.0.52 17th October 2016

  • Updated to Selenium 3.0.
  • Updated Chrome driver to 2.2.4.
  • Updated Marionette driver to 0.11.1.

results matching ""

    No results matching ""