Protractor v6.0.0 Release Notes

Release Date: 2019-03-23 // 9 months ago
  • 👀 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)


Previous changes from v5.4.2

  • 🔋 Features

    • (db1b638) feat(saucelabs): add sauceRegion support for eu datacenters (#5083)

    This change allows user to define the backend region from sauce via the sauceRegion property, e.g.

         sauceUser: process.env.SAUCE_USERNAME,
         sauceKey: process.env.SAUCE_ACCESS_KEY,
         sauceRegion: 'eu',
    

    Will run the test against https://ondemand.eu-central-1.saucelabs.com:443/wd/hub/.

         sauceUser: process.env.SAUCE_USERNAME,
         sauceKey: process.env.SAUCE_ACCESS_KEY,
         sauceRegion: 'us',
    
         // the default
         sauceUser: process.env.SAUCE_USERNAME,
         sauceKey: process.env.SAUCE_ACCESS_KEY,
    

    Will run the test against https://ondemand.saucelabs.com:443/wd/hub/

    🛠 Fixes

    • (f5dbe13) fix(deps): @types/node is now a dev dependency