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']" 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
Note that the SVG element being clicked (e.g.
//*[@id='CNR']/*[name()='path']) 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 https://github.com/mcasperson/IridiumApplicationTesting/blob/master/src/test/resources/steptest.feature#L61.
Note that this step does not work in IE, as IE does not support
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 https://stackoverflow.com/questions/48472129/firefox-headless-expected-object-undefined-undefined-to-be-an-integer/48472130#48472130 for details.
--no-sandbox for Chrome headless. See https://github.com/AutoGeneral/IridiumApplicationTesting/pull/117 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.
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.
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 https://github.com/mozilla/geckodriver/issues/820 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 https://mcasperson.github.io/IridiumApplicationTesting/javadoc/au/com/agic/apptesting/steps/package-summary.html 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 https://github.com/appium/appium/issues/9042 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.
Disabled the password manager in Chrome.
Updated Chrome and Firefox drivers.
JAR file used for JNLP launchers has changed to https://s3.amazonaws.com/iridium-release/IridiumApplicationTesting.jar.
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 https://bugs.chromium.org/p/chromedriver/issues/detail?id=1843 for details.
1.0.34 22nd May 2017
WebDriver Executable Options
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.chrome.driver, webdriver.ie.driver, webdriver.edge.driver, webdriver.opera.driver or webdriver.gecko.driver system properties.
You can download webdriver executables from the following links:
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.
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
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 https://github.com/mcasperson/IridiumApplicationTesting/blob/1.0.33/src/main/java/au/com/agic/apptesting/utils/impl/WebDriverFactoryImpl.java#L166 for details on the arguments passed to Chrome in secure mode.
1.0.32 15th May 2017
delayBetweenRetries system property, which defines the time in seconds between a failed test and the next retry (if
testRetryCount is greater than 1).
delayBetweenRetries system property is useful to allow temporary network conditions to resolve themselves before trying to run a test again.
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 "https://google.com" to ignore timeouts e.g.
Given I open the page "https://google.com" 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
Utility has been added to convert XML datasets to CSV format.
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
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
Chrome drivers have been updated to version 2.2.9