Protractor v7.0.0 Release Notes

Release Date: 2020-05-13 // about 2 months ago
    • (9d2e18e) refactor: use console.log instead of util.puts

    utils.puts is no longer available in Node.JS 12

    • (c281157) refactor: remove debugger and explore methods

    BREAKING CHANGE: Debugger and explore methods are not compatable with Node 8+. Use debugger keyword instead. See: https://goo.gl/MvWqFh

    • (7cdb978) build: update several dev packages that have security issues

    • (8e82835) build: update webdriver-manager

    • (a1fe5f2) ci: update tests to run on Node 10 and 12

    • (3fc9220) fix: prototype Pollution vulnerability through outdated yargs package

    BREAKING CHANGE:

    Node.Js version 6 and 8 are no longer supported. Please update to Node.Js 10+

    Closes #5431


Previous changes from v6.0.0

  • 👀 Selenium 4 removes the control flow and most of these changes are based on those changes. To see the full list of changes, please refer to selenium-webdriver's CHANGELOG

    💥 Breaking changes

    • 🚚 Control flow is removed and you should use async await to run your tests.
    • Other control flow related items:
      • debugger, explore and element explorer have been removed
      • jasminewd is no longer a dependency
    • 🗄 ignoreSynchronization has been deprecated and you should use waitForAngularEnabled
    • Types for selenium-webdriver are currently in the types/ directory and are not complete. We are still missing some type definitions for selenium 4.
    • ✅ Actions API in selenium-webdriver have changed and they will break your test. Also we have not exported it yet since the type definitions are not complete.

    🔋 Features

    • (cf43651) chore(debugprint): convert debugprint to TypeScript (#5074)

    • (4672265) chore(browser): remove timing issues with restart and fork (#5085)

      • remove .ready since forking should automatically return a browser
      • getNewDriver should return a promised WebDriver that can be awaited
      • fix interaction tests and local driver tests
      • update unit tests for async await due to getNewDriver fix closes #5031
    • (b4dbcc2) chore(elementexplorer): remove explorer bin file (#5094)

    closes #5092

    • (3b8f263) chore(ignoreSynchornization): clean up to use waitForAngularEnabled (#5071)

    • (ffa3519) chore(debugger): remove debugger and explore methods (#5070)

    • (c9db3f3) chore(promises): remove q promises and webdriver promises (#5052)

      • remove q promises and webdriver promises from the runner, launcher, plugins, and taskRunner
      • add deprecated message to element explorer.
      • add unhandledRejection
      • update browser versions used in travis tests
    • (e22065c) chore(promises): clean up driver providers and browser control flow (#5034)

    Driver providers and tests:

    • Use native promises over q promises in driver providers
    • Remove driverProviderUseExistingWebDriver since the generation of the selenium server is already accomplished when providing a selenium address in driverProvider.ts. Also clean up docs and tests.

    • Enabled the driverProviderLocal tests

    • Clean up JSDocs for q.promise Basic lib spec:

    • Remove auto unwrap test for a WebElement. Reference PR #3471 Browser:

    • Remove control flow from waitForAngularEnabled, waitForAngular, and angularAppRoot in the Browser class.

    Dependencies

    • (96ae17c) deps(jasmine): upgrade jasmine 3.3 (#5102)

    • (d213aa9) deps(selenium): upgrade to selenium 4 (#5095)

      • elements workaround for WebElement.equals
      • added a better unhandled rejection warning message in the launcher control flow)bal function wrappers for mocha (these wrappers went away with
      • fix the attach to session driver provider Typing exported from Protractor:
      • removed ActionSequence and EventEmitter (actions is currently missing)
      • removed promise.Promise fulfilled, filter, whener, delayed, createFlow, controlFlow, all, Typings exported from WebDriver:
      • removed attachToSession
      • removed WebDriver instance methods: touchActions, call
      • removed WebElement getSize and getLocation for getRect
      • removed redefined global vars for testing
      • In the typings, we are missing Options.setScriptTimeout method. This should not impact users unless they are using the driver.manage() method. Tests:
      • fix element equals test
      • add missing 'await' in colorList test that is causing unhandled promise rejections.
      • remove control flow related tests
      • disable the install test. Installing from "file:../../" is not working.
      • fix the attach to session driver provider test to exit with a 1 if errors are encountered
    • (509f1b2) deps(latest): upgrade to the gulp and typescript (#5089)

      • deps(latest): upgrade to the gulp and typescript
      • add in @types/loglevel and @types/yargs for webdriver-manager
      • upgrade tslint clean up for tslint supported by gulpp 4 and remove run sequence since this feature is
      • remove compile to es5
    • (2def202) deps(webdriver-manager): use replacement (#5088)

    publish a beta release of use webdriver-manager-replacement until we webdriver-manager closes #5087

    Miscellaneous

    🚚 Minor fixes to remove the control flow completely and to prevent random execution order in Jasmine 3.

    • (0a2809e) chore(types): fix types to use not @types/selenium-webdriver (#5127)

      • Remove the USE_PROMISE_MANAGER test in spec/ts/basic
      • Remove the check if we are using the control flow or not
    • (84cdc50) chore(jasmine): prevent random execution order in jasmine 3 (#5126)