Protractor v1.3.0 Release Notes

  • ๐Ÿ”‹ Features

    • (4f1fe68) feat(runner): Allow onCleanup to accept a file

    • (548f0c0) feat(webdriver): bump WebDriver to version 2.43

    • (466b383) feat(protractor): allow advanced features for ElementArrayFinder

    changed ElementFinder as a subset of an ElementArrayFinder.

    This enables actions on ElementArrayFinders, such as: element.all(by.css('.foo')).click()

    The function filter now returns an ElementArrayFinder, so you may also do: element.all(by.css('.foo')).filter(filterFn).click()

    or

    element.all(by.css('.foo')).filter(filterFn).last().click()

    • (7bd2dde) chore(angular): upgrade angular to version 1.3.

    This change updates Protractor's test application from 1.2.9 to 1.3.0-r0.

    There is a significant behind-the-scenes change in the implementation of locating elements and waiting for the page to be stable. If you are updating your application to Angular 1.3, you may run into some changes you will need to make in your tests:

    • by.binding no longer allows using the surrounding {{}}. Previously, these were optional. Before: var el = element(by.binding('{{foo}}')) After: var el = element(by.binding('foo'))

    • Prefixes ng_ and x-ng- are no longer allowed for models. Use ng-model.

    • by.repeater cannot find elements by row and column which are not children of the row. For example, if your template is <div ng-repeat="foo in foos">{{foo.name}}</div> Before: var el = element(by.repeater('foo in foos').row(2).column('foo.name')) After: You may either enclose {{foo.name}} in a child element or simply use: var el = element(by.repeater('foo in foos').row(2))

      • (ee82f9e) feat(webdriver-manager): ignore ssl checks with --ignore_ssl option

    Allow ability to ignore SSL checks when downloading webdriver binaries. Usage: webdriver-manager update --ignore_ssl

    ๐Ÿ› Bug Fixes

    • (838f5a2) fix(element): isPresent should not throw on chained finders

    Now, $('nonexistant').$('foo').isPresent() will return false instead of throwing an error. This change also adds tests that ensure that catching errors from promises works as expected.

    ๐Ÿ’ฅ Breaking Changes

    • (f7c3c37) feat(webdriver): update to WebDriverJS 2.43.5

    Breaking Changes WebDriverJS has introduced changes in the way that Promises are handled in version 2.43. See https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/CHANGES.md

    • webdriver.WebElement has now been split into webdriver.WebElementPromise and webdriver.WebElement so that it does not resolve to itself. This change should be largely transparent to users.
    • WebElement.toWireValue has been removed.