Protractor v2.1.0 Release Notes

  • ⬆️ Dependency Version Upgrades

    • (25b1fa0) feat(jasmine): update jasmine dependency to 2.3.1

    Updated from 2.1.1. See Jasmine's changelog at https://github.com/jasmine/jasmine/tree/master/release_notes

    Closes #1795. Closes #2094. Closes #1768.

    • (25e3b86) chore(chromedrivier): Update chromedriver to 2.15

    🔋 Features

    • (45341c9) feat(explorer): allow element explorer to start as a server

    If element explorer is run with a port (i.e. --debuggerServerPort 1234), it will start up a server that listens to command from the port instead of a repl that listens to process.stdin.

    • (cf9a26f) feat(plugins): allow plugins.postTest to know what test just ran

    • (0f80696) feat(plugins): inline plugins

    • (de49969) feat(debugger): make element explorer work with node 0.12.0

    Node has changed its debugger significantly in 0.12.0, and these changes are necessary to get it to work now.

    Specifically here are the key points to take note:

    • Before, the process continues running after process._debugProcess(pid); is called, but now, the process stops.

      To over come this, the call to process._debugProcess(pid) is moved from protractor into the debugger client. Secondly, because the process stops after the call, we call reqContinue once the debugger connection is established, so that protractor continues into the first break point (for backwards compatibility, we added an extra empty webdriver command so that in earlier versions of node, protractor doesn't go past the first break point from the reqContinue).

    • Before repl provides '(foobar\n)' when an user inputs 'foobar'. Now it is just 'foobar\n'.

      We will parse and strip away both the parenthesis and '\n' to support all versions of node.

    • Additionally (non-related to node 0.12.0), this change makes debugger processes fail fast if the port is taken.

      • (7b96db0) feat(browser.get): Return a promise that handles errors in browser.get

    🐛 Bug Fixes

    • (815ff5d) fix(jasmine2): be consistent about passing assertions in output JSON

    See #2051

    • (e6e668c) chore(jasmine): update jasminewd2 to 0.0.4

    This improves the control flow schedule messages for debugging and fixes an issue with the this variable inside tests. See https://github.com/angular/jasminewd/issues/22

    • (e599cf3) fix(taskscheduler): label sharded tasks with numbers instead of letters

    Letters run into a problem with a maximum of 26. See #2042

    • (fda3236) fix(config): add sauceAgent property to protractor config

    Closes #2040

    • (fa699b8) fix(debugger): fix 'getControlFlowText()' broken in webdriver 2.45

    • (b783dd8) fix(browser): remove subsequent duplicate module

    browser.removeMockModule() misses next duplicate module because of iteration over an array it's modifying.

    • (e3d4ad1) fix(stacktrace): remove jasmine2 specific stacktraces

    • (3cded9b) fix(locators): escape query in byExactBinding

    See http://stackoverflow.com/q/3561711

    Closes #1918

    • (e18d499) fix(cucumber): process no-snippets param for cucumber framework