Protractor v1.5.0 Release Notes

  • ๐Ÿ”‹ Features

    • (55a91ea) feat(launcher): reorganize launcher + add option to store test results as JSON

    You may now use config.resultJsonOutputFile to specify a location for output. See docs/referenceConf.js for more usage.

    • (6a88642) feat(plugins): basic tools for adding plugins

    • (2572feb) feat(plugin): ngHint plugin

    For information on usage, see plugins/ngHintPlugin.js. More documentation on plugins will be added soon.

    • (0bbfd2b) feat(protractor/runner): allow multiple browser in test

    Closes https://github.com/angular/protractor/issues/381 Usage: browser.forkNewDriverInstance.

    • (8b5ae8b) feat(troubleshoot): Add more information when the --troubleshoot flag is used

    Improve error messages and add debug info when

    • the configuration file cannot be parsed
    • a webdriver session cannot be started
    • more than one element is found using element

    Unify format used for warnings and errors.

    ๐Ÿ› Bug Fixes

    • (30023f2) fix(runner): setTestPreparer does not work

    setTestPreparer would always set the testPrepare to config.onprepare during runner.run(). This is breaking for code that relies on setTestPreparer directly.

    • (47f12ba) fix(clientsidescripts): make findByCssContainingText tolerate elements with no textContent/innerText

    • (6a9b87c) fix(elementexplorer): eval always treat result as promise

    • (289dbb9) fix(util): properly handle exceptions from onPrepare and onExit

    • (a132fac) fix(jasmine): fix errors when iit was used

    Errors were due to Jasmine not calling reportSpecStarting when iit was used, but calling reportSpecResults.

    Closes #1602

    ๐Ÿ’ฅ Breaking Changes

    • (0bbfd2b) feat(protractor/runner): allow multiple browser in test

    protractor.getInstance() had been unused (replaced by global browser in v0.12.0) and is now removed.

    Before:

      var myBrowser2 = protractor.getInstance();
    

    After:

      // In normal tests, just use the exported global browser
      var myBrowser2 = browser;
    

    If you are creating your own instance of the Protractor class, you may still use protractor.wrapDriver as before.