protractor
Advanced tools
Changelog
0.23.1
Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.
(59533d9) fix(navigation): revert changes to the page reset
Navigating to an empty data URL won't work for internet explorer, sadly.
Reverting to about:blank. Will watch for flakes and explore other options.
Changelog
0.23.0
Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.
(b7afa87) feat(addMockModule): allow additional parameters
Allow Protractor’s 'addMockModule' method to pass context to its mocks, providing an argument to the script which overrides a module. Rely on the WebDriver’s 'executeScript' method.
Closes #695
(546d41f) feat(sauceprovider): runner now prints a link to saucelabs test URL
(fd7fe4a) feat(launcher): Add support for splitTestsBetweenCapabilities.
(b93bf18) feat(elementFinder): keep a reference to the original locator
(98f4ba5) feat(locators): add by.exactBinding
(43ff9e5) fix(jasminewd): allow asynchronous callbacks for jasmine tests
Closes #728, Closes #704
(6249efe) fix(webdriver-manager): use request module instead of http
Google changed selenium-server-standalone.jar's location and is returning 302 http module does not follow redirects
Closes #826
(95093c3) fix(configParser): don't run suite if specs are supplied
(27a5706) fix(loading): fix timeouts with about:blank removal
As documented at https://github.com/jnicklas/capybara/pull/1215 there are sometimes issues with webdriver and about:blank pages.
Switching instead to try a data url.
(cbcdb48) fix(runner): add -r for each cucumber require
(e36c32a) fix(jasminewd): Use promise.all to combine promises and done
(b5c18db) fix(drivers): prevent Sauce Labs login credentials from showing up in logs
Closes #754
(b85af50) fix(protractor): change angular-bootstrap wrapper for navigation
(8abea3c) fix(jasminewd): fix timeout for beforeEach and afterEach
Changelog
0.22.0
Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.
(8b088fd) feat(locators): Added a By.cssContainingText locator.
This new locator find elements by css selector and inner text in response to the lack of ':contains' selector.
Example: By.cssContainingText('ul .pet', 'Dog') will find all ul children with class 'pet' containing the text 'Dog'.
Closes #488, Closes #709
(54060b7) feat(protractor): add the browser.setLocation method to perform in-page navigation
Allow a faster way to navigate within the app. The current browser.get method forces the entire app to load every time you navigate to a new page. The proposed browser.setLocation method uses the same format as $location.url().
Closes #368
(74761e8) feat(cli): use protractor.conf.js as a default config file if none is passed
Closes #615
(b81cf5a) chore(webdriver): update WebDriverJS version to 2.41.0
(a96df4d) chore(minijasminenode): update to version 0.4.0.
This allows the use of because('message')
before expectations, to give additional information
when a failure occurs.
It also removes warnings for Node 0.11.* users about util.print being deprecated.
Closes #377
(6f31b56) chore(package): npm start now brings up the testapp
Closes #712
(1137d12) fix(mocha): fix it.only so that it does not double-wrap
Closes #469
(bde56a0) fix(cli): fix --exclude command line flag
Accidentally got changed to 'excludes'. As discussed earlier, should be single to be consistent with Karma.
Closes #637
(9e426df) fix(locators): using $().$$() should return an ElementArrayFinder
Prior, $(foo).$$(bar) would return a promise which resolved to an array of WebElements. This is unexpected, since $(foo).$(bar) returns an ElementFinder, and element(by.css(foo)).element.all(by.css(bar)) returns an ElementArrayFinder. Fixed so things are more consistent.
Closes #640
(b67810a) fix(webdriver-manager): do not download files if HTTP response is not 200
Closes #656
(28912f0) fix(webdriver-manager): fix download paths
Changelog
0.21.0
Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.
(0c4ef69) feat(launcher): launcher outputs a final summary of how the browsers did
(f1db8b4) feat(runner): make runner an event emitter and log passes or failures from the launcher
Now, for runs with multiple capabilities, the launcher will output '.' or 'F' for each pass or fail instead of just '.' for every chunk of data. TODO - complete the event emitter API for the Cucumber runner.
(f9c4391) feat(cli+config): allow defining multiple test suites in the config and running them separately from the command line.
(06bd573) feat(pause): add the browser.pause method to enter a webdriver-specific debugger
Warning: this is still beta, there may be issues. Usage: In test code, insert a browser.pause()
statement. This will stop the test at that point in the webdriver control flow. No need to change
the command line you use to start the test. Once paused, you can step forward, pausing before
each webdriver command, and interact with the browser. Exit the debugger to continue the tests.
(43aff83)
fix(pageload): Changing how about:blank
unload waits Also changing executeScript
script
comment from //
to /**/
format. These two small changes should not affect functionality but
make Protractor work with Selendroid.
(1334662) fix(locators): Improve custom locators message
Increase readability of custom locator message by displaying each argument instead of the arguments object.
(c9dbbaa) refactor(launcher): skip the child process if only one capability is requested
Closes #603
(26d67a2) fix(launcher): launcher should report a failure when only one capability is running
(9530a0c) (fix): Convert test.sh to test.js
This would enable the tests to be run on both Linux and Windows.
(6d85ab4) fix(jasminewd): display stack traces in correct order and with WebElement method failure details
(8964ac9) fix(test): Fixed path of configuration file to pass on windows
(99bda1a) fix(waitForAngular): when timeout overflows, at least pass the negative to error messages
Closes #622
(4fd060a) fix (element): Allow ElementFinder to be passed to actions directly.
Previously, do to an action such as drag and drop, one would have to use
element(by.foo).find()
. Now, just passing element(by.foo)
works. For example:
browser.actions().doubleClick(element(by.id('mybutton'))).perform();
(b2a4ffc) fix(configParser): always return "this" from addFileConfig
Changelog
0.20.1
Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.
([17de697](https://github.com/angular/protractor/commit/17de697fe9f64e238a8df0fbc6358b8e578e45f2 fix(debug): make new debug work on windows too
Closes #580
Changelog
0.20.0
Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.
(220d793), (6603a7e) chore(webdriver): update selenium version to 2.40.0 and download location
(ad5f3aa) feat(jasminewd): allow custom matchers to return promises
Allow custom jasmine matchers to return a promise which resolves to a boolean and match against the resolution of the promise
(41feaca) feat(framework.cucumber): Allow multiple tags on cucumber tests.
Motivation: Support for multiple tags on the cucumber test execution, to be able to filter with more complex expressions the scenarios to run.
How to use:
cucumberOpts: {
tags: '@dev'
}
or
cucumberOpts: {
tags: ['@dev', '~@ignore']
}
More information on tags: https://github.com/cucumber/cucumber/wiki/Tags
(2ca6541) fix(debug): make protractor debug work in the new runner/launcher world
Closes #552
(a68627b) fix(launcher): command line args should be passed as-is to the runner
This allows users to continue to use optimist (or other process.argv) processing within their tests and grab values from the command line.
Closes #571.
(767c306), (02defe3) fix(jasminewd): include full pre-async-call stack trace in expectation failure message
(b6df2cf) fix(configParser): load coffee and LiveScript for child processes
Without loading coffee in configParser.js, child processes which try and load a coffeescript config file do not have coffee registered with node's required, and child tests fail.
Fixes an issue with using coffeescript config files.
(64bee25) fix(locators): add locator with multiple arguments
When using a custom locator with multiple arguments, only the first argument was used when
calling webdriver.findElements
.
(87b0c7f) fix(debug): display error message when runner fails
Changelog
0.19.0
Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.
(77393d0), (6848180), (cca82ca) feat(runner/launcher): major runner updates to allow multiple capabilities
Adding simultaneous runner capability (grid-style), refactoring launch/runner init system, and abstracting out configParser module.
(642de06) feat(protractor): add removeMockModule method
(88c339f) feat(runner): add adapter for cucumber.js
Conflicts: lib/runner.js
(8924bbc) fix(cli): convert capabilities arguments to dot-notation for WebDriver compatibility
(a96d32f) fix(webdriver-manager): upcase in IE download url
The url for the Win32 version of the IEDriverServer is apparently case sensitive: win32 vs Win32
(05eb42b) refactor(locators): moves scope in locators to last argument
scope defaults to document, and is an optional argument so now be moved to the end. Came up from debugging and trying to use window.clientSideScripts.findInputs('username'); which failed. Refactored to match original intent.
BREAKING CHANGE: anything relying on clientsidescripts should no longer pass element scope as first argument.
Before:
window.clientSideScripts.findInputs(document, 'username');
After:
window.clientSideScripts.findInputs('username', document);
// or simply
window.clientSideScripts.findInputs('username');
Also, any custom locators using addLocator will now break since the arguments order has changed. To migrate the code follow the example below:
Before:
var findMenuItem = function() {
var domScope = arguments[0];
var myArg = arguments[1];
// balh blah blah
};
by.addLocator('menuItem', findMenuItem);
After:
var findMenuItem = function() {
var myArg = arguments[0];
var domScope = arguments[1];
// balh blah blah
};
by.addLocator('menuItem', findMenuItem);
Closes #497
Changelog
0.18.0
Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.
(e3b1e7c) feat(config): add option to exclude specs based on file patterns
The config now accepts exclude
, an array of patterns to exclude.
(88a1e58) Feat(clientSideScripts): Add by.buttonText, by.partialButtonText
Adds client side JS implementations of by.buttonText and by.partialButtonText, enabling element lookup based on innerText.
Closes #452
(8d29c93) feat(config): allow LiveScript configuration files
(d06d931) fix(timeouts): fix an obscure cause of firefox timeouts
Fixes #493
(de39e50) fix(jasminewd): support multi-argument matchers
Implement support for multi-argument matchers in promise wrapper.
Closes #477
(11c4210) fix(testForAngular): add a message when page load does not complete in time
(6ae6261) refactor(waitForAngular): improve error messages when timeouts occur
(5dd93c2) fix(config): allow CoffeeScript 1.7 to be used
CoffeeScript now requires a register call to be made.
(10aec0f) fix(pageload): increase wait timeout
The 300 ms wait caused problems when testing IE on Sauce Labs. It seems way too short. "browser.get()" invariably timed out. Increasing it solved our problem.
Changelog
0.17.0
Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time.
(cc4f7b5), (8348803) feat(element): allow chaining of element finders with element().element()...
Chaining calls to element will now build a scoped element finder. No webdriver functions will be called until a method (such as getText) is called on the final element. Example:
var elem = element(by.id('outer')).element(by.css('inner'));
browser.get('myPage'); elem.click();
Closes #340.
(088a581) feat(runner): add a callback for when the tests are done
Add an onCleanUp callback to be able to hook into when all the tests have been run.
Conflicts: referenceConf.js
(66c4774) feat(runner): add mocha options to config file
change lib/runner to allow setting mocha options from config.
(092fe1f), (3151ca7) feat(locators): Add map() function to element.all
Added a map function to element.all to apply a function to each element and return the result of the transformation.
Resolve promises if there is an object that contains multiple promises. Added index as a second argument to the map function callback.
Closes #392
(7259614), (0257b5f) feat(config): allow CoffeeScript configuration files
Require CoffeeScript in the cli file to enable CS configuration and spec files.
Possibly fixes #38
(e7d9e08) feat(global): export By (== by) on the global for use with coffeescript (or others who prefer it)
(a0bd84b) fix(pageload): add a wait during protractor.get() to solve unload issues
Some systems would not wait for the browser unload event to finish before beginning the asynchronous script execution.
Closes #406. Closes #85.
(4b053eb) fix(runner): only run selenium with spec files
Only setup Selenium if there are actual spec files passed in
(8e096b9)
fix(Protractor.prototype.get): resolve baseUrl
before ignoring synchronization
Fixes issues where setting ignoreSynchronization = true
ignores the value of baseUrl
entirely.