-
Notifications
You must be signed in to change notification settings - Fork 3
Releases
1.0.84 28th October 2019
- Updated a bunch of dependencies
- Updated Gradle
1.0.83 27th October 2019
- Updated to Chrome driver 78.0.3904.70
- Updated to Firefox driver 0.25.0
- Updated Opera driver to 76.0.3809.132
- Updated to Selenium 4.0.0-alpha3
- Fixed a bug where the Chrome driver loaded after the Opera driver
Note that later versions of Chrome and Opera have a bug that affects selecting SVG elements. See here for details.
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 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 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 https://stackoverflow.com/questions/48472129/firefox-headless-expected-object-undefined-undefined-to-be-an-integer/48472130#48472130 for details.
Added --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.
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 acceptInsecureCerts
setting 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:
- https://bugs.chromium.org/p/chromedriver/issues/detail?id=1901
- https://github.com/mozilla/geckodriver/issues/820
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
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.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:
PhantomJS: http://phantomjs.org/download.html
Chrome: https://sites.google.com/a/chromium.org/chromedriver/downloads
Opera: https://github.com/operasoftware/operachromiumdriver/releases
IE: http://selenium-release.storage.googleapis.com/index.html
GeckoDriver: https://github.com/mozilla/geckodriver/releases
Edge: https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
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
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 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
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.
Fix up bug where remote tests had to have urlMappings in the configuration file or there was an exception. Now the urlMappings are optional.
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 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
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
Marionette (Firefox) drivers have been left at 0.15.0 because of the bug described in https://github.com/mozilla/geckodriver/issues/684. 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.
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.
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 step
And 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.
- 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 "127.0.0.1"
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.
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.
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.
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
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
-DappURLOverride.default=https://example.org
-DappURLOverride.launcher=https://myapp.example.org
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.
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.