UNPKG

121 kBMarkdownView Raw
1# 3.2.2
2_This release is a hotfix for webdriver-manager iedriver_
3
4## Bug Fix
5- ([c6a3b5e](https://github.com/angular/protractor/commit/c6a3b5eab09d95f9d2170e4aface5559cd6b0132))
6 fix(webdriver) - fix file type for internet explorer driver file
7
8- ([d3bd170](https://github.com/angular/protractor/commit/d3bd1702040cde5b9d0a3c1578d0d8e16597224c))
9 fix(bootstrap): enable debug info before setting defer label
10
11 Note that in most cases, this should not have surfaced as an issue because the base test mock
12 modules will also try to turn on debug info.
13
14 Closes #3009
15
16# 3.2.1
17_This release is a hotfix for modules that require protractor_
18
19## Bug Fix
20- ([6e02934](https://github.com/angular/protractor/commit/6e029341a67cd985bf727285dec2ef10aafe7b6a))
21 fix(package): Update module main in package.json to use built.
22
23# 3.2.0
24
25## Features
26- ([cae175c](https://github.com/angular/protractor/commit/cae175cbe632828172e9a7065aacfe67dd51d8dd))
27 feat(plugins) Calculate skipAngularStability dynamically.
28
29 This allows plugins to turn Protractor's default synchronization on and off as needed.
30
31- ([7372267](https://github.com/angular/protractor/commit/7372267f23cc8586409f9ef914ab801c78992ccd))
32 feat(webdriver): add support for custom versions for selenium, chrome driver, and ie driver
33
34- ([1cbbe4f](https://github.com/angular/protractor/commit/1cbbe4fef5c5f2bc0923fd54c53afad71a44af6c))
35 feat(config): no globals option
36
37- ([9608201](https://github.com/angular/protractor/commit/960820120cf7df08cff8cfe15a5a9f08612c9773))
38 feat(typescript): adding typescript to protractor
39
40 Converting a 3 files over to typescript.
41
42 Adding an `npm prepublish` step that will use gulp to download the typings, transpile the files
43 with tscto the built/ directory and copy the rest of the javascript files from lib/ to the built/
44 folder.
45
46 Also adding scripts to package.json for `npm run tsc` and `npm run tsc:w` for transpiling help.
47
48- ([a4a7209](https://github.com/angular/protractor/commit/a4a72095d2f95227f1ba293ae047beab28eb761d))
49 feat(plugins): skipAngularStability
50
51## Dependency Upgrades
52- ([29627f4](https://github.com/angular/protractor/commit/29627f42bb7404f66e3a76ba3cbd85256b408fb6))
53 chore(selenium) - upgrade to selenium webdriver v 2.52.0
54
55 See the full changelog at https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/CHANGES.md#v2520
56
57## Bug Fixes
58- ([a2c7a4b](https://github.com/angular/protractor/commit/a2c7a4bf1fb2a3a509040ae8ec7737cc002b764e))
59 fix(config): Do not sort spec keys
60
61 Fixes #2928
62
63# 3.1.1
64
65## Bug Fixes
66
67- ([4db52f2](https://github.com/angular/protractor/commit/4db52f2a21171ebbc6fed0ca3df760553afc264a))
68 test(config): add test for config files using only per-capability specs
69
70 To prevent bugs like #2925 in the future.
71
72- ([edfb52f](https://github.com/angular/protractor/commit/edfb52fadccf10c34d885c37e990dea0efbb0081))
73 fix(configParser): use all the suites if no other spec sources are provided
74
75# 3.1.0
76
77## Dependency Version Upgrades
78
79- ([f699718](https://github.com/angular/protractor/commit/f699718e951c07f18c2e3e5414f92b9a33f7b19c))
80 updates(selenium): update chromedriver and selenium-standalone
81
82 Selenium-standalone update to 2.51.0. Update chromedriver to 2.21.
83
84 Chromedriver changelog: http://chromedriver.storage.googleapis.com/2.21/notes.txt Selenium
85 changelog: https://github.com/SeleniumHQ/selenium/blob/master/dotnet/CHANGELOG
86
87- ([5930d14](https://github.com/angular/protractor/commit/5930d1444aef2f053c132eb437d07f9b000d7803))
88 chore(deps): update various npm dependencies to latest stable releases
89
90## Features
91
92- ([3f3805f](https://github.com/angular/protractor/commit/3f3805f9496fb130ae01b3e3278ee1ea7684d8e7))
93 feat(attachSession): attach protractor to existing webdriver session
94
95 Attaching an existing selenium browser session to protractor rather than always creating new one.
96 The session can be passed into the config file as a string via the sessionId.
97
98- ([b693256](https://github.com/angular/protractor/commit/b6932560d66730203e0e7b0c65c80a44ad4747de))
99 feat(webdriver): allow configuration of all SeleniumServer arguments
100
101 You can now pass a complete object of configuration for the SeleniumServer class. This allows
102 enabling loopback on the selenium server.
103
104- ([148f020](https://github.com/angular/protractor/commit/148f020bf4bbd71e17326581a2f7ed6f4ff55832))
105 feat(protractor): Add support to allow Protractor to test an Angular application which has
106 debugging info disabled
107
108 Currently Angular application which for performance reasons, have debug information turn off
109 cannot be tested. This PR allows users to add the Angular debug logging flag to the Protractor
110 run.
111
112- ([aa5ceb5](https://github.com/angular/protractor/commit/aa5ceb576f0283b6591faaa95e342ef3c603c717))
113 feat(webdriver): add support for selenium webdriver proxy
114
115- ([b110ed9](https://github.com/angular/protractor/commit/b110ed92442eb8b14768c512a890bb3ceb0e4973))
116 feat(debugger): allow multiple browser.pause()
117
118 After this change, you can put multiple browser.pause() in the code. Each browser.pause() is like
119 a traditional breakpoint.
120
121 To detach from the debugger, press ^D (CTRL+D). This will continue code execution until it hits
122 the next browser.pause() or code finishes running.
123
124 This PR also fixes a number of small formatting issues.
125
126- ([fb10c5c](https://github.com/angular/protractor/commit/fb10c5caffb895e909ad91d629e2192c74c8e064))
127 feat(webdriver): Allow users to use webdriver's disableEnvironmentOverrides
128
129 Fixes #2300
130
131- ([fa0c692](https://github.com/angular/protractor/commit/fa0c692414fa98721dff80202ef95e9b3ccadebb))
132 feat(config): allow onComplete to return a promise
133
134 Closes #1944
135
136## Bug Fixes
137
138- ([f533341](https://github.com/angular/protractor/commit/f533341085921409d16d577e38ba1745c37a17b7))
139 bug(driverProvider): fix driver path generation for *nix platforms
140
141 Makes error messages better
142
143# 3.0.0
144
145_We're releasing version 3.0 with some breaking changes. In summary - Jasmine 1.3 is removed, only Jasmine 2 is now supported, old Node.JS support is dropped, and plugins now need to be explicitly required. Full details below._
146
147## Dependency Version Upgrades
148
149- ([18e1f71](https://github.com/angular/protractor/commit/18e1f71a4dd868709f4e259e05a8a196921e22be))
150 chore(webdriver): upgrade Protractor to webdriver 2.48.2
151
152- ([1f44a6e](https://github.com/angular/protractor/commit/1f44a6ef3f7ae8680a03a3cc7a7c06f75a8c7d4c))
153 chore(deps): bump chromedriver and iedriver versions IEDriver from 2.47.0 to 2.48.0
154
155 ChromeDriver from 2.19 to 2.20. Changelog:
156 http://chromedriver.storage.googleapis.com/2.20/notes.txt
157
158## Features
159
160- ([97e6703](https://github.com/angular/protractor/commit/97e6703eb0e7a5dffc1017d0a44f0dfeeb91f327))
161 feat(protractor): Add protractor.prototype.restart
162
163- ([2007f06](https://github.com/angular/protractor/commit/2007f06078b6569a2cfd9f361f17d765c07bc7f8))
164 feat(protractor): add flag to stop protractor from tracking $timeout
165
166- ([a40a4ba](https://github.com/angular/protractor/commit/a40a4ba2a509bc762f1f5937454fdbf074405f07))
167 feat(ElementArrayFinder#get): Implemented ability to pass promise as index to
168 ElementArrayFinder#get
169
170- ([a54c0e0](https://github.com/angular/protractor/commit/a54c0e0d72b9d7d1d8364ade5046e5007ff53906))
171 feat(plugins): Add config option to disable logging of warnings in console plugin
172
173 Running tests in multiple browsers ends up printing out a lot of useless warnings I'm already
174 aware of. To make skimming through logs in the case of an actual failure easier, I want to be able
175 to disable the logging of warnings in the console plugin.
176
177- ([7015010](https://github.com/angular/protractor/commit/7015010188dfb70c1e49e4f2eae19d5ba1126b34))
178 feat(driver providers): Add BrowserStack support.
179
180 Also added BrowserStack to CI
181
182## Bug Fixes
183
184- ([7cba4ec](https://github.com/angular/protractor/commit/7cba4ecf0f3915dfec33dbc04decd42857744b37))
185 fix(ng-repeat): properly detect the end of an ng-repeat-start block
186
187 Discovered while investigating issue #2365
188
189## Breaking Changes
190
191- ([2bde92b](https://github.com/angular/protractor/commit/2bde92b3e745e09ad3876932b2d187365e9aaa31))
192 chore(jasmine): remove jasmine 1.3
193
194 and update docs. Also, use jasmine 2 for running all Protractor's unit tests.
195
196 BREAKING CHANGE: Now, both jasmine and jasmine2 frameworks use jasmine 2.3. Users still using
197 jasmine version <2 will have to upgrade.
198
199- ([18e1f71](https://github.com/angular/protractor/commit/18e1f71a4dd868709f4e259e05a8a196921e22be))
200 chore(webdriver): upgrade Protractor to webdriver 2.48.2
201
202 BREAKING CHANGE: 1) Users will no longer be able to use node versions <4. 2) There is significant
203 changes to the control flow, and tests may need to be
204 modified to be compliant with the new control flow. See
205 https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/CHANGES.md
206
207- ([ac1e21e](https://github.com/angular/protractor/commit/ac1e21e7e09a773de981bf9e70b0fcd489d17a83))
208 chore(plugins): Split first party plugins into seperate repos
209
210 BREAKING CHANGE:
211
212 The Accessibility, NgHint, Timeline, and Console plugins are now located in their own separate
213 node modules. You will need to explicitly require each module you use. See https://github.com/angular/protractor/blob/master/docs/plugins.md#first-party-plugins for info for each module.
214
215- ([ddb8584](https://github.com/angular/protractor/commit/ddb8584a59343284904676ef6d8db5c1c996b900))
216 chore(cucumber): Remove cucumber from internal implementation
217
218 BREAKING CHANGE:
219
220 Cucumber has been community maintained for a while, and in order to allow it to move faster, it is no longer part of the core Protractor library. It is now published on npm under `protractor-cucumber-framework` and will require setting `frameworkPath` in your configuration file. See https://github.com/angular/protractor/blob/master/docs/frameworks.md#using-cucumber for full instructions on use now.
221
222
223# 2.5.1
224_This release is a hotfix for node 0.10 support_
225
226- ([039ffa7](https://github.com/angular/protractor/commit/039ffa7bfa291084263ae3fa944bbf21394ce9a3))
227 fix(configParser): Remove path.parse so protractor works with node < v0.12
228
229 Closes #2588
230
231# 2.5.0
232_This release contains a hotfix for windows path issues and early support for Angular2 apps_
233
234
235## Features
236- ([c5d37c2](https://github.com/angular/protractor/commit/c5d37c2abebf9aa9dd3324df93ac447529eea53b))
237 feat(lib): add useAllAngularAppRoots option
238
239 This allows waiting for all angular applications on the page, for angular2 apps only.
240
241- ([f246880](https://github.com/angular/protractor/commit/f24688030a63c9de4ce759ac9c6fab79ef773ed5))
242 feat(lib): add support for waiting for angular2
243
244 Use Angular2's testability API, if present, when waiting for stability or loading a page.
245
246 Closes #2396
247
248## Bug Fixes
249
250- ([d6aebba](https://github.com/angular/protractor/commit/d6aebbad6e9b191fef141472887637ee4318438e))
251 fix(config): Fixes absolute path parsing in windows
252
253 This allows absolute paths absolute paths in to be properly parsed in windows. This should
254 maintain the line-number feature introduced in ff88e without breakage.
255
256- ([04e5bfb](https://github.com/angular/protractor/commit/04e5bfbfcade0cbbef58213bc7b227b5db753d57))
257 chore(runner): make plugins optional param for createBrowser
258
259
260# 2.4.0
261
262_This release contains only a version update to `selenium-webdriver`, webdriver javascript bindings, and associated bug fixes._
263
264## Dependency Version Upgrades
265- ([9a202ab](https://github.com/angular/protractor/commit/9a202ab5573f24c9919639f1b75fd9cd2b383383))
266 chore(dependencies): update selenium-webdriver to 2.47.0
267
268 Along with it, update `jasminewd2` to avoid situations where the control flow gets locked up and
269 hangs.
270
271 *Potential Breaking Change*:
272
273 This is passing all existing Protractor tests, but there is a possibility that the changes to the
274 control flow will cause some test flows to hang. If this causes issues, such as tests hanging or commands executing out of order, please revisit your use of functions affecting the control flow, such as `flow.execute`.
275
276 See the selenium-webdriver changelog at https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/CHANGES.md
277
278
279## Bug Fixes
280- ([f034e01](https://github.com/angular/protractor/commit/f034e010156a85cf1826b95eb7f41f50ef5a1791))
281 fix(synchronizing): use the same control flow when ignoring sync
282
283 Previously, the order of frames and tasks on the control flow was different depending on
284 `browser.ignoreSynchronization`. This fixes the inconsistency by creating an empty task when
285 ignoreSynchronization is true.
286
287 Practically, this fixes the polling spec failing after the update to selenium-webdriver@2.47.0.
288
289
290# 2.3.0
291
292_This release contains updates which fix some issues with dependencies that had gotten stale. However, it does not yet contain an update to the selenium-webdriver dependency, because of potential breaking changes. That update will be done in a separate Protractor@2.4.0 release. See [issue 2245](https://github.com/angular/protractor/issues/2245)._
293
294## Dependency Version Upgrades
295
296- ([cfd8d00](https://github.com/angular/protractor/commit/cfd8d000c2aa1686c4a90164baf4e04976ee0587))
297 feat(webdriver): update webdriver and chromedriver to latest version
298
299 Updating Selenium standalone from 2.45.0 to 2.47.0 Updating ChromeDriver from 2.15 to 2.19
300 Selenium Changelog:
301 https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/CHANGES.md
302 ChromeDriver Changelog: http://chromedriver.storage.googleapis.com/2.19/notes.txt
303
304- ([802b20f](https://github.com/angular/protractor/commit/802b20f153f2c201d8b37378bf8feb93f649a95f))
305 chore(selenium): update selenium from 2.47.0 to 2.47.1
306
307- ([7a7aca8](https://github.com/angular/protractor/commit/7a7aca8a264ae07cbbb90e7e7469533a52276488))
308 chore(jasmine): bump jasmine version from 2.3.1 to 2.3.2
309
310- ([eab828e](https://github.com/angular/protractor/commit/eab828e12c671cbf5cdf9b09df050cc59f0dd862))
311 chore(travis): test against node 4
312
313 Test against node 4 on Travis, and remove support for node 0.10.
314
315- ([96def81](https://github.com/angular/protractor/commit/96def81dc7d364e789fc290e97aee0f898648a10))
316 chore(saucelabs): updated saucelabs dependency to 1.0.1 to support proxy
317
318## Features
319
320- ([c989a7e](https://github.com/angular/protractor/commit/c989a7eeed5a0a55d2fbd37dc7278a7967889852))
321 feat(webdriver-manager): add --ie32 commandline option
322
323 The new option allows to download the 32-bit version of the IE driver on a 64-bit system, as the
324 64-bit version has been broken for over a year now (the sendKeys() function works very slowly on
325 it).
326
327- ([ff88e96](https://github.com/angular/protractor/commit/ff88e969d55585cc4267d75c12c0cafc78a01895))
328 feat(cucumber): Allow cucumber tests containing line numbers
329
330 example:
331 ```js
332 specs: [
333 'cucumber/lib.feature:7'
334 ]
335 ```
336
337## Bug Fixes
338
339- ([1487e5a](https://github.com/angular/protractor/commit/1487e5abf69bc1540226502aacadc8b3b42b0092))
340 fix(protractor.wrapDriver): allow browser instances to work even if they were not set up through
341 the runner
342
343 Fixes #2456
344
345- ([2ff7a07](https://github.com/angular/protractor/commit/2ff7a0771b6695dc49566ed81548b3fe2cebf11c))
346 fix(Chrome Accessibility Plugin): resolving the location of AUDIT_FILE
347
348- ([f9b0a92](https://github.com/angular/protractor/commit/f9b0a92079b55384d4560fef9400bb473672ce9c))
349 fix(debugger): Fix potential debugger lockups
350
351# 2.2.0
352
353## Breaking Changes
354
355- If you use the plugin API, it has changed a lot. See
356 [`docs/plugins.md`](docs/plugins.md) for details. The good news is that it
357 is being taken out of beta, so it should be more stable in the future.
358
359## Dependency Version Upgrades
360
361- ([786ab05](https://github.com/angular/protractor/commit/786ab0541bff9b561b35dbbf0ffc1e9d4a788d10))
362 chore(dependencies): update request to 2.57
363
364 Closes #2205
365
366## Features
367
368- ([f2a11a7](https://github.com/angular/protractor/commit/f2a11a7369319edac0f1221a1c6ab0f9a2cc73eb))
369 feat(plugins): Changed and expanded the plugin API
370
371 * Changed the plugin API so that it is more uniform (see docs/plugins.md)
372 * Updated existing plugins to the new API
373 * Added the `onPageLoad` and `onPageSync` entry points for plugins for modifying `browser.get`
374 * Added the `waitForPromise` and `waitForCondition` entry points for plugins for modifying
375 `waitForAngular`
376 * Added tests
377
378 This closes #2126 and helps out @andresdominguez
379
380- ([aded26b](https://github.com/angular/protractor/commit/aded26bc9ee6172d6f64361207f6a8b04da09b0d))
381 feat(webdriver-manager): update download logic with streaming
382
383 Also adds a content length check to make sure the downloaded binaries are the correct size. This
384 seems to fix up some unreliable download issues that we were previously having.
385
386- ([7aeebd6](https://github.com/angular/protractor/commit/7aeebd6543d89b7d8b9474bc45651b88c5c2d396))
387 feat(plugins): reporting loaded plugins
388
389- ([6c10378](https://github.com/angular/protractor/commit/6c10378b9a4e7cae9ba491a63ae11f942c833100))
390 feat(protractor): expose pending $http and $timeout on a timeout
391
392 Now when a test times out while waiting for Angular to be stable, pending
393 $timeout and $http tasks will be reported to the console.
394
395## Bug Fixes
396
397- ([c30afdd](https://github.com/angular/protractor/commit/c30afddb80b6138fc5f648f70f2891067d8eeef4))
398 fix(test): fixed tests under npm test
399
400- ([3508335](https://github.com/angular/protractor/commit/3508335199fee5dad74c66d9ee19b8bf448c2e62))
401 fix(element): ElementArrayFinder.count was slow
402
403 The bug fix for #1903
404 (https://github.com/angular/protractor/commit/2a765c76e121de13ff86a279fe3f21cb15c17783) was
405 causing ElementArrayFinder.prototype.count to be slow because of the extranous checks that must be
406 performed. However, the checks could be delayed into the isPresent check, which will mitigate this
407 issue
408
409 fixes(#2359)
410
411- ([b147033](https://github.com/angular/protractor/commit/b14703319c0d6bb6a69b76d0fd3732e2ea1fbebc))
412 fix(by.exactRepeater): should split by "="
413
414 Closes #2335
415
416- ([4c9886b](https://github.com/angular/protractor/commit/4c9886b410ea4d82098af322044a37908a112138))
417 fix(Chrome Accessibility Plugin) No error context
418
419 If your tests fail because of StaleElementReferenceError then there is no context about where this
420 is coming from. By having the failure be handled inside of the plugin then grunt can fail
421 gracefully. Additionally, this provides context about where the error originated from.
422
423 Fixes #2331
424
425- ([d15ccdc](https://github.com/angular/protractor/commit/d15ccdcf82bda29c803c3a5642896f16d7e4f938))
426 fix(phantomJS): Reset URL cannot be a data url for PhantomJS
427
428 When trying to use the lates version of Angular with PhantomJS we get a message complaining about
429 "Detected a page unload event". This was fixed in earlier versions of Angular, see issue #85, but
430 reappeared now. The problem is that using data urls to reset the page causes this issue, so we
431 have to do as we do with Safari and use "about:blank" instead
432
433- ([e6369ac](https://github.com/angular/protractor/commit/e6369ac973d58a17415ab1211050af26236c6105))
434 docs(tutorial): use Jasmine v2 in the tutorial
435
436- ([e60dc0f](https://github.com/angular/protractor/commit/e60dc0ff4fc4a6d22e877d4182605913fae5d5cb))
437 fix(browser.refresh): use timeout in milliseconds
438
439 When invoked without arguments browser.refresh used a 10-millisecond timeout, wrongly documented
440 as seconds. It now delegates timeout handling to browser.get, which defaults to
441 DEFAULT_GET_PAGE_TIMEOUT (10 seconds).
442
443- ([0262268](https://github.com/angular/protractor/commit/0262268fa43b9eefac815d986740efa07bb15818))
444 fix(cucumber): fix beforeFeature event handler call guard
445
446 Fixes the run failures reported in https://github.com/cucumber/cucumber-js/issues/342.
447
448# 2.1.0
449
450## Dependency Version Upgrades
451
452- ([25b1fa0](https://github.com/angular/protractor/commit/25b1fa052c195f6f56adcd3f5a116cb5eac238b0))
453 feat(jasmine): update jasmine dependency to 2.3.1
454
455 Updated from 2.1.1. See Jasmine's changelog at
456 https://github.com/jasmine/jasmine/tree/master/release_notes
457
458 Closes #1795. Closes #2094. Closes #1768.
459
460- ([25e3b86](https://github.com/angular/protractor/commit/25e3b8611f7333f0829aa3c315a0397891bbada7))
461 chore(chromedrivier): Update chromedriver to 2.15
462
463## Features
464
465- ([45341c9](https://github.com/angular/protractor/commit/45341c944bf60537849776c7f362ee0442b219e6))
466 feat(explorer): allow element explorer to start as a server
467
468 If element explorer is run with a port (i.e. --debuggerServerPort 1234), it will start up a server
469 that listens to command from the port instead of a repl that listens to process.stdin.
470
471- ([cf9a26f](https://github.com/angular/protractor/commit/cf9a26f1b4bdca7d928794d24738786be074619a))
472 feat(plugins): allow plugins.postTest to know what test just ran
473
474- ([0f80696](https://github.com/angular/protractor/commit/0f806964324cbeb4bceb54c5bd82c639b9f99a49))
475 feat(plugins): inline plugins
476
477- ([de49969](https://github.com/angular/protractor/commit/de499696eb88721cb073a195025ae48f59cbc905))
478 feat(debugger): make element explorer work with node 0.12.0
479
480 Node has changed its debugger significantly in 0.12.0, and these changes are necessary to get it
481 to work now.
482
483 Specifically here are the key points to take note:
484
485 * Before, the process continues running after `process._debugProcess(pid);` is called, but now,
486 the process stops.
487 > To over come this, the call to `process._debugProcess(pid)` is moved from protractor into the
488 debugger client. Secondly, because the process stops after the call, we call `reqContinue` once
489 the debugger connection is established, so that protractor continues into the first break point
490 (for backwards compatibility, we added an extra empty webdriver command so that in earlier
491 versions of node, protractor doesn't go past the first break point from the reqContinue).
492
493 * Before repl provides '(foobar\n)' when an user inputs 'foobar'. Now it is just 'foobar\n'.
494 > We will parse and strip away both the parenthesis and '\n' to support all versions of node.
495
496 * Additionally (non-related to node 0.12.0), this change makes debugger processes fail fast if the
497 port is taken.
498
499- ([7b96db0](https://github.com/angular/protractor/commit/7b96db0ffb06608b12aa14765133cce42a0cad7f))
500 feat(browser.get): Return a promise that handles errors in browser.get
501
502## Bug Fixes
503
504- ([815ff5d](https://github.com/angular/protractor/commit/815ff5d092c8dda88e2a1d4c5c80f66bf20892fa))
505 fix(jasmine2): be consistent about passing assertions in output JSON
506
507 See #2051
508
509- ([e6e668c](https://github.com/angular/protractor/commit/e6e668c8d7353c8e797f730b30b996c6a6eb770f))
510 chore(jasmine): update jasminewd2 to 0.0.4
511
512 This improves the control flow schedule messages for debugging and fixes an issue with the `this`
513 variable inside tests. See https://github.com/angular/jasminewd/issues/22
514
515- ([e599cf3](https://github.com/angular/protractor/commit/e599cf301d1ff0fe705b2362fa6b4b17859ab8da))
516 fix(taskscheduler): label sharded tasks with numbers instead of letters
517
518 Letters run into a problem with a maximum of 26. See #2042
519
520- ([fda3236](https://github.com/angular/protractor/commit/fda323664db65a5c8f1590b9841fcfa53d4ab8fd))
521 fix(config): add sauceAgent property to protractor config
522
523 Closes #2040
524
525- ([fa699b8](https://github.com/angular/protractor/commit/fa699b8f1a6b807f2405d6829609797a9a3f8768))
526 fix(debugger): fix 'getControlFlowText()' broken in webdriver 2.45
527
528- ([b783dd8](https://github.com/angular/protractor/commit/b783dd865dfd16e5099a863d36d497499026b208))
529 fix(browser): remove subsequent duplicate module
530
531 browser.removeMockModule() misses next duplicate module because of iteration over an array it's
532 modifying.
533
534- ([e3d4ad1](https://github.com/angular/protractor/commit/e3d4ad164a04451fce3a57f06121355343c97f48))
535 fix(stacktrace): remove jasmine2 specific stacktraces
536
537- ([3cded9b](https://github.com/angular/protractor/commit/3cded9b8da247dc69c78a6fa0e25fe70f6c0f801))
538 fix(locators): escape query in byExactBinding
539
540 See http://stackoverflow.com/q/3561711
541
542 Closes #1918
543
544- ([e18d499](https://github.com/angular/protractor/commit/e18d4990878d70f77b29e8678eecbaab7c8cefb5))
545 fix(cucumber): process no-snippets param for cucumber framework
546
547# 2.0.0
548
549_Why is this change version 2.0? Protractor is following semver, and there's some breaking changes here._
550
551## Dependency Version Upgrades
552
553- ([34f0eeb](https://github.com/angular/protractor/commit/34f0eebd7e73b10e9b990caa06b63b6fd22b2589))
554 fix(element): update to selenium-webdriver@2.45.1 and remove element.then
555
556 This change updates the version of WebDriverJS (selenium-webdriver node module) from 2.44 to
557 2.45.1. See the full changelog at
558 https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/CHANGES.md
559
560- ([8976e75](https://github.com/angular/protractor/commit/8976e75dc1817817e6bd2dbb0b6cbc78d72035e9))
561 chore(jasmine): bump version of jasminewd2
562
563## Features
564
565- ([997937d](https://github.com/angular/protractor/commit/997937d189fb3a9fb51f1b2e4756981c8958ceba))
566 feat(console plugin): Added new console plugin
567
568- ([ef6a09d](https://github.com/angular/protractor/commit/ef6a09d798fd04124224f6ca48eb64d13eb01eff))
569 feat(webdriver-manager): allow a custom cdn for binaries
570
571 Added a cdn value for each binary to be overrided by the cli argument
572 `alternate_cdn`.
573
574## Bug Fixes
575
576- ([fb92be6](https://github.com/angular/protractor/commit/fb92be6d588e7302989bd171a064739359bb3c74))
577 fix(accessibility): improve output for long elements
578
579 Instead of just printing the first N characters of the element's template, print the first and
580 last N/2.
581
582 See #1854
583
584- ([2a765c7](https://github.com/angular/protractor/commit/2a765c76e121de13ff86a279fe3f21cb15c17783))
585 fix(element): return not present when an element disappears
586
587- ([8a3412e](https://github.com/angular/protractor/commit/8a3412e98614bb69978869b34b5b7243619f015d))
588 fix(bug): by.buttonText() should not be effected by CSS style
589
590 Closes issue #1904
591
592- ([5d23280](https://github.com/angular/protractor/commit/5d232807f1e32a9a3ba5a5e4f07ace5d535fc3cd))
593 fix(debugger): fix issue where output does not display circular dep and functions
594
595- ([ef0fbc0](https://github.com/angular/protractor/commit/ef0fbc096035bb01d136897ca463892ceca56b73))
596 fix(debugger): expose require into debugger
597
598## Breaking Changes
599
600- ([34f0eeb](https://github.com/angular/protractor/commit/34f0eebd7e73b10e9b990caa06b63b6fd22b2589))
601 fix(element): update to selenium-webdriver@2.45.1 and remove element.then
602
603 This change updates the version of WebDriverJS (selenium-webdriver node module) from 2.44 to
604 2.45.1. See the full changelog at
605 https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/CHANGES.md
606
607 To enable the update and remove confusion, this removes the `element().then` function unless there
608 is an action result. This function is completely unnecessary, because it would always resolve to
609 itself, but the removal may cause breaking changes.
610
611 Before:
612 ```js
613 element(by.css('foo')).then(function(el) {
614 return el.getText().then(...);
615 });
616 ```
617
618 After:
619 ```js
620 element(by.css('foo')).getText().then(...);
621 ```
622
623 In other words, an ElementFinder is now no longer a promise until an action has been called.
624
625 Before:
626 ```js
627 var el = element(by.css('foo'));
628
629 protractor.promise.isPromise(el); // true
630 protractor.promise.isPromise(el.click()); // true
631 ```
632
633 After:
634 ```js
635 var el = element(by.css('foo'));
636
637 protractor.promise.isPromise(el); // false
638 protractor.promise.isPromise(el.click()); // true
639 ```
640
641 Also, fixes `filter` and `map` to work with the new WebDriverJS.
642
643- ([3c04858](https://github.com/angular/protractor/commit/3c048585ac811726d6c6d493ed6d43f6a3570bee))
644 chore(config): remove deprecated `chromeOnly`
645
646 This has been replaced with `directConnect`.
647
648- Due to ([1159612](https://github.com/angular/protractor/commit/1159612ed76bb65612dbb2cc648e45928a251b10))
649
650 Due to changes in how scheduling works on the control flow, specs
651 in Jasmine1 will no longer wait for multiple commands scheduled in `onPrepare`
652 or in the global space of the test file.
653
654 Before:
655 ```js
656 onPrepare: function() {
657 browser.driver.manage().window().maximize();
658
659 // This second command will not finish before the specs start.
660 browser.get('http://juliemr.github.io/protractor-demo');
661 }
662 ```
663
664 To fix, return the last promise from onPrepare:
665
666 After:
667 ```js
668 onPrepare: function() {
669 browser.driver.manage().window().maximize();
670 return browser.get('http://juliemr.github.io/protractor-demo');
671 }
672 ```
673
674- Due to ([1159612](https://github.com/angular/protractor/commit/1159612ed76bb65612dbb2cc648e45928a251b10))
675
676 Due to changes in WebDriverJS, `wait` without a timeout will now default
677 to waiting for 0 ms instead of waiting indefinitely.
678
679 Before:
680 ```js
681 browser.wait(fn); // would wait indefinitely
682 ```
683
684 After
685 ```js
686 browser.wait(fn, 8000) // to fix, add an explicit timeout
687 ```
688
689 This will be reverted in the [next version of WebDriverJS](https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/CHANGES.md#v2460-dev).
690
691
692# 1.8.0
693
694## Dependency Version Upgrades
695
696- ([1159612](https://github.com/angular/protractor/commit/1159612ed76bb65612dbb2cc648e45928a251b10))
697 fix(webdriver): bump selenium to 2.45.0
698
699 Bump the selenium standalone binary to 2.45.0.
700
701 See https://code.google.com/p/selenium/source/browse/java/CHANGELOG for a full list of changes to
702 the selenium server.
703
704 Closes #1734
705
706## Features
707
708- ([54163dc](https://github.com/angular/protractor/commit/54163dcd22cee27cf16685fbb4d53a2712233d26))
709 feat(a11yPlugin): plugin for integrating with Chrome Accessibility Developer Tools
710
711 Also includes missing Angular map files. See plugins/accessibility/index.js for usage.
712
713- ([658902b](https://github.com/angular/protractor/commit/658902bd04bf809bde2751db79e93ae00de2f810))
714 feat(plugins): add postTest hook for plugins
715
716 Additionally, add some tests to make sure that plugins can fail properly.
717
718 Closes #1842
719
720- ([13d34c9](https://github.com/angular/protractor/commit/13d34c9192a06634827d89bf356bea33fea75747))
721 feat(a11yPlugin): add support for Tenon.io
722
723- ([5f8cffd](https://github.com/angular/protractor/commit/5f8cffd95c50ab4e7949376425f10e13747eb922))
724 feat(plugins): allow plugins to export a name for use in reporting
725
726## Bug Fixes
727
728- ([aabdd56](https://github.com/angular/protractor/commit/aabdd567ee62d0d48fad499ee5decbb5d7d6b939))
729 fix(debugger): breakpoint isn't set properly for windows
730
731- ([361ae21](https://github.com/angular/protractor/commit/361ae21ee761eb78d1e2c9b2b7d270873a28ef81))
732 fix(plugins): add a 'test' or 'fail' string to plugins
733
734 Closes #1843
735
736- ([847e739](https://github.com/angular/protractor/commit/847e73961e52caa1537df269589d9cfe6373b986))
737 fix(webdriver-manager): unzipping ie driver should overwrite old version
738
739# 1.7.0
740
741## Dependency Version Upgrades
742
743- ([2658865](https://github.com/angular/protractor/commit/2658865640d82617e69208cdb2263a2073a20156))
744 feat(webdriver): bump chromedriver to 2.14
745
746 Chromedriver 2.14 contains support for accessing elements inside the shadow DOM.
747
748## Features
749
750- ([d220ecf](https://github.com/angular/protractor/commit/d220ecf5ebc7ba023eab728d4a684e978ff77c83))
751 feat(locators): add by.deepCss selector for finding elements in the shadow dom
752
753 Usage:
754
755 ```
756 element(by.deepCss('.foo'))
757 equivalent to 'element(by.css('* /deep/ .foo'))
758 ```
759
760- ([324f69d](https://github.com/angular/protractor/commit/324f69d6aa7c23ad77f1d50e26e0a56bade40132))
761 feat(locators): add by.exactRepeater
762
763- ([eb9d567](https://github.com/angular/protractor/commit/eb9d56755fa93401502e7608c7c3d0f16927c082))
764 feat(frameworks): add support for custom frameworks
765
766 Usage:
767
768 ```js
769 exports.config = {
770 framework: 'custom',
771 frameworkPath: '/path/to/your/framework/index.js'
772 }
773 ```
774
775- ([9bc1c53](https://github.com/angular/protractor/commit/9bc1c53e40161521b0c125a810f86235c974f100))
776 feat(expectedConditions): add helper library for syncing with non-angular apps
777
778 Usage:
779
780 ```javascript
781 var EC = protractor.ExpectedConditions;
782 var button = $('#xyz');
783 var isClickable = EC.elementToBeClickable(button);
784
785 browser.get(URL); browser.wait(isClickable, 5000); //wait for an element to become clickable
786 button.click();
787 ```
788
789 You can also customize the conditions:
790
791 ```javascript
792 var urlChanged = function() {
793 return browser.getCurrentUrl().then(function(url) {
794 return url != 'http://www.angularjs.org';
795 });
796 };
797
798 // condition to wait for url to change, title to contain 'foo', and $('abc') element to contain text 'bar'
799 var condition = EC.and(urlChanged, EC.titleContains('foo'),
800 EC.textToBePresentInElement($('abc'), 'bar'));
801 $('navButton').click(); browser.wait(condition, 5000); //wait for condition to be true.
802 // do other things
803 ```
804
805- ([fb099de](https://github.com/angular/protractor/commit/fb099dedf92a64732d88401dd1b0d4d30b22650d))
806 feat(elementExplorer): Combine browser.pause with elementExplorer
807
808 * reuse logic for browser.pause for elementExplorer
809 * introduce browser.enterRepl
810 * allow customization of driver for elementExplorer
811 * fix bug where repl cannot return an ElementFinder (related #1600)
812
813 Closes #1314, #1315
814
815- ([9def5e0](https://github.com/angular/protractor/commit/9def5e0e67e031949010fed4ed47178a534c99e8))
816 feat(runner): add browser.getProcessedConfig method
817
818 Now, instances of the `browser` object have a `getProcessedConfig` method which returns a promise
819 that resolves to the current Protractor configuration object for the current runner instance. This
820 means that if multiCapabilities are being used or tests are sharded, `getProcessedConfig` will
821 return an object with the `capabilities` and `specs` property specific to the current instance.
822
823 Closes #1724
824
825## Bug Fixes
826
827- ([ccb165d](https://github.com/angular/protractor/commit/ccb165d99b69e1ae66e4c1badd2f4e04f1481e75))
828 fix(webdriver-manager): unzipping chromedriver should override old version
829
830 See #1813
831
832# 1.6.1
833
834## Bug Fixes
835
836- ([92c5d17](https://github.com/angular/protractor/commit/92c5d17844a2b4dc56c483ab4a65e2bf631175f9))
837 fix(element): test crashes when using certain locators with `fromWebElement_`
838
839 Protractor crashes when one uses locators with findElementsOverride (i.e. any custom protractor
840 locator like by.binding/repeater/etc) in map/filter/then/each/reduce
841
842# 1.6.0
843
844## Features
845
846- ([1e60a95](https://github.com/angular/protractor/commit/1e60a9504c883a95f3500eafa38e1fc11dc28c9b))
847 feat(frameworks): add jasmine2 framework
848
849 Jasmine2.x may now be used by setting `framework: jasmine2` in your config.
850 See https://github.com/angular/protractor/blob/master/docs/jasmine-upgrade.md
851
852- ([0b93003](https://github.com/angular/protractor/commit/0b930035905d1868225667de358222e51394f3ac))
853 feat(jasmine2): add 'grep' option to jasmine2
854
855 Allow users to filter the specs that they want to run using simple string match. To use this
856 feature, either: 1) specify jasmineNodeOpts.grep in your conf.js file
857 or 2) via commandline like "protractor conf.js --grep='pattern to match'"
858
859- ([4368842](https://github.com/angular/protractor/commit/4368842da73d4ed501df21b61daf71951e59524b))
860 feat(wddebugger): enable repl (with autocomplete) for browser.pause
861
862 See https://github.com/angular/protractor/blob/master/docs/debugging.md for
863 usage.
864
865- ([9c9ed31](https://github.com/angular/protractor/commit/9c9ed31591f5a3c552222ad7feb1ecd650973902))
866 feat(launcher): allow multicapabilities to take array of promises
867
868 Enables adding `getMultiCapabilities: function(){}` to your configuration file. The function
869 returns either multiCapabilities or a promise of a multiCapabilities that is resolved after
870 `beforeLaunch` and before driver set up. If this is specified, both capabilities and
871 multiCapabilities will be ignored.
872
873 Also allows specifying `seleniumAddress` in the capabilities/multiCapabilities object, which will
874 override the global `seleniumAddress`. This allows you to use a different `seleniumAddress` per
875 capabilities.
876
877 Breaking Changes:
878 `capabilities` can no longer be a promise. Use getMultiCapabilities if you need to return a
879 promise.
880 `seleniumAddress` can no longer be a promise. Likewise, use getMultiCapabilities.
881
882- ([1670384](https://github.com/angular/protractor/commit/167038499aacfd5def03472f9f548529b273e1e0))
883 feat(runner): allow protractor to restart browser between tests
884
885 Enables adding `restartBrowserBetweenTests: true` to your configuration file. Note that this will
886 slow down test suites considerably. Closes #1435
887
888- ([56beb24](https://github.com/angular/protractor/commit/56beb24b9473ceedc491f3ca00fbce1bb9a18f29))
889 feat(protractor): add browser.getRegisteredMockModules()
890
891 Now `browser.getRegisteredMockModules()` returns a list of the functions or strings that have
892 been registered as mock modules. For troubleshooting.
893
894 Closes #1434.
895
896- ([5a404c2](https://github.com/angular/protractor/commit/5a404c27326fdb130e5d4ac5c4704b4013c78853))
897 feat(timeline): add timeline plugin
898
899 This plugin gathers test timeline information from the protractor test process, the selenium
900 client logs (if available), and sauce labs (if available), and presents the output visually. This
901 improves understanding of where latency issues are in tests. See #674
902
903 Usage:
904
905 Add the plugin to your configuration file:
906
907 ```js
908 exports.config = {
909 plugins: [{
910 path: 'node_modules/protractor/plugins/timeline/index.js',
911
912 // Output json and html will go in this folder.
913 outdir: 'timelines',
914
915 // Optional - if sauceUser and sauceKey are specified, logs from
916 // SauceLabs will also be parsed after test invocation.
917 sauceUser: 'Jane',
918 sauceKey: 'abcdefg'
919 }],
920 // other configuration settings
921 };
922 ```
923
924- ([a9d83f7](https://github.com/angular/protractor/commit/a9d83f7ebbce1be7f7f8c2986d1bfebccff1d6f3))
925 feat(plugins): add postResults hook for plugins
926
927 Allows plugins to include a postResults function, which will be called after webdriver has been
928 quit and the environment has been torn down. This step may not modify the contents of the test
929 results object.
930
931## Dependency Version Upgrades
932
933- ([2b4ac07](https://github.com/angular/protractor/commit/2b4ac07eaccafec2ad88c05747a75268a3529759))
934 feat(webdriver): version bumps for chromedriver and supported browsers
935
936 Chromedriver to 2.13. CI browser version bumps for Chrome 39 and Firefox 34.
937
938
939## Bug Fixes
940
941- ([adf30ba](https://github.com/angular/protractor/commit/adf30ba701d2a1ec992912001723de19366bea57))
942 fix(test): use a platform agnostic way to run minijasminenode
943
944- ([50ee0b4](https://github.com/angular/protractor/commit/50ee0b4d1a1b93cedf3d099d349b937b25ee9e79))
945 fix(test): allow to run 'npm start' or 'npm test' from windows too
946
947- ([b28355d](https://github.com/angular/protractor/commit/b28355dabde4c507ac620b973104e98e96279f2a))
948 fix(cucumber): emit on cucumber scenario instead of step
949
950- ([33dcd77](https://github.com/angular/protractor/commit/33dcd777fe34c6682b64bda0adc4f3595b03394b))
951 fix(util): webdriver could deadlock
952
953 when prepare scripts containing promises are wrapped in a flow.execute
954
955- ([a877268](https://github.com/angular/protractor/commit/a877268f35cb0df8f34f60b71ad7201fef58d189))
956 fix(locators): ng-repeat-start should not return extra null element
957
958- ([d505249](https://github.com/angular/protractor/commit/d505249fff773d0eaee8b17435ab751be8fbefa6))
959 fix(waitforangular): improve error messages when waitForAngular fails
960
961 Previously, caught errors were being interpreted as an empty object, causing lots of errors such
962 as
963 'Uncaught exception: Error while waiting for Protractor to sync with the page: {}' Now the error
964 message will be displayed, and a more useful custom message will be thrown if the variable
965 'angular' is not present or the root element is not part of the ng-app.
966
967 See #1474
968
969## Breaking Changes
970
971- Due to ([9c9ed31](https://github.com/angular/protractor/commit/9c9ed31591f5a3c552222ad7feb1ecd650973902))
972 feat(launcher): allow multicapabilities to take array of promises
973
974 Breaking Changes:
975 `capabilities` can no longer be a promise. Use getMultiCapabilities if you need to return a
976 promise.
977 `seleniumAddress` can no longer be a promise. Likewise, use getMultiCapabilities.
978
979 Why is this breaking change not causing a major version bump? This feature was
980 not fully supported previously and we worked with all known users when making
981 the change.
982
983
984# 1.5.0
985
986## Features
987
988- ([55a91ea](https://github.com/angular/protractor/commit/55a91ea137395891248db148df75dd6408c3b3a2))
989 feat(launcher): reorganize launcher + add option to store test results as JSON
990
991 You may now use `config.resultJsonOutputFile` to specify a location for
992 output. See docs/referenceConf.js for more usage.
993
994- ([6a88642](https://github.com/angular/protractor/commit/6a886425a11b28fce83b6eec1f52296c4f78b7f0))
995 feat(plugins): basic tools for adding plugins
996
997- ([2572feb](https://github.com/angular/protractor/commit/2572febe2c607d459a21e2ba99a1dcece2083d2d))
998 feat(plugin): ngHint plugin
999
1000 For information on usage, see `plugins/ngHintPlugin.js`. More documentation
1001 on plugins will be added soon.
1002
1003- ([0bbfd2b](https://github.com/angular/protractor/commit/0bbfd2b6d38392938781d846ad37b5a0fd964004))
1004 feat(protractor/runner): allow multiple browser in test
1005
1006 Closes https://github.com/angular/protractor/issues/381
1007 Usage: `browser.forkNewDriverInstance`.
1008
1009- ([8b5ae8b](https://github.com/angular/protractor/commit/8b5ae8ba3d2b3f1de75c0add91694e39e9c591a8))
1010 feat(troubleshoot): Add more information when the --troubleshoot flag is used
1011
1012 Improve error messages and add debug info when
1013 - the configuration file cannot be parsed
1014 - a webdriver session cannot be started
1015 - more than one element is found using `element`
1016
1017 Unify format used for warnings and errors.
1018
1019## Bug Fixes
1020
1021- ([30023f2](https://github.com/angular/protractor/commit/30023f2689171bc4f51a173d9cfd62a18fe276c5))
1022 fix(runner): setTestPreparer does not work
1023
1024 setTestPreparer would always set the testPrepare to config.onprepare during
1025 `runner.run()`. This is breaking for code that relies on setTestPreparer directly.
1026
1027- ([47f12ba](https://github.com/angular/protractor/commit/47f12ba31754346062a1e1d20380346a1c7a0659))
1028 fix(clientsidescripts): make findByCssContainingText tolerate elements with no
1029 textContent/innerText
1030
1031- ([6a9b87c](https://github.com/angular/protractor/commit/6a9b87cac9b85cde6ae464eafe4abbba27e4fe4f))
1032 fix(elementexplorer): eval always treat result as promise
1033
1034- ([289dbb9](https://github.com/angular/protractor/commit/289dbb91a0676add40c12bb85d134904c57dcefd))
1035 fix(util): properly handle exceptions from onPrepare and onExit
1036
1037- ([a132fac](https://github.com/angular/protractor/commit/a132fac0afed5dc5fe8e2663e5aa1c1a90586920))
1038 fix(jasmine): fix errors when iit was used
1039
1040 Errors were due to Jasmine not calling reportSpecStarting when iit was used, but calling
1041 reportSpecResults.
1042
1043 Closes #1602
1044
1045## Breaking Changes
1046
1047- ([0bbfd2b](https://github.com/angular/protractor/commit/0bbfd2b6d38392938781d846ad37b5a0fd964004))
1048 feat(protractor/runner): allow multiple browser in test
1049
1050 `protractor.getInstance()` had been unused (replaced by global `browser` in v0.12.0)
1051 and is now removed.
1052
1053 Before:
1054 ```js
1055 var myBrowser2 = protractor.getInstance();
1056 ```
1057
1058 After:
1059 ```js
1060 // In normal tests, just use the exported global browser
1061 var myBrowser2 = browser;
1062 ```
1063
1064 If you are creating your own instance of the Protractor class, you may still
1065 use `protractor.wrapDriver` as before.
1066
1067
1068# 1.4.0
1069
1070## Features
1071
1072- ([adef9b2](https://github.com/angular/protractor/commit/adef9b208fcba2a9d60347bda38a3fe3fac6bf50))
1073 feat(runner): add a new method of getting browser drivers - directConnect
1074
1075 directConnect as an option on the configuration will replace chromeOnly. Now, WebDriverJS allows
1076 Firefox to be used directly as well, so directConnect will work for Chrome and Firefox, and throw
1077 an error if another browser is used.
1078
1079 This change deprecates but does not remove the chromeOnly option.
1080
1081- ([0626963](https://github.com/angular/protractor/commit/06269636f52f9b3a9c73beb6191ae89a7a376cfb))
1082 feat(config): Option to exclude test for specific capability
1083
1084 Add the option to exclude spec files for a specific capability. This way you can ignore spec
1085 files for one capability only. For example if the test is known to fail in the capability.
1086
1087 Closes #1230
1088
1089- ([710cad7](https://github.com/angular/protractor/commit/710cad7c5a2d838a0c4184defa1b7d4240f577f6))
1090 feat(runner/frameworks): Change interface contract of the protractor runner instance so that it
1091 returns a promise instead of calling a callback function
1092
1093- ([50f44f4](https://github.com/angular/protractor/commit/50f44f430851cbd76dbb3a41d6071198f6f479a4))
1094 feat(protractor): add clone methods for ElementFinder and ElementArrayFinder
1095
1096- ([eedf50b](https://github.com/angular/protractor/commit/eedf50b48ca55f18e8555ce5aa64ad92b03887c8))
1097 feat(launcher): add beforeLaunch and afterLaunch
1098
1099- ([8dd60b7](https://github.com/angular/protractor/commit/8dd60b73a3013bd29213c8d281819da6e545c7ff))
1100 feat(protractor): wrap negative indices for ElementArrayFinder.get(i)
1101
1102 Closes #1213
1103
1104- ([be236e7](https://github.com/angular/protractor/commit/be236e7f44c5306df36b62bb21bb3ba940c86944))
1105 feat(debugging): use custom messages when executing scripts to improve stack traces
1106
1107 Now, instead of asynchronous events during executeScript all being described as
1108 `WebDriver.executeScript`, they have their own custom messages. The schedule shown when debugging
1109 will be more informative.
1110
1111## Dependency Version Upgrades
1112
1113- ([889a5a7](https://github.com/angular/protractor/commit/889a5a70c1f980d09a615cf1e8ceaea33272ba8e))
1114 feat(webdriver): version bumps for webdriver, chromedriver, webdriverJS
1115
1116 Upgrade to WebDriver 2.44.0 and ChromeDriver 2.12.
1117
1118## Bug Fixes
1119
1120- ([2fbaf52](https://github.com/angular/protractor/commit/2fbaf52fd59f03929e173ebf760a97de34bf91d4))
1121 fix(element): use the root element only to find the testability API, not scope searches
1122
1123 In 9a8f45a a change was introduced which made Protractor's custom locators (by.binding, by.model,
1124 etc) use config.rootElement as the root for all their searches. This meant that
1125 config.rootElement was used both to specify how to get hold of Angular's injector as well as
1126 where to begin searching for elements. This does not work for all cases, for example if a dialog
1127 should be searched for elements but is a sibling, not a child, of ng-app.
1128
1129 This reverts that change, and uses document as the parent for all searches. This is consistent
1130 with the behavior of the native locators by.id, by.css, and friends, which do not scope their
1131 search based on config.rootElement.
1132
1133- ([9db5327](https://github.com/angular/protractor/commit/9db5327e4ada7eb3caa271b394bcda0ba5e8fd62))
1134 fix(ElementFinder): ElementFinder should allow null as success handler. Passes the value to the
1135 next in the chain.
1136
1137- ([0858280](https://github.com/angular/protractor/commit/0858280db156f924ef126c3aaeae6973b8d44067))
1138 fix(locators): by.cssContainingText now operates on pre-transformed text
1139
1140 Previously, the implementation depended on the browser. Now, it will always operate on the text
1141 before text-transform is applied. Closes #1217
1142
1143- ([1a4eea4](https://github.com/angular/protractor/commit/1a4eea4eb89362822dc86be6904c1ddfba95661e))
1144 fix(elementexplorer): elementexplorer hangs when returning ElementFinder
1145
1146- ([f4e6b40](https://github.com/angular/protractor/commit/f4e6b40c597dc1c59dc7eccfe236abcc336a46a9))
1147 fix(runner): webdriver could get into lock when there is async promise
1148
1149- ([cf284b9](https://github.com/angular/protractor/commit/cf284b994fb6766c8ab34d0af9b4ccf8fd866bd1))
1150 fix(clientsidescripts): by.exactBinding not working because of regex typo
1151
1152 Closes #1441
1153
1154- ([9cc0f63](https://github.com/angular/protractor/commit/9cc0f6398146ed9bfc757c1efc05d1806bab1e16))
1155 fix(runner): gracefully shutdown browsers after test
1156
1157- ([86ead2c](https://github.com/angular/protractor/commit/86ead2c5a20d474e59c3b9796b5438dc2090a6ed))
1158 fix(webdriver-manager): Avoid incompatibility between request with callback and pipe.
1159
1160- ([7283fdf](https://github.com/angular/protractor/commit/7283fdfa1e4c69bcab6af8f28f8f1b77634a50fd))
1161 fix(launcher): exit code is always 100 for sharded and 1 for nonsharded tests
1162
1163# 1.3.1
1164
1165## Bug Fixes
1166
1167- ([714e4e2](https://github.com/angular/protractor/commit/714e4e28ab90fb5dfeca4375a68469ef609e2722))
1168 fix(locators): fix regression passing root element to locator scripts
1169
1170 Closes #1378
1171
1172# 1.3.0
1173
1174## Features
1175
1176- ([4f1fe68](https://github.com/angular/protractor/commit/4f1fe68882dedba662752e722b9e7b76bfed19b6))
1177 feat(runner): Allow onCleanup to accept a file
1178
1179- ([548f0c0](https://github.com/angular/protractor/commit/548f0c09748502cb6ae87e602db09e6df78df348))
1180 feat(webdriver): bump WebDriver to version 2.43
1181
1182- ([466b383](https://github.com/angular/protractor/commit/466b3831569dc28c5fc2be31fbdf96574e57c3f0))
1183 feat(protractor): allow advanced features for ElementArrayFinder
1184
1185 changed ElementFinder as a subset of an ElementArrayFinder.
1186
1187 This enables actions on ElementArrayFinders, such as:
1188 `element.all(by.css('.foo')).click()`
1189
1190 The function `filter` now returns an ElementArrayFinder, so you may also do:
1191 `element.all(by.css('.foo')).filter(filterFn).click()`
1192
1193 or
1194
1195 `element.all(by.css('.foo')).filter(filterFn).last().click()`
1196
1197- ([7bd2dde](https://github.com/angular/protractor/commit/7bd2dde0a6fca8c8481ad68d0683b4f411d611b9))
1198 chore(angular): upgrade angular to version 1.3.
1199
1200 This change updates Protractor's test application from 1.2.9 to 1.3.0-r0.
1201
1202 There is a significant behind-the-scenes change in the implementation of locating elements and
1203 waiting for the page to be stable. If you are updating your application to Angular 1.3, you may
1204 run into some changes you will need to make in your tests:
1205
1206 - `by.binding` no longer allows using the surrounding `{{}}`. Previously, these
1207 were optional.
1208 Before: `var el = element(by.binding('{{foo}}'))`
1209 After: `var el = element(by.binding('foo'))`
1210
1211 - Prefixes `ng_` and `x-ng-` are no longer allowed for models. Use `ng-model`.
1212
1213 - `by.repeater` cannot find elements by row and column which are not children
1214 of the row. For example, if your template is
1215 `<div ng-repeat="foo in foos">{{foo.name}}</div>`
1216 Before: `var el = element(by.repeater('foo in foos').row(2).column('foo.name'))`
1217 After: You may either enclose `{{foo.name}}` in a child element or simply use:
1218 `var el = element(by.repeater('foo in foos').row(2))`
1219
1220- ([ee82f9e](https://github.com/angular/protractor/commit/ee82f9e3d0656b3c88f041f0115743352bc08941))
1221 feat(webdriver-manager): ignore ssl checks with --ignore_ssl option
1222
1223 Allow ability to ignore SSL checks when downloading webdriver binaries. Usage: `webdriver-manager
1224 update --ignore_ssl`
1225
1226## Bug Fixes
1227
1228- ([838f5a2](https://github.com/angular/protractor/commit/838f5a2b248b1539b7ece13a8ccb921eda08ee45))
1229 fix(element): isPresent should not throw on chained finders
1230
1231 Now, `$('nonexistant').$('foo').isPresent()` will return false instead of throwing an error. This
1232 change also adds tests that ensure that catching errors from promises works as expected.
1233
1234## Breaking Changes
1235
1236- ([f7c3c37](https://github.com/angular/protractor/commit/f7c3c370a239218f6143a4992b1fc4763f4cdd3d))
1237 feat(webdriver): update to WebDriverJS 2.43.5
1238
1239 Breaking Changes WebDriverJS has introduced changes in the way that Promises are handled in
1240 version 2.43. See
1241 https://github.com/SeleniumHQ/selenium/blob/master/javascript/node/selenium-webdriver/CHANGES.md
1242 - `webdriver.WebElement` has now been split into `webdriver.WebElementPromise`
1243 and `webdriver.WebElement` so that it does not resolve to itself. This change
1244 should be largely transparent to users.
1245 - `WebElement.toWireValue` has been removed.
1246
1247
1248# 1.2.0
1249
1250## Features
1251
1252- ([830f511](https://github.com/angular/protractor/commit/830f51128d1ca6c8858c99617b2752172044a752))
1253 feat(protractor): allow file:// baseUrls
1254
1255 Modified protractor to support testing node-webkit by using string concatenation vs url.resolve()
1256 when the baseUrl begins with file://
1257
1258 Closes #1266.
1259
1260- ([71b9c97](https://github.com/angular/protractor/commit/71b9c97432316a8409c7c83e28a3b1eba2d83f25))
1261 feat(cucumber): process the Cucumber 'coffee' param
1262
1263## Bug Fixes
1264
1265- ([ade9a92](https://github.com/angular/protractor/commit/ade9a9277558a564e15e46266a82aeb43261d958))
1266 fix(webdriver-manager): always use https for downloading webdriver binaries
1267
1268 This fixes issues with unzipping - see #1259
1269
1270- ([9a8f45a](https://github.com/angular/protractor/commit/9a8f45af49633f1637c88960ba079d7d425ca72c))
1271 fix(locators): locators should use the root element provided in config
1272
1273 Previously, locators used 'document' as the root for their search. After this change, they will
1274 use the root element provided in the config file -
1275 `config.rootElement`. This will make sure behavior is correct if there are multiple angular apps
1276 on one page, and also enables the getTestability path, because that requires a root element under
1277 an ng-app.
1278
1279# 1.1.1
1280This is a minor release with no functional changes. It contains a couple
1281implementation switches that new versions of Angular will use.
1282
1283# 1.1.0
1284
1285## Features
1286
1287- ([316961c](https://github.com/angular/protractor/commit/316961c6a5d7410d73a2784a9622b106008b0930))
1288 feat(runner/hosted): add support for promises for seleniumAddress and capabilities
1289
1290 Change driverProviders/hosted to resolve promise values in configuration to allow async jobs in
1291 setup. Specifically, seleniumAddress, capabilities, and multiCapabilities may be promises.
1292 Primarily, this would be for a network call to acquire a selenium host or to start a proxy
1293 server.
1294
1295- ([953faf7](https://github.com/angular/protractor/commit/953faf7ebee345f686bfedff61ebcb29c5170083))
1296 feat(runner): allow onPrepare functions to return a promise
1297
1298 If onPrepare is a function which returns a promise (or a file which exports a promise), the test
1299 runner will now wait for that promise to be fulfilled before starting tests.
1300
1301- ([6de2e32](https://github.com/angular/protractor/commit/6de2e32328fc30b43428973457db08f34b7c1839))
1302 feat(runner): Add support for async onCleanUp functions
1303
1304 If the onCleanUp function returns a promise, the process will allow it to resolve before exiting.
1305 This is useful for performing async operations like writing to a file or calling an API at the
1306 end of a test run.
1307
1308- ([cd575ee](https://github.com/angular/protractor/commit/cd575ee3a4d8c0930db23ad66649bf0d665ce2d6))
1309 feat(sauce provider): allow for custom server addresses when running against SauceLabs.
1310
1311 Use `config.sauceSeleniumAddress` to connect to a custom URL for Sauce Labs.
1312
1313- ([1b16c26](https://github.com/angular/protractor/commit/1b16c26ac143910d3f3e92a3db4ac6ab168a8544))
1314 feat(suites): allow more than one suite from the command line
1315
1316 Allow a comma-separated list of suites be provided on the command line, like
1317 `--suite=suite1,suite2`
1318
1319- ([25cf88c](https://github.com/angular/protractor/commit/25cf88c29449cef6b925d19ec9cd17671f1befc9))
1320 feat(ElementArrayFinder): keep a reference to the original locator
1321
1322## Bug Fixes
1323
1324- ([d15d35a](https://github.com/angular/protractor/commit/d15d35a82a5a267bb7ae9c675017f091901c019f))
1325 fix issue where ElementFinder.then does not return a promise
1326
1327 See https://github.com/angular/protractor/issues/1152
1328
1329- ([9e36584](https://github.com/angular/protractor/commit/9e365848820a9a56547e884592e5ea13ef8460ea))
1330 fix(webdriver-manager): removed ssl on chromedriver url for consistency
1331
1332 Other URLs use http, make chromedriver use this as well.
1333
1334- ([0da1e0c](https://github.com/angular/protractor/commit/0da1e0c65ba7a2b55ad2f5a4582e229dd876f940))
1335 fix(protractor): add dummy isPending function
1336
1337 See https://github.com/angular/protractor/issues/1021
1338
1339- ([9814af1](https://github.com/angular/protractor/commit/9814af11f35973f0b4a3325fcd0d9e0d91233e61))
1340 fix issue where color formatting text is leaking
1341
1342 See https://github.com/angular/protractor/issues/1131
1343
1344- ([8f1b447](https://github.com/angular/protractor/commit/8f1b4472430ec2d24f102d284e807b073d17ad81))
1345 fix(launcher): fix issue where test passes on unexpected failures
1346
1347
1348# 1.0.0
1349
1350No changes from rc6.
1351
1352# 1.0.0-rc6
1353
1354## Dependency Version Upgrades
1355
1356- ([b6ab644](https://github.com/angular/protractor/commit/b6ab644dd8105d3f64e347342a0ae2ad2f0100fc))
1357 chore(jasminewd): update to version 1.0.4
1358
1359 This version contains a fix for too many timeout messages.
1360
1361## Bug Fixes
1362
1363- ([0c4a70e](https://github.com/angular/protractor/commit/0c4a70e0ffbbf4373dbd9f1ab29daabe9338d57b))
1364 fix(protractor) fix stack traces for WebElement errors
1365
1366 When angular/protractor@3c0e727136ab3d397c1a9a2bb02692d0aeb9be40 refactored `element()` into the
1367 ElementFinder object, the function lost some of its error handling. This removed references to
1368 frames inside tests (`it()` blocks), making it hard to tell where the error was actually
1369 occurring.
1370
1371 This commit fixes these problems, showing full stack traces for WebElement errors.
1372
1373# 1.0.0-rc5
1374
1375## Features
1376
1377- ([51a5e89](https://github.com/angular/protractor/commit/51a5e89f7dace45e61d8eab70e1ea6e9354d4de6))
1378 feat(config): allow setting the get page timeout globally from the config
1379
1380 To change the timeout for how long a page is allowed to stall on `browser.get`, change
1381 `getPageTimeout: timeout_in_millis` in the configuration. As before, you may also change the
1382 timeout for one particular `get` call by using a second parameter:
1383 `browser.get(url, timeout_in_sec)`
1384
1385## Bug Fixes
1386
1387- ([985ff27](https://github.com/angular/protractor/commit/985ff27c9a94cca83af8db5bf7e570d826b23838))
1388 fix(configParser): load new functions from configs
1389
1390 Closes #1043
1391
1392## Breaking Changes
1393
1394- ([51a5e89](https://github.com/angular/protractor/commit/51a5e89f7dace45e61d8eab70e1ea6e9354d4de6))
1395 feat(config): allow setting the get page timeout globally from the config
1396
1397 This change contains a small breaking change for consistency. Previously, the second parameter to
1398 `get` changed the timeout in seconds. Now, the units are milliseconds. This is consistent with
1399 all the other timeouts, as well as base JavaScript functions like setTimeout.
1400
1401 - before: `browser.get(url, 4)`
1402 - after: `browser.get(url, 4000)`
1403
1404# 1.0.0-rc4
1405
1406## Bug Fixes
1407
1408- ([ab1d0be](https://github.com/angular/protractor/commit/ab1d0be8cd83b37906b9b8750dd9d85d72))
1409 fix(navigation): fix using browser.get with safari driver
1410
1411 SafariDriver fails with data urls - see #1049. Reverting to use about:blank for now.
1412
1413# 1.0.0-rc3
1414
1415## Features
1416
1417- ([f0e7984](https://github.com/angular/protractor/commit/f0e7984cdd169df947142c1cff0bd1bc33ac995b))
1418 feat(launcher): append capability tag for all output
1419
1420## Bug Fixes
1421
1422- ([1198dde](https://github.com/angular/protractor/commit/1198ddef9e353383819fca3a40bdaba0db22f96f))
1423 fix(navigation): use empty html data urls for page resets instead of about:blank
1424
1425 Except on internet explorer, which does not allow data urls.
1426
1427 Closes #1023.
1428
1429# 1.0.0-rc2
1430
1431## Dependency Version Updates
1432
1433- ([e10e1a4](https://github.com/angular/protractor/commit/e10e1a4a8ae5013982f00d209e6fab1ff2b1d2a1))
1434 chore(minijasminenode): update minijasminenode dependency to v1.1.0
1435
1436 This adds several options for the reporter, which can be included in protractor's
1437 `config.jasmineNodeOpts`
1438 ```js
1439 // If true, output nothing to the terminal. Overrides other printing options.
1440 silent: false,
1441 // If true, print timestamps for failures
1442 showTiming: true,
1443 // Print failures in real time.
1444 realtimeFailure: false
1445 ```
1446
1447- ([be0bb00](https://github.com/angular/protractor/commit/be0bb00db6f51e381e31e80c6808a202270ecb20))
1448 chore(jasminewd): update jasminewd to v1.0.3
1449
1450 This fixes extra logging when a timeout occurs.
1451
1452## Features
1453
1454- ([82c1d47](https://github.com/angular/protractor/commit/82c1d47462779688bb8c9ac74ba3a6ecfefb7775))
1455 feat(protractor): add iteration index to ElementArrayFinder.each
1456
1457- ([62bcf7e](https://github.com/angular/protractor/commit/62bcf7e1c84ed720bc17435c40e1f78c50ba194c))
1458 feat(webdriver-manager): minor proxy enhancements
1459
1460 Added error handling for request - previously, any errors coming from the request module were
1461 silently swallowed.
1462
1463 Fixed error handling to remove empty files when a download fails for some reason.
1464
1465 Also evaluating both uppercase and lowercase proxy variables. Many tools use proxy variables in
1466 the form https_proxy, others use HTTPS_PROXY.
1467
1468## Bug Fixes
1469
1470- ([dbf7ab5](https://github.com/angular/protractor/commit/dbf7ab5fdf7832676f37328e2ad96b9097db3f62))
1471 fix(mocha): mocha globals should be re-wrapped for every new suite
1472
1473 Closes #523, closes #962
1474
1475
1476# 1.0.0-rc1
1477
1478## Dependency Version Updates
1479
1480- ([0dc0421](https://github.com/angular/protractor/commit/0dc04217a6a5b772d42b1463c91d89beca7df258))
1481 chore(selenium): version bumps to selenium 2.42.2
1482
1483## Features
1484
1485- ([6906c93](https://github.com/angular/protractor/commit/6906c9326a4a83d81a0d09bdc1446cccb579d699))
1486 feat(webdriver-manager): use proxy for webdriver-manager
1487
1488- ([7d90880](https://github.com/angular/protractor/commit/7d9088025c5a1c37428ea3f1cee3dc8d3793f79e))
1489 feat(locators): implement by.options
1490
1491- ([4e1cfe5](https://github.com/angular/protractor/commit/4e1cfe5ad0f22947d21b4ebecd7cd05e0319af1a))
1492 feature(launcher): aggregate failures at the end and output message from the launcher
1493
1494- ([ff3d5eb](https://github.com/angular/protractor/commit/ff3d5ebc071a8806259f5da20018f2d937409455))
1495 feat(locators): add toString() wrapper for this.message
1496
1497- ([c892c2a](https://github.com/angular/protractor/commit/c892c2a1a773cc24cc6565efe2db892776143104))
1498 feat(protractor): implement reduce and filter for ElementArrayFinder
1499
1500 See https://github.com/angular/protractor/issues/877
1501
1502- ([8920028](https://github.com/angular/protractor/commit/8920028f42e683dc45e18a6dd9386bd862548010))
1503 feat(pause): allow the user to specify a port to be used for debugging
1504
1505 Using browser.pause(portNumber) will now start the debugger on the specified port number.
1506
1507 Closes #956
1508
1509## Bug Fixes
1510
1511- ([f9082d0](https://github.com/angular/protractor/commit/f9082d0460c7b6465d53c37f326a0f66412c21ce))
1512 fix(clientsidescripts): make exactBinding more exact
1513
1514 See https://github.com/angular/protractor/issues/925
1515
1516- ([6641c81](https://github.com/angular/protractor/commit/6641c8168d74914d4826c5968771a2aec8299833))
1517 fix(launcher): report summary when specs fail
1518
1519- ([36e0e0a](https://github.com/angular/protractor/commit/36e0e0aaf090b0c9b5450fa59ba2da4c4237442a))
1520 fix(protractor): allow exceptions from actions to be catchable
1521
1522 See https://github.com/angular/protractor/issues/959
1523
1524- ([e86eb72](https://github.com/angular/protractor/commit/e86eb726ad20737d463341afdb4c56b4d19ef414))
1525 fix(protractor): removing a mock module that was never added now is a noop
1526
1527 It used to remove the last module - now is a noop.
1528
1529 Closes #764
1530
1531- ([bf26f76](https://github.com/angular/protractor/commit/bf26f76ba5dc99d02ea4cd7fc198dce410a9f58c))
1532 fix(locators): findind elements by text should trim whitespace
1533
1534 WebDriver always trims whitespace from around the text of an element, so to be consistent we
1535 should trim the text from button elements before doing a by.buttonText.
1536
1537 Closes #903, Closes #904.
1538
1539- ([48798b0](https://github.com/angular/protractor/commit/48798b0a8ac1fc56d0cdd80e177d67fdf592069c))
1540 fix(elementexplorer): element.all hangs in interactive mode
1541
1542# 0.24.2
1543_Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time._
1544
1545## Bug Fixes
1546
1547- ([a43f983](https://github.com/angular/protractor/commit/a43f98391d36cead7378d1dd26f54248f39300b7))
1548 fix(protractor): make ElementFinder.then resolve to itself instead of null
1549
1550- ([31d42a3](https://github.com/angular/protractor/commit/31d42a3875c5b95893d8a20d00dc5365c289ff98))
1551 fix(protractor): throw index-out-of-bounds
1552
1553 See https://github.com/angular/protractor/issues/915
1554 - to make error more specific instead of propagate later
1555
1556# 0.24.1
1557_Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time._
1558
1559## Bug Fixes
1560
1561- ([59af936](https://github.com/angular/protractor/commit/59af936e1ef6e21432f7876144554db145083d46))
1562 fix(locators): Missing information in warning/error messages
1563
1564 Webdriver's built-in locators (such as `by.css()`) appeared as
1565 'undefined' in protractor's messages.
1566
1567 For instance, if a locator matched multiple elements, protractor would print the following
1568 message: 'warning: more than one element found for locator undefined- you may need to be more
1569 specific'.
1570
1571- ([13373f5](https://github.com/angular/protractor/commit/13373f5de18690e1994b32e092105cfe3ad1753d))
1572 fix(launcher): output error messages when child processes exit with error
1573
1574 Version 0.24.0 introduced a bug where child processes would error without outputting the error
1575 message. Fix. See #902.
1576
1577- ([72668fe](https://github.com/angular/protractor/commit/72668fe5ebbdc8126ff16887814f763198128ab5))
1578 fix(cssShortcut): fix $$ global throwing error
1579
1580# 0.24.0
1581_Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time._
1582
1583## Features
1584
1585- ([7299155](https://github.com/angular/protractor/commit/729915554cfa440bda0eec8a1c4bf423f4089481))
1586 feat(sauceprovider): append spec filename to capabilities.name
1587
1588- ([f22456d](https://github.com/angular/protractor/commit/f22456d3cf0768a577371776d716b8888a74397d))
1589 refactor(jasminewd): use jasminewd from its own node module
1590
1591 The Jasmine Webdriver Adapter is now its own npm module. The code has been moved to
1592 http://www.github.com/angular/jasminewd.
1593
1594 Remove the code from Protractor, and add a dependency on jasminewd@1.0.0.
1595
1596- ([f23565d](https://github.com/angular/protractor/commit/f23565d5db4fbb102cfec8311ce9dfaee52e9113))
1597 feat(protractor): new API allowAnimations(bool) on protractor elements.
1598
1599- ([876a3c0](https://github.com/angular/protractor/commit/876a3c04c07a9f8d97e1edca3ec1f76e51e1a310))
1600 feat(runner): support running dart2js spec files
1601
1602 This commit supports running Dart2JS output in NodeJS. Officially, Dart2JS in supposed to only
1603 generate code for running in a real webbrowser. With this patch, the dart2js code can also be
1604 executed in NodeJS.
1605
1606 Ref:
1607 https://code.google.com/p/dart/source/browse/branches/bleeding_edge/dart/sdk/lib/js/dart2js/js_dart2js.dart?spec=svn32943&r=32943#487
1608
1609- ([8d46e21](https://github.com/angular/protractor/commit/8d46e210b91ed1521f6692a2cf35f60740c0ace6))
1610 feat(runner): support sourcemaps in spec files
1611
1612 This feature allows folks who are generating their spec files from a different language to see
1613 stack traces that use the line numbers from their sources before translation.
1614
1615 This commit introduces a dependency on the `source-map-support` library.
1616
1617 For general information about sourcemaps, refer:
1618 - http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/
1619 - https://github.com/evanw/node-source-map-support
1620 - https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/view
1621
1622## Bug Fixes
1623
1624- ([56daa54](https://github.com/angular/protractor/commit/56daa54e2e269064bd44bc05ed0bbf2c44657ca8))
1625 fix(clientsidescripts): convert non-Error exceptions to Errors
1626
1627 If any functions called by clientSideScripts throws a an exception that doesn't inherit from
1628 `Error`, the stack trace is completely unhelpful and the message is just "unknown error."  This
1629 commit wraps such errors into
1630 `Error` instances so that we have meaningful stack traces and the correct exception message. 
1631 (e.g. This is the common case when running dart2js code.  This commit gives us the Dart stack
1632 trace and exception message.)
1633
1634 In addition, I've pushed the construction of the string to install into the browser into
1635 clientsidescripts.js.
1636
1637- ([00c6abe](https://github.com/angular/protractor/commit/00c6abef16c47868974eed8ad1a4c38494b2a504))
1638 fix(element): fix WebElement.$ using the incorrect By object
1639
1640 Closes #852
1641
1642- ([0500b2c](https://github.com/angular/protractor/commit/0500b2c3b2698fe41bedf694b92aad884f3b0d0e))
1643 fix(navigation): ignore unknown JS errors when looking for the URL
1644
1645 This should address #841
1646
1647 Ignoring the error and trying again has worked for all of my test cases, and the error has never
1648 occurred more than once in a row.
1649
1650- ([c8c85e0](https://github.com/angular/protractor/commit/c8c85e0d94d7a7211b000650f01af714663611ad))
1651 fix(locators): fix by.repeater finding all rows for IE
1652
1653 Previously, element.all(by.repeater('foo in foos')) would find non-element nodes for
1654 ng-repeat-start elements, which could cause IEDriver to fall over if the test tried to get text
1655 from those nodes.
1656
1657## Breaking Changes
1658
1659- ([3c0e727](https://github.com/angular/protractor/commit/3c0e727136ab3d397c1a9a2bb02692d0aeb9be40))
1660 refactor(protractor): reorganize internal structure of elementFinder/webelement
1661
1662 - Allow chaining of actions (i.e. `element(By.x).clear().sendKeys('abc')`)
1663 - first(), last(), and get(index) are not executed immediately, allowing
1664 them to be placed in page objects
1665 - Rework the way that elementFinder and wrappedWebElement is represented
1666 - Breaking changes:
1667 - element.all is chained differently
1668 ```
1669 Before: element(By.x).element.all(By.y)
1670 Now: element(By.x).all(By.y)
1671
1672 However, using element.all without chaining did not change,
1673 i.e. `element.all(By.x)`
1674 ```
1675
1676 - Changed the way for retrieving underlying webElements
1677 ```
1678 Before: element(By.x).find(), element(By.x).findElement(By.y),
1679 and element(By.x).findElements(By.y)
1680 Now: element(By.x).getWebElement(),
1681 element(By.x).element(By.y).getWebElement(),
1682 and element(By.x).element(By.y).getWebElements(),
1683 respectively
1684 ```
1685 - browser.findElement returns a raw WebElement so $, $$, and
1686 evaluate will no longer be available
1687
1688- ([fbfc72b](https://github.com/angular/protractor/commit/fbfc72bad15667990232bb9ff1da503e03d16230))
1689 feat(launcher): Add support for maxSession
1690
1691 - add support for maxSession and capability-specific specs
1692 - cleaned up launcher (refactored out taskScheduler.js)
1693 - Breaking change:
1694 - changed the config to shard test files; also sharding is specific to
1695 capabilities now
1696 ```
1697 Before: config.splitTestsBetweenCapabilities
1698 Now: config.capabilities.shardTestFiles or config.multiCapabilities[index].shardTestFiles
1699 ```
1700
1701- ([9e5d9e4](https://github.com/angular/protractor/commit/9e5d9e4abb7d0928e6092a711fda527554994be7))
1702 feat(locators): remove deprecated locator APIs
1703
1704 This is a **breaking change**. The following deprecated Locator APIs have been removed.
1705
1706 - `by.input`
1707 - `by.select`
1708 - `by.selectedOption`
1709 - `by.textarea`
1710
1711 `input`, `select`, and `textarea` can be replaced by `by.model`.
1712
1713 `element(by.selectedOption('foo'))` can be replaced by
1714 `element(by.model('foo')).$('option:checked')`
1715
1716# 0.23.1
1717_Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time._
1718
1719## Bug Fixes
1720
1721- ([59533d9](https://github.com/angular/protractor/commit/59533d95219796ce18f796434f8c3396ada7402c))
1722 fix(navigation): revert changes to the page reset
1723
1724 Navigating to an empty data URL won't work for internet explorer, sadly.
1725
1726 Reverting to about:blank. Will watch for flakes and explore other options.
1727
1728
1729# 0.23.0
1730_Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time._
1731
1732## Features
1733
1734- ([b7afa87](https://github.com/angular/protractor/commit/b7afa8791ba91b83fd6613cdd9ad4c4c26d04f7e))
1735 feat(addMockModule): allow additional parameters
1736
1737 Allow Protractor’s 'addMockModule' method to pass context to its mocks, providing an argument to
1738 the script which overrides a module. Rely on the WebDriver’s 'executeScript' method.
1739
1740 Closes #695
1741
1742- ([546d41f](https://github.com/angular/protractor/commit/546d41faeb75342c875e0f9bb7702309c1aa186d))
1743 feat(sauceprovider): runner now prints a link to saucelabs test URL
1744
1745- ([fd7fe4a](https://github.com/angular/protractor/commit/fd7fe4a8c2c6fab6678d0c1f4d5619f7a2376990))
1746 feat(launcher): Add support for splitTestsBetweenCapabilities.
1747
1748- ([b93bf18](https://github.com/angular/protractor/commit/b93bf18feaf3c44b406a41bf87d70c95e7a900e0))
1749 feat(elementFinder): keep a reference to the original locator
1750
1751- ([98f4ba5](https://github.com/angular/protractor/commit/98f4ba590207e3f468b3cb2a30ff6ab6ae10fea1))
1752 feat(locators): add by.exactBinding
1753
1754## Bug Fixes
1755
1756- ([43ff9e5](https://github.com/angular/protractor/commit/43ff9e5e2a05b4e51d04133122d763ef4ed3f2d1))
1757 fix(jasminewd): allow asynchronous callbacks for jasmine tests
1758
1759 Closes #728, Closes #704
1760
1761- ([6249efe](https://github.com/angular/protractor/commit/6249efe57109d238044394636d623e0bd93dd4ad))
1762 fix(webdriver-manager): use request module instead of http
1763
1764 Google changed selenium-server-standalone.jar's location and is returning 302 http module does
1765 not follow redirects
1766
1767 Closes #826
1768
1769- ([95093c3](https://github.com/angular/protractor/commit/95093c3011431d1a1bdd6ec4d6139a6ff1c3e491))
1770 fix(configParser): don't run suite if specs are supplied
1771
1772- ([27a5706](https://github.com/angular/protractor/commit/27a5706a23e33bc898a5a9c7b301e79f962e3a7b))
1773 fix(loading): fix timeouts with about:blank removal
1774
1775 As documented at https://github.com/jnicklas/capybara/pull/1215 there are sometimes issues with
1776 webdriver and about:blank pages.
1777
1778 Switching instead to try a data url.
1779
1780- ([cbcdb48](https://github.com/angular/protractor/commit/cbcdb483002e51bc3cc4061fd5162627bbac7699))
1781 fix(runner): add -r for each cucumber require
1782
1783- ([e36c32a](https://github.com/angular/protractor/commit/e36c32a975739a99f6d434e1c9844d37382bda3a))
1784 fix(jasminewd): Use promise.all to combine promises and done
1785
1786 - Make the flow promise explicit and use promise.all to wait for both
1787 promises to be fulfilled before calling the done callback
1788
1789- ([b5c18db](https://github.com/angular/protractor/commit/b5c18dbb746e63496809460d6ed6e2100909659e))
1790 fix(drivers): prevent Sauce Labs login credentials from showing up in logs
1791
1792 Closes #754
1793
1794- ([b85af50](https://github.com/angular/protractor/commit/b85af5031241d424e2952db0eb8d7d0c8ce4475b))
1795 fix(protractor): change angular-bootstrap wrapper for navigation
1796
1797- ([8abea3c](https://github.com/angular/protractor/commit/8abea3cbb6f054c20e4f5abcbf61813d5b671239))
1798 fix(jasminewd): fix timeout for beforeEach and afterEach
1799
1800# 0.22.0
1801_Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time._
1802
1803## Features
1804
1805- ([8b088fd](https://github.com/angular/protractor/commit/8b088fd6bf83696fd2ad294d8818e20894332693))
1806 feat(locators): Added a By.cssContainingText locator.
1807
1808 This new locator find elements by css selector and inner text in response to the lack of
1809 ':contains' selector.
1810
1811 Example: By.cssContainingText('ul .pet', 'Dog') will find all ul children with class 'pet'
1812 containing the text 'Dog'.
1813
1814 Closes #488, Closes #709
1815
1816- ([54060b7](https://github.com/angular/protractor/commit/54060b7cef4eb2f4c184c360cef7c2eb25c0ff6a))
1817 feat(protractor): add the browser.setLocation method to perform in-page navigation
1818
1819 Allow a faster way to navigate within the app. The current browser.get method forces the entire
1820 app to load every time you navigate to a new page. The proposed browser.setLocation method uses
1821 the same format as $location.url().
1822
1823 Closes #368
1824
1825- ([74761e8](https://github.com/angular/protractor/commit/74761e8b25395dd78e1c301ee23a7730fef36db9))
1826 feat(cli): use protractor.conf.js as a default config file if none is passed
1827
1828 Closes #615
1829
1830## Chores and updates
1831
1832- ([b81cf5a](https://github.com/angular/protractor/commit/b81cf5a949dee25c9070491edd1eb9e9feee556f))
1833 chore(webdriver): update WebDriverJS version to 2.41.0
1834
1835- ([a96df4d](https://github.com/angular/protractor/commit/a96df4d60a1f2e09de865bf7ca9c5c780f945239))
1836 chore(minijasminenode): update to version 0.4.0.
1837
1838 This allows the use of `because('message')` before expectations, to give additional information
1839 when a failure occurs.
1840
1841 It also removes warnings for Node 0.11.* users about util.print being deprecated.
1842
1843 Closes #377
1844
1845- ([6f31b56](https://github.com/angular/protractor/commit/6f31b5619de4fdb9b1b6e9a29a62dac09b781c6b))
1846 chore(package): npm start now brings up the testapp
1847
1848 Closes #712
1849
1850## Bug Fixes
1851
1852- ([1137d12](https://github.com/angular/protractor/commit/1137d12b95435438d2b84448796f9fe32d2f87b2))
1853 fix(mocha): fix it.only so that it does not double-wrap
1854
1855 Closes #469
1856
1857- ([bde56a0](https://github.com/angular/protractor/commit/bde56a0d92a79570f377490929dd1d05107f4e25))
1858 fix(cli): fix --exclude command line flag
1859
1860 Accidentally got changed to 'excludes'. As discussed earlier, should be single to be consistent
1861 with Karma.
1862
1863 Closes #637
1864
1865- ([9e426df](https://github.com/angular/protractor/commit/9e426dfd300a11f513c5d7202bbb632f4b1c41d8))
1866 fix(locators): using $().$$() should return an ElementArrayFinder
1867
1868 Prior, $(foo).$$(bar) would return a promise which resolved to an array of WebElements. This is
1869 unexpected, since $(foo).$(bar) returns an ElementFinder, and
1870 element(by.css(foo)).element.all(by.css(bar)) returns an ElementArrayFinder. Fixed so things are
1871 more consistent.
1872
1873 Closes #640
1874
1875- ([b67810a](https://github.com/angular/protractor/commit/b67810a08d19940cd144fea25f08af4478166231))
1876 fix(webdriver-manager): do not download files if HTTP response is not 200
1877
1878 Closes #656
1879
1880- ([28912f0](https://github.com/angular/protractor/commit/28912f0a77b44cce19ef5367c92b023388f7ff10))
1881 fix(webdriver-manager): fix download paths
1882
1883# 0.21.0
1884_Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time._
1885
1886## Features
1887
1888- ([0c4ef69](https://github.com/angular/protractor/commit/0c4ef69c1f61a2fb41829fa6d0afae3493148eee))
1889 feat(launcher): launcher outputs a final summary of how the browsers did
1890
1891- ([f1db8b4](https://github.com/angular/protractor/commit/f1db8b438fd154cef241895c01ed902b3f343315))
1892 feat(runner): make runner an event emitter and log passes or failures from the launcher
1893
1894 Now, for runs with multiple capabilities, the launcher will output '.' or 'F' for each pass or
1895 fail instead of just '.' for every chunk of data. TODO - complete the event emitter API for the
1896 Cucumber runner.
1897
1898- ([f9c4391](https://github.com/angular/protractor/commit/f9c43910021095e1bee1d1074e8788f4b0aee145))
1899 feat(cli+config): allow defining multiple test suites in the config and running them separately
1900 from the command line.
1901
1902- ([06bd573](https://github.com/angular/protractor/commit/06bd573cbc2471c719a8504f906468fb672d4097))
1903 feat(pause): add the browser.pause method to enter a webdriver-specific debugger
1904
1905 Warning: this is still beta, there may be issues. Usage: In test code, insert a `browser.pause()`
1906 statement. This will stop the test at that point in the webdriver control flow. No need to change
1907 the command line you use to start the test. Once paused, you can step forward, pausing before
1908 each webdriver command, and interact with the browser. Exit the debugger to continue the tests.
1909
1910## Bug Fixes
1911
1912- ([43aff83](https://github.com/angular/protractor/commit/43aff830bb74aa97fc4704f3aea9ef38feaee1b6))
1913 fix(pageload): Changing how `about:blank` unload waits Also changing `executeScript` script
1914 comment from `//` to `/**/` format. These two small changes should not affect functionality but
1915 make Protractor work with Selendroid.
1916
1917- ([1334662](https://github.com/angular/protractor/commit/1334662905d8d6b642a294fbf1e97ec3bc371084))
1918 fix(locators): Improve custom locators message
1919
1920 Increase readability of custom locator message by displaying each argument instead of the
1921 arguments object.
1922
1923- ([c9dbbaa](https://github.com/angular/protractor/commit/c9dbbaa94e2b4378bcc2db580dcad637b609a868))
1924 refactor(launcher): skip the child process if only one capability is requested
1925
1926 Closes #603
1927
1928- ([26d67a2](https://github.com/angular/protractor/commit/26d67a29a8a12aa52331a1ec4ae8013cf63257f2))
1929 fix(launcher): launcher should report a failure when only one capability is running
1930
1931- ([9530a0c](https://github.com/angular/protractor/commit/9530a0cab2791cb0350f81eae3f619d68fb620c3))
1932 (fix): Convert test.sh to test.js
1933
1934 This would enable the tests to be run on both Linux and Windows.
1935
1936- ([6d85ab4](https://github.com/angular/protractor/commit/6d85ab4b9f3b5824db3307df5aca77a0720dc2e6))
1937 fix(jasminewd): display stack traces in correct order and with WebElement method failure details
1938
1939- ([8964ac9](https://github.com/angular/protractor/commit/8964ac97cb994eb6cf7cf7ce77b7eb40882e852b))
1940 fix(test): Fixed path of configuration file to pass on windows
1941
1942- ([99bda1a](https://github.com/angular/protractor/commit/99bda1aa732288f74126c9a77c48dd7cff63531a))
1943 fix(waitForAngular): when timeout overflows, at least pass the negative to error messages
1944
1945 Closes #622
1946
1947- ([4fd060a](https://github.com/angular/protractor/commit/4fd060a38faa1f938f880fa52746e1a481a9122d))
1948 fix (element): Allow ElementFinder to be passed to actions directly.
1949
1950 Previously, do to an action such as drag and drop, one would have to use
1951 `element(by.foo).find()`. Now, just passing `element(by.foo)` works. For example:
1952
1953 ```javascript
1954 browser.actions().doubleClick(element(by.id('mybutton'))).perform();
1955 ```
1956
1957- ([b2a4ffc](https://github.com/angular/protractor/commit/b2a4ffced58964826125ea00705e6e257cdb588b))
1958 fix(configParser): always return "this" from addFileConfig
1959
1960# 0.20.1
1961_Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time._
1962
1963## Bug Fixes
1964- ([17de697](https://github.com/angular/protractor/commit/17de697fe9f64e238a8df0fbc6358b8e578e45f2
1965 fix(debug): make new debug work on windows too
1966
1967 Closes #580
1968
1969# 0.20.0
1970_Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time._
1971
1972## Features
1973
1974- ([220d793](https://github.com/angular/protractor/commit/220d79372fb93d3b58c5131188b24e48be8176ab)), ([6603a7e](https://github.com/angular/protractor/commit/6603a7e964c8f1632db4790081a71648360cf1f9))
1975 chore(webdriver): update selenium version to 2.40.0 and download location
1976
1977- ([ad5f3aa](https://github.com/angular/protractor/commit/ad5f3aa77fc3429fcf83f825a14fdb43fd7cc8a7))
1978 feat(jasminewd): allow custom matchers to return promises
1979
1980 Allow custom jasmine matchers to return a promise which resolves to a boolean and match against
1981 the resolution of the promise
1982
1983- ([41feaca](https://github.com/angular/protractor/commit/41feaca58c81fbd578c77424abf745acaf26f84f))
1984 feat(framework.cucumber): Allow multiple tags on cucumber tests.
1985
1986 Motivation: Support for multiple tags on the cucumber test execution, to be able to filter with
1987 more complex expressions the scenarios to run.
1988
1989 How to use:
1990 ```
1991 cucumberOpts: {
1992 tags: '@dev'
1993 }
1994 ```
1995
1996 or
1997
1998 ```
1999 cucumberOpts: {
2000 tags: ['@dev', '~@ignore']
2001 }
2002 ```
2003
2004 More information on tags: https://github.com/cucumber/cucumber/wiki/Tags
2005
2006## Bug Fixes
2007
2008- ([2ca6541](https://github.com/angular/protractor/commit/2ca654114a2bf937313ff027583308f87e909892))
2009 fix(debug): make protractor debug work in the new runner/launcher world
2010
2011 Closes #552
2012
2013- ([a68627b](https://github.com/angular/protractor/commit/a68627b3581c0551e04460682cfc13f8f91be366))
2014 fix(launcher): command line args should be passed as-is to the runner
2015
2016 This allows users to continue to use optimist (or other process.argv) processing within their
2017 tests and grab values from the command line.
2018
2019 Closes #571.
2020
2021- ([767c306](https://github.com/angular/protractor/commit/767c306102956ba6015cfe3998affb7e8430f259)), ([02defe3](https://github.com/angular/protractor/commit/02defe360dce41ee6841df9012166d249acfeca0))
2022 fix(jasminewd): include full pre-async-call stack trace in expectation failure message
2023
2024- ([b6df2cf](https://github.com/angular/protractor/commit/b6df2cfcfd35b31e2e473604b6df9add744c6c2d))
2025 fix(configParser): load coffee and LiveScript for child processes
2026
2027 Without loading coffee in configParser.js, child processes which try and load a coffeescript
2028 config file do not have coffee registered with node's required, and child tests fail.
2029
2030 Fixes an issue with using coffeescript config files.
2031
2032- ([64bee25](https://github.com/angular/protractor/commit/64bee252f6df52f9243c0f5d7e40f39bf5407134))
2033 fix(locators): add locator with multiple arguments
2034
2035 When using a custom locator with multiple arguments, only the first argument was used when
2036 calling `webdriver.findElements`.
2037
2038
2039- ([87b0c7f](https://github.com/angular/protractor/commit/87b0c7f2ecc8befa4fa1ebd5d8238c811a869aff))
2040 fix(debug): display error message when runner fails
2041
2042# 0.19.0
2043_Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time._
2044
2045## Features
2046- ([77393d0](https://github.com/angular/protractor/commit/77393d08343ef16ddc2b8042e187c9d68fe7bf2f)), ([6848180](https://github.com/angular/protractor/commit/68481801d506941ebf00fab71f87be510c7a87ba)), ([cca82ca](https://github.com/angular/protractor/commit/cca82caab6ae444b368eebe040a69967d774737e))
2047 feat(runner/launcher): major runner updates to allow multiple capabilities
2048
2049 Adding simultaneous runner capability (grid-style), refactoring launch/runner init system, and
2050 abstracting out configParser module.
2051
2052- ([642de06](https://github.com/angular/protractor/commit/642de06e8bbabf82c7b8e0a64a280df5c4daf01c))
2053 feat(protractor): add removeMockModule method
2054
2055- ([88c339f](https://github.com/angular/protractor/commit/88c339fc1d392717a0a5b8265806934b40158c5f))
2056 feat(runner): add adapter for cucumber.js
2057
2058 Conflicts:
2059 lib/runner.js
2060
2061## Bug Fixes
2062- ([8924bbc](https://github.com/angular/protractor/commit/8924bbca9e8f04073a29534bf16b0867a1ede7a0))
2063 fix(cli): convert capabilities arguments to dot-notation for WebDriver compatibility
2064
2065- ([a96d32f](https://github.com/angular/protractor/commit/a96d32f44a92ba9447fc843bc0aca7b91b777635))
2066 fix(webdriver-manager): upcase in IE download url
2067
2068 The url for the Win32 version of the IEDriverServer is apparently case sensitive: _win32_ vs
2069 _Win32_
2070
2071## Breaking Changes
2072- ([05eb42b](https://github.com/angular/protractor/commit/05eb42bb482c7cb36b48af1a86210afc442aa112))
2073 refactor(locators): moves scope in locators to last argument
2074
2075 scope defaults to document, and is an optional argument so now be moved to the end. Came up from
2076 debugging and trying to use window.clientSideScripts.findInputs('username'); which failed.
2077 Refactored to match original intent.
2078
2079 BREAKING CHANGE: anything relying on clientsidescripts should no longer pass
2080 element scope as first argument.
2081
2082 Before:
2083
2084 window.clientSideScripts.findInputs(document, 'username');
2085
2086 After:
2087
2088 window.clientSideScripts.findInputs('username', document);
2089 // or simply
2090 window.clientSideScripts.findInputs('username');
2091
2092 Also, any custom locators using addLocator will now break since the
2093 arguments order has changed. To migrate the code follow the example below:
2094
2095 Before:
2096
2097 var findMenuItem = function() {
2098 var domScope = arguments[0];
2099 var myArg = arguments[1];
2100 // balh blah blah
2101 };
2102 by.addLocator('menuItem', findMenuItem);
2103
2104 After:
2105
2106 var findMenuItem = function() {
2107 var myArg = arguments[0];
2108 var domScope = arguments[1];
2109 // balh blah blah
2110 };
2111 by.addLocator('menuItem', findMenuItem);
2112
2113 Closes #497
2114
2115
2116# 0.18.1
2117_Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time._
2118
2119## Bug Fixes
2120
2121- ([a79aa73](https://github.com/angular/protractor/commit/a79aa73df5df598ccad695af882d23ddaac2c2d9))
2122 fix(cli): specs was being processed as a string, not a list
2123
2124 Fixes #495
2125
2126# 0.18.0
2127_Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time._
2128
2129## Features
2130
2131- ([e3b1e7c](https://github.com/angular/protractor/commit/e3b1e7cec7af35f2e245ca64e4f94227ecaa1c57))
2132 feat(config): add option to exclude specs based on file patterns
2133
2134 The config now accepts `exclude`, an array of patterns to exclude.
2135
2136- ([88a1e58](https://github.com/angular/protractor/commit/88a1e587a40f0e6d978b20fe55160a18e2855493))
2137 Feat(clientSideScripts): Add by.buttonText, by.partialButtonText
2138
2139 Adds client side JS implementations of by.buttonText and by.partialButtonText, enabling element
2140 lookup based on innerText.
2141
2142 Closes #452
2143
2144- ([8d29c93](https://github.com/angular/protractor/commit/8d29c939766f044d910401e60834769cf8e5e44b))
2145 feat(config): allow LiveScript configuration files
2146
2147## Bug Fixes
2148
2149- ([d06d931](https://github.com/angular/protractor/commit/d06d931e1cb2c2bd38c2c50965a6f78690bdc336))
2150 fix(timeouts): fix an obscure cause of firefox timeouts
2151
2152 Fixes #493
2153
2154- ([de39e50](https://github.com/angular/protractor/commit/de39e5077d09daaeb885767e968a5cef78c9cac7))
2155 fix(jasminewd): support multi-argument matchers
2156
2157 Implement support for multi-argument matchers in promise wrapper.
2158
2159 Closes #477
2160
2161- ([11c4210](https://github.com/angular/protractor/commit/11c4210fe740771707d5421a4940bdce43d3d33e))
2162 fix(testForAngular): add a message when page load does not complete in time
2163
2164- ([6ae6261](https://github.com/angular/protractor/commit/6ae626158ee0610b70501af5d57ad4ff379c5ead))
2165 refactor(waitForAngular): improve error messages when timeouts occur
2166
2167- ([5dd93c2](https://github.com/angular/protractor/commit/5dd93c2397a401011e16271f6472c72037c871b6))
2168 fix(config): allow CoffeeScript 1.7 to be used
2169
2170 CoffeeScript now requires a register call to be made.
2171
2172- ([10aec0f](https://github.com/angular/protractor/commit/10aec0ff212987bfdb9ab4011e6cb2f9c646fca2))
2173 fix(pageload): increase wait timeout
2174
2175 The 300 ms wait caused problems when testing IE on Sauce Labs. It seems way too short.
2176 "browser.get()" invariably timed out. Increasing it solved our problem.
2177
2178
2179# 0.17.0
2180
2181_Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time._
2182
2183## Features
2184
2185- ([cc4f7b5](https://github.com/angular/protractor/commit/cc4f7b55e1fe46fcef1b8c3ca39d702a32ee6d82)), ([8348803](https://github.com/angular/protractor/commit/834880368115ecade154b3a090e06159667c0c2d))
2186 feat(element): allow chaining of element finders with element().element()...
2187
2188 Chaining calls to element will now build a scoped element finder. No webdriver functions will be
2189 called until a method (such as getText) is called on the final element. Example:
2190
2191 var elem = element(by.id('outer')).element(by.css('inner'));
2192 browser.get('myPage');
2193 elem.click();
2194
2195 Closes #340.
2196
2197- ([088a581](https://github.com/angular/protractor/commit/088a58150f992a6520da983fc461fec4eac1a0ed))
2198 feat(runner): add a callback for when the tests are done
2199
2200 Add an onCleanUp callback to be able to hook into when all the tests have been run.
2201
2202 Conflicts:
2203 referenceConf.js
2204
2205- ([66c4774](https://github.com/angular/protractor/commit/66c4774aa18d94d4da81c101b82db4a748cf69a4))
2206 feat(runner): add mocha options to config file
2207
2208 change lib/runner to allow setting mocha options from config.
2209
2210- ([092fe1f](https://github.com/angular/protractor/commit/092fe1fc1e7d1b58b786870ff1ce33f95e652d78)), ([3151ca7](https://github.com/angular/protractor/commit/3151ca7daaeeec9f537561b31c6dfd42c678f7bb))
2211 feat(locators): Add map() function to element.all
2212
2213 Added a map function to element.all to apply a function to each element and return the result of
2214 the transformation.
2215
2216 Resolve promises if there is an object that contains multiple promises. Added index as a second
2217 argument to the map function callback.
2218
2219 Closes #392
2220
2221- ([7259614](https://github.com/angular/protractor/commit/7259614a326802b8e7a906346bd9830b92e1514d)), ([0257b5f](https://github.com/angular/protractor/commit/0257b5f225052ab0a075d96811dd56961f9278ae))
2222 feat(config): allow CoffeeScript configuration files
2223
2224 Require CoffeeScript in the cli file to enable CS configuration and spec files.
2225
2226 Possibly fixes #38
2227
2228- ([e7d9e08](https://github.com/angular/protractor/commit/e7d9e081cdc7fcf100e0346b1dcf0f7fdad7d889))
2229 feat(global): export By (== by) on the global for use with coffeescript (or others who prefer it)
2230
2231## Bug Fixes
2232
2233- ([a0bd84b](https://github.com/angular/protractor/commit/a0bd84b9a28ec92eccd2784f8b849388985a4480))
2234 fix(pageload): add a wait during protractor.get() to solve unload issues
2235
2236 Some systems would not wait for the browser unload event to finish before beginning the
2237 asynchronous script execution.
2238
2239 Closes #406. Closes #85.
2240
2241- ([4b053eb](https://github.com/angular/protractor/commit/4b053ebe587d51562d77ca512848be28195ae0cc))
2242 fix(runner): only run selenium with spec files
2243
2244 Only setup Selenium if there are actual spec files passed in
2245
2246- ([8e096b9](https://github.com/angular/protractor/commit/8e096b9a91af9c37ab4bf84e100568544351efc8))
2247 fix(Protractor.prototype.get): resolve `baseUrl` before ignoring synchronization
2248
2249 Fixes issues where setting `ignoreSynchronization = true` ignores the value of `baseUrl`
2250 entirely.
2251
2252# 0.16.1
2253_Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time._
2254
2255_Note: 0.16.0 was released as a canary - no changelog for it._
2256
2257## Features
2258
2259- ([a75fa04](https://github.com/angular/protractor/commit/a75fa04a70f64e0da29b9a0a9100bd60d9ebf93f))
2260 docs(readme): add the travis status widget
2261
2262- ([478c00a](https://github.com/angular/protractor/commit/478c00a01dc9b93de68983b6ef2dfa55f0b42649))
2263 feat(runner): add beta support for using mocha as your test framework
2264
2265 This change adds limited support for using mocha as the test framework instead of jasmine. Make
2266 the switch by using `--framework=mocha` on the command line or adding `framework: 'mocha'` to the
2267 config. Tests will be run using the BDD interface. The interface is adapted so that tests run
2268 asynchronously without needing to call `done()`.
2269
2270 Note that there is currently no support for an assertion framework, so you will need to require
2271 whichever assertion framework you prefer. This means there is no adapter to make the assertions
2272 unwrap promises, so you will need to resolve promises yourself and run the assertions afterwards.
2273
2274- ([3731abf](https://github.com/angular/protractor/commit/3731abf901c4278b4470336c3a58765161b08bcc))
2275 feat(webdriver-manager): add seleniumPort command line option
2276
2277 Added seleniumPort command line option so that the standalone selenium server can be started with
2278 the supplied port number as opposed to the default port 4444.
2279 ```
2280 $ webdriver-manager start --seleniumPort 4443
2281 ```
2282
2283## Bug Fixes
2284
2285- ([bc18c42](https://github.com/angular/protractor/commit/bc18c42dab6207d111f88ea1f1deefb9bcc28f23))
2286 chore(config): saucelabs requires tunnel identifier to be a string
2287
2288## Breaking Changes
2289
2290 - ([478c00a](https://github.com/angular/protractor/commit/478c00a01dc9b93de68983b6ef2dfa55f0b42649))
2291 feat(runner): add beta support for using mocha as your test framework
2292
2293 To allow the user to customize their framework, the protractor runner will now wait
2294 until just before `onPrepare` to load the framework. This means that `jasmine` will
2295 not be available in global until `onPrepare`. For example, this means that requiring
2296 the jasmine-reporters module must be done inside onPrepare, since that module expects
2297 jasmine to be available at the time it is loaded.
2298
2299
2300# 0.15.0
2301
2302_Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time._
2303
2304## Features
2305
2306- ([f8d0291](https://github.com/angular/protractor/commit/f8d02910340f54af92a8ed5fdd067fa03ca2cef8)) chore(version): update the version of dependency minijasminenode
2307
2308 This is notable because in the newer 0.2.6 version of minijasminenode,
2309 ddescribe and iit are supported. These should be available after running
2310 an 'npm update'.
2311
2312- ([6165023](https://github.com/angular/protractor/commit/6165023a9593f4f69fe342761b8b2d75923baf7a)) feat(runner): return a promise from runner.runOnce
2313
2314 In some cases knowing when the runner has finished is a requirement (e.g. an async grunt task).
2315
2316- ([d44ef01](https://github.com/angular/protractor/commit/d44ef01c64023b4e3a24a9959740676b691f6074)) feat(debugging): remove webdriver lines from stacktraces by default to improve readability
2317
2318- ([33fa4a4](https://github.com/angular/protractor/commit/33fa4a43acfbe87f3a4d4c84fa93c5c20b3cca0c)) feat(locators): by model works for anything with a model, not just input
2319
2320 Notably, by.model will now find selects and textareas.
2321
2322 Closes #321.
2323
2324- ([238bb74](https://github.com/angular/protractor/commit/238bb7429572f9a9f6620bf1317690f1ac825960)) feat(ignoresync): ignoreSynchronization now affects the behavior of browser.get
2325
2326 Now, when ignoring synchronization, calls to browser.get are equivalent to calling
2327 browser.driver.get.
2328
2329 Closes #306
2330
2331- ([30c0ceb](https://github.com/angular/protractor/commit/30c0ceb3e2745d3bcc549f4d4963d9fade132e71)) feat(element) element.all exports an 'each' method
2332
2333 Usage:
2334 ```
2335 element.all(by.model('foo')).each(function(webElement) {
2336 // Do stuff with webElement.
2337 });
2338 ```
2339 Closes #298
2340
2341- ([6a73a25](https://github.com/angular/protractor/commit/6a73a25c61a72ef991a604eadae010c90a157266)) feat(by.repeat) by.repeat support for multi ng-repeat
2342
2343 Make by.repeat (and its column and row friends) work with ng-repeat-start
2344 and ng-repeat-end elements.
2345
2346 Closes #366. Closes #182.
2347
2348## Bug Fixes
2349
2350- ([50d6fde](https://github.com/angular/protractor/commit/50d6fde25148e24d7ef22be371b04333cdf61e50)) fix(clientSideScripts): bind-template directive shouldn't break bind locators
2351
2352 Fix "UnknownError: angular.element(...).data(...).$binding[0] is
2353 undefined" error raised when trying to use "by.binding" locator in any
2354 element of a page that contains at least one "bind-template" directive.
2355
2356- ([f8c606b](https://github.com/angular/protractor/commit/f8c606bae7b2f414a67b6349f841881132d9cc97)) fix(webdriver-manager): make sure selenium standalone shuts down nicely
2357
2358 This addresses selenium server shutdown in two ways
2359 - the node process will stay open until selenium has exited
2360 - if the user inputs to STDIN (e.g. press space) selenium will shut down gracefully
2361
2362- ([e98f71e](https://github.com/angular/protractor/commit/e98f71ebd7778d5c77c41bbecc73e31f1aeca177)) fix(webdriver-manager): fix IEDriver install and running via windows
2363
2364 Changed the binaries.ie.url function to return the correct URL for the IEDriverServer.
2365 Created the zip object in the win32 section to be able to decompress IEDriverServer.
2366 Added a function to normalize a command across OS and spawn it. It allows start the webdriver in win32.
2367
2368 Seen here:
2369 https://github.com/yeoman/generator/blob/master/lib/actions/spawn_command.js
2370
2371
2372# 0.14.0
2373
2374_Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time._
2375
2376## Features
2377
2378- ([c579a1a](https://github.com/angular/protractor/commit/c579a1a01bae6798a87a5ca8915417775e1b6fb2)), ([f54fd5d](https://github.com/angular/protractor/commit/f54fd5d7c3caa8df319a0115086bb4db8443d856)) feat(webdriver-manager): redo the script to run and install selenium/webdriver
2379
2380 Breaking Change.
2381 As outlined in Issue #296, redoing the way the selenium/webdriver
2382 install and run helper scripts work. Now, the 'webdriver-manager' script
2383 will be available either locally or globally (depending on how protractor
2384 was installed). It replaced install_selenium_standalone and the 'start' script
2385 that was provided after install. Run `webdriver-manager update` to download
2386 new versions of selected webdriver binaries. Run `webdriver-manager start`
2387 to start the standalone server. In addition, this fixes issues with running
2388 the server starter in Windows, and allows automated downloading of the IEDriver.
2389
2390 Thanks to kurthong and vipper for their PRs with windows fixes, which were
2391 very useful in preparing this.
2392
2393- ([a69ebc3](https://github.com/angular/protractor/commit/a69ebc3b783fb7bf42877a658498de90d3d196c3)) feat(runner): use selenium and chromedriver from the default location if nothing else is specified
2394
2395## Bug Fixes
2396
2397- ([1fa090c](https://github.com/angular/protractor/commit/1fa090c656cbab55bdbfb101b503b53811b50dff)) fix(runner): merge should override entire arrays, not just parts of them
2398
2399 Closes #304
2400
2401- ([a2afb4d](https://github.com/angular/protractor/commit/a2afb4d8399ba980674c79138dd98efb683e9ab9)) fix(element): element.all.get and element.all.first/last should wrap web elements
2402
2403 Closes #307
2404
2405- ([f3be172](https://github.com/angular/protractor/commit/f3be1727cf95dea50b597d20c6510e62a605dee2)) fix(runner): running with chromeOnly should try to find chromedriver with .exe extension
2406
2407 Closes #283
2408
2409## Breaking Changes
2410
2411- ([c579a1a](https://github.com/angular/protractor/commit/c579a1a01bae6798a87a5ca8915417775e1b6fb2)) feat(webdriver-manager): redo the script to run and install selenium/webdriver
2412
2413 Breaking Change.
2414 Your old selenium/start script will continue to work, but install_selenium_standalone no longer exists.
2415 To do a clean update, remove the selenium folder. Then run
2416 `webdriver-manager update`
2417
2418- ([a1c91a2](https://github.com/angular/protractor/commit/a1c91a29af5c1e1f35744462ca16ef4b33ad6c48)) fix(config): Make all file paths in config files relative to the config file itself
2419
2420 Breaking Change
2421 Previously, onPrepare and specs were relative to the location of the config,
2422 but seleniumServerJar and chromeDriver were relative to the cwd when the
2423 test was called. If you were calling the tests from somewhere other than
2424 the same directory as the config location, you will need to change the paths of
2425 seleniumServerJar and/or chromeDriver. Closes #222.
2426
2427
2428# 0.13.0
2429
2430_Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time._
2431
2432## Features
2433
2434- ([ce5f494](https://github.com/angular/protractor/commit/ce5f494289c3750b84c6783339a14342a1b74f3d)) feat(element): element.all now has 'first' and 'last' methods
2435
2436- ([ef61662](https://github.com/angular/protractor/commit/ef6166232186b3385769f63430819a722052cc44)) feat(runner): allow bypassing the selenium standalone server if running only chrome
2437
2438 Using the config option `chromeOnly` now enables running ChromeDriver directly,
2439 without going through the Selenium Standalone. The chromedriver binary should be
2440 available in your PATH, or should be specified with the config option
2441 `chromeDriver`.
2442
2443- ([76c094a](https://github.com/angular/protractor/commit/76c094a3fa69511b0311011b0ef2c7343b8e655b)) feat(getLocationAbsUrl) - allows current url to be obtained on IE (and Chrome/Firefox)
2444
2445- ([6a1c918](https://github.com/angular/protractor/commit/6a1c91848858453d0af712588b51c0bdaa0c9445)) feat(runner): add error message for bad jar path
2446
2447- ([98bce7e](https://github.com/angular/protractor/commit/98bce7e2ac1e659faf2d8727e1fda210b796525e)) feat(locators): add the ability to add custom element locators with by.addLocator
2448
2449 Custom locators can now be added using by.addLocator(name, script), where
2450 script is a self-contained snippet to be executed on the browser which returns
2451 an array of elements. Closes #236.
2452
2453- ([c7bcc20](https://github.com/angular/protractor/commit/c7bcc20c07416237f69f7934d257b5ba5bfe8c1f)) chore(angular): update to angular 1.2
2454
2455
2456## Bug Fixes
2457
2458- ([a24eeee](https://github.com/angular/protractor/commit/a24eeee4f08e973ffcecd107b6610ce1c2c5e3f6)) fix(runner): do not error out if only one spec pattern does not match any files
2459
2460 Previously, the runner would throw an error if any one of the spec patterns did not
2461 match any files. Now it logs a warning in that case, and errors out only if there
2462 are no found files in any spec patterns. Closes #260
2463
2464- ([f3b3fdb](https://github.com/angular/protractor/commit/f3b3fdbcbc8fe4f3c5915ef0f6eb7c89e339a62e)) fix(element): fix an error where all.then() wasn't calling callbacks.
2465
2466 Closes #267
2467
2468- ([137d804](https://github.com/angular/protractor/commit/137d8040778215fd841654d3ca465b71f8719ea5)) fix(jasminewd): patched matcher should understand 'not'
2469
2470 Closes #139.
2471
2472
2473# 0.12.1
2474
2475_Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time._
2476
2477## Minor features
2478
2479- ([201b59c](https://github.com/angular/protractor/commit/201b59c2e728c56d2a88a1167ed3007b22ab9034)) feat(jasminewd): better error messaging when expect is called with a WebElement
2480
2481- ([d383770](https://github.com/angular/protractor/commit/d383770499da4b08b74ad53c20ffa288147f94e9)) feat(clientsidescripts): better error reporting from testForAngular and waitForAngular
2482
2483## Bug fixes
2484
2485- ([8580c0c](https://github.com/angular/protractor/commit/8580c0c76c5ccd3c55d053e59d8df37b3c4cf35a)) fix(install-selenium): update to chromedriver 2.6
2486
2487 Update to the latest version of Chromedriver. This fixes the issue with
2488 OS X 10.9. Closes #181.
2489
2490- ([ebc528f](https://github.com/angular/protractor/commit/ebc528fec2c2e88b0f9e32cee0661ecd79da2252)) fix(debugging): switch debugging tests to the new test app urls.
2491
2492- ([8ff4787](https://github.com/angular/protractor/commit/8ff47875488647513f4199bab36e3b0023dd305d)) fix(runner): exit with proper code when tests fail
2493
2494 When errors with messages matching /timeout/ were created, Protractor
2495 clears the control flow so that the remainder of the tasks scheduled
2496 for that spec don't bleed over into the next spec. This was messing up
2497 the promises used in the runner, since they are also webdriver promises.
2498 Long term, the runner should _not_ use webdriver promises. For now, fix by
2499 having the runner resolve promises directly rather than through chaining,
2500 and add a TODO to use promises which aren't connected to WebDriver's
2501 control flow in the runner.
2502
2503 Closes #214.
2504
2505- ([81501c5](https://github.com/angular/protractor/commit/81501c5d941cd7edb15439cef7c7a64c0e773e27)) fix(clientsidescripts): workaround for IE 8 "async page reload" init problem
2506
2507- ([21264fd](https://github.com/angular/protractor/commit/21264fdc2f6cb3345c8f005936c74985ecd811dc)) fix(find): fix error when exposed to ng-options element with a default option
2508
2509 Protractor will now ignore elements with the ng-bind class that don't have
2510 a proper binding on their data, instead of blowing up when encoutering them.
2511
2512 Closes #165, may fix #170
2513
2514 - ([f672648](https://github.com/angular/protractor/commit/f6726482cd2ce9a7dda9ccdeeb93574d3b9293e3)) fix(findelements): fix isPresent for repeaters by row for real
2515
2516## Breaking Changes
2517
2518- ([bf5b076](https://github.com/angular/protractor/commit/bf5b076cb8897d844c25baa91c263a12c61e3ab3)) fix(cli): remove boolean verbose and stack trace options
2519
2520 Also add better description for what the command line options are.
2521
2522 Tiny breaking change:
2523 Rename the 'includeStackTrace' command line option to 'stackTrace' for brevity.
2524
2525# 0.12.0
2526
2527_Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time._
2528
2529This change introduces major syntax updates. Using the new syntax is recommended, but the old version is still supported for now. Note also that the test application, docs, and example tests have been updated.
2530
2531## Features
2532
2533- ([a2cd6c8](https://github.com/angular/protractor/commit/a2cd6c8baf242a81c4efea1f55249d597de95329)) feat(syntax): big syntax reboot, expose global $, $$, element, and by
2534
2535In an effort to make tests more readable and clear, a few more global variables
2536will now be exported.
2537
2538`browser` is an instance of protractor. This was previously accessed using
2539`protractor.getInstance`.
2540
2541`by` is a collection of element locators. Previously, this was `protractor.By`.
2542
2543`$` is a shortcut for getting elements by css. `$('.foo')` === `element(by.css('.foo'))`
2544
2545All changes should be backwards incompatible, as tested with the new 'backwardscompat'
2546tests.
2547
2548## Bug fixes
2549
2550- ([8c87ae6](https://github.com/angular/protractor/commit/8c87ae6b430479445744a2f5c8eaca7f5f03d61d)) fix(onPrepare): onPrepare with a string argument should resolve from the config directory
2551
2552onPrepare can take a string, which is a filename containing a script to load adn execute
2553before any tests run. This fixes the string to resolve the filename relative to the
2554config file, instead of relative to the current working directory where protractor
2555is called.
2556
2557
2558
2559# 0.11.0
2560
2561_Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time._
2562
2563## Features
2564
2565- ([02cb819](https://github.com/angular/protractor/commit/02cb8199d89c6645d0bc9dbb39e5cb27517bfaf3)) feat(cli): allow passing params directly to your test
2566
2567Adds a config object 'params' which is passed directly
2568to instances of protractor. 'params' may contain nested
2569objects, and can be changed via the command line as:
2570
2571 --params.login.user 'Joe' --params.login.password 'abc'
2572
2573This change also switches to using optimist to parse
2574command line flags for more flexibility and better usage
2575documentation. Closes #32.
2576
2577- ([c025ddb](https://github.com/angular/protractor/commit/c025ddbe617b977908db509f365cc882924b196f)) feat(findElements): $ & $$ shortcuts.
2578
2579Introducing the $ shortcut method for finding a single element by css
2580without having to call protractor.By.css. Additionally $$ for finding
2581all elements by css.
2582
2583Examples:
2584- ptor.$('.some .selector')
2585- ptor.$$('.some .selector')
2586
2587- ([7d74184](https://github.com/angular/protractor/commit/7d7418411ea4a9d696855f755899161ecb36818d)) feat(explorer): add an interactive element explorer
2588
2589When debugging or first writing test suites, you may find it helpful to
2590try out Protractor commands without starting up the entire test suite. You can
2591do this with the element explorer. This change introduces a first version
2592of the element explorer. Closes #107
2593
2594## Bug Fixes
2595
2596- ([e45ceaa](https://github.com/angular/protractor/commit/e45ceaae825cce0ec69580b8f6e93d102d4d61f1)) fix(repeaters): allow finding all rows of a repeater
2597
2598Now, finding an element with the strategy 'protractor.By.repeater()' returns
2599a promise which will resolve to an array of WebElements, where each WebElement
2600is a row in the repeater. Closes #149.
2601
2602- ([b501ceb](https://github.com/angular/protractor/commit/b501ceb7b776a5d9f1c2659326577601d0fbce5a)) fix(findElements): Consistently include evaluate.
2603
2604When using findElements with a css locator, wrap the returned list of
2605elements with protractor specific functionality.
2606
2607- ([c17ac12](https://github.com/angular/protractor/commit/c17ac12c2a213a7b6f8c236e81ba5cb2db542fd0)) fix(cli): allow running from command line without a config file
2608
2609If all necessary fields are specified (e.g. seleniumAddress and at least
2610one spec), a config file shouldn't be necessary.
2611
2612## Breaking Changes
2613
2614- ([421d623](https://github.com/angular/protractor/commit/421d6232fe0b45ca1758afd634997da644f2e1db)) fix(repeat): use 0-based indexing for repeater rows
2615
2616BREAKING CHANGE: Finding rows with protractor.By.repeater now
2617indexes from 0 instead of 1. This should be more familiar to most
2618modern programmers. You will need to edit existing tests. Closes #90.
2619
2620Before:
2621```
2622// The fourth foo
2623ptor.findElement(protractor.By.repeater('foo in foos').row(4));
2624```
2625After:
2626```
2627// The fourth foo
2628ptor.findElement(protractor.By.repeater('foo in foos').row(3));
2629```
2630
2631# 0.10.0
2632
2633_Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time._
2634
2635## Features
2636
2637- ([881759e](https://github.com/angular/protractor/commit/881759e77462dc8e1001eb77008668ae6dc552cd)) feat(timeouts): add a unique error message when waitForAngular times out
2638
2639To improve the readability of error messages, when waitForAngular times out
2640it now produces a custom message. This should help clarify confusion
2641for pages that continually poll using $interval. This change also adds more
2642documentation on timeouts. See issue #109.
2643
2644- ([37e0f1a](https://github.com/angular/protractor/commit/37e0f1af196c3c0bf54dcddf0088a8c16602e5f2)) feat(install selenium): better communication in the install script
2645
2646Adds better messages in the selenium server install script, and also
2647makes the script output a 'start' executable which can be used to quickly
2648start up the selenium standalone. *not yet windows friendly*. Closes #108.
2649
2650- ([b32f5a5](https://github.com/angular/protractor/commit/b32f5a59169f1324271bd5abc09c17fcd9c4f249)) feat(config): add examples for dealing with log-in
2651
2652Adds examples for how to log in when the login page is not written
2653in Angular. New examples are in spec/login.
2654
2655- ([1b7675a](https://github.com/angular/protractor/commit/1b7675aab7846bee54117876887bfec07ce31745)) feat(cli): add an onPrepare callback to the config
2656
2657This onPrepare callback is useful when you want to do something with
2658protractor before running the specs. For example, you might want
2659to monkey-patch protractor with custom functions used by all the
2660specs, or add the protractor instance to the globals.
2661An example usage is shown in the spec/onPrepareConf.js file and its
2662associated spec.
2663
2664## Bug fixes
2665
2666- ([256b21c](https://github.com/angular/protractor/commit/256b21cf8c744a200892e6b7f9172150b2f4fe8d)) fix(cli): allow passing the config file before the options
2667
2668The cli usage says:
2669> USAGE: protractor configFile [options]
2670However, the options passed as argument are merged into the default
2671configuration as soon as the configFile is met in the args parsing
2672loop.
2673This fix merges the options in the default configuration only after
2674the loop, allowing to pass the options to the cli before or after,
2675or around the config file.
2676
2677- ([6223825](https://github.com/angular/protractor/commit/62238252c7fc68c6a5941883f6a272e95997a8ff)) fix(jasminewd): allow use of custom matchers
2678
2679Using jasmine.Matchers.prototype to generate the chained methods for
2680expect() calls is flawed because it does not pick up custom matchers
2681defined using addMatcher. Instead, use either the matchersClass for
2682the current spec or from the environment.
2683
2684- ([c22fc38](https://github.com/angular/protractor/commit/c22fc387bc0ef7a07371e023d39a6ce58dfa56c9)) fix(sync): getCurrentUrl and friends should sync with Angular first
2685
2686getCurrentUrl, getPageSource, and getTitle should sync with Angular
2687before executing. Closes #92.
2688
2689- ([dd06756](https://github.com/angular/protractor/commit/dd067561cf9fe0a765e98605b9ebdd8fbfef04d3)) fix(clientsidescripts): findElements and isElementPresent for protractor.By.select
2690
2691- ([c607459](https://github.com/angular/protractor/commit/c60745945c6514e25403783eab3de5873e15758b)) fix (navigation): The defer label should appear before other window names,
2692not after.
2693
2694- ([806f381](https://github.com/angular/protractor/commit/806f38113c675a26171776a559a20bf3899aa2cc)) Fix: findElements() and isElementPresent() now work for protractor.By.input.
2695Closes #79.
2696
2697## Breaking changes
2698
2699- ([881759e](https://github.com/angular/protractor/commit/881759e77462dc8e1001eb77008668ae6dc552cd)) feat(timeouts): add a unique error message when waitForAngular times out
2700
2701This changes the default script timeout from 100 seconds down to 11. Tests
2702which relied on extremely long timeouts will need to change the default script
2703timeout with `driver.manage().timeouts().setScriptTimeout(<bigNumber>)`.
2704
2705# 0.9.0
2706
2707_Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time._
2708
2709## Features
2710
2711- ([0e8de99](https://github.com/angular/protractor/commit/0e8de99eb0d8a0db4f6d3538dd051c94f35775f5)) Wrap WebElements with Protractor specific features. This change allows
2712chained findElement calls to work with Protractor locators. It also
2713adds a function, evaluate, to evaluate an angular expression in the context
2714of a WebElement's scope.
2715
2716- ([9f53118](https://github.com/angular/protractor/commit/9f5311812cbae5122ce2c6ebe522132273b0ebcc)) Improving the command line interface (adding more options). This allows
2717the --spec option to be passed with test files that will be resolved
2718relative to the current directory. Smarter merging of default config
2719values. Closes #65.
2720
2721- ([73821fb](https://github.com/angular/protractor/commit/73821fb6b6d252a93cc15ce990b4ec4738b87b95)) Adding an 'ignoreSynchronization' property to turn off Protractor's attempt to
2722wait for Angular to be ready on a page. This can be used to test pages that
2723poll with $timeout or $http.
2724
2725## Bug fixes
2726
2727- ([cfc6438](https://github.com/angular/protractor/commit/cfc6438e80e77387afae776f289cd55813e9b2d9)) Adding support for isElementPresent with Protractor locators.
2728Closes #11.
2729
2730- ([8329b01](https://github.com/angular/protractor/commit/8329b01865074c32f7a261fe9bbf2c151b704a34)) Adding waitForAngular calls before WebElement functions. Closes #37.
2731
2732# 0.8.0
2733
2734_Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time._
2735
2736## Docs
2737- Added documentation to the [docs folder](https://github.com/angular/protractor/tree/master/docs).
2738
2739- ([08ef244](https://github.com/angular/protractor/commit/08ef244217fb83206c818c84cbe8f07999116ee3)) Adding debugging tests showing different types of timeouts, and fixing
2740a bug where scheduled tasks from a previous it block would run into
2741the next in case of a timeout.
2742
2743## Features
2744
2745- ([1c7eae0](https://github.com/angular/protractor/commit/1c7eae0c09f13b7068f81324f24967709e264241)) Updating the binary script to understand debug, so that
2746protractor debug conf.js works.
2747
2748- ([7a59479](https://github.com/angular/protractor/commit/7a594791b5ac6616de9c98dcd7d44ecaffb0e8a3)) Adding a 'debug' function to protractor. This schedules a debugger pause
2749within the webdriver control flow.
2750
2751- ([679c82d](https://github.com/angular/protractor/commit/679c82d510ea016690fba259db50b4afa36154cc)) Mixing in all webdriver exports to protractor. This means that webdriver
2752classes such as ActionSequence and Keys are accessible on the global
2753protractor.
2754
2755- ([3c76246](https://github.com/angular/protractor/commit/3c76246a01e584bc30da645a36e75920b5397251)) Added nested angular app (ng-app on an element other than `<html>` or `<body>`) capability via conf file.
2756
2757## Bug fixes
2758
2759- ([1c9b98d](https://github.com/angular/protractor/commit/1c9b98d0464bbe57194cf340c6e5942cbe7c8385)) Fixed Sauce issues: low timeouts, shutdown and init order.
2760
2761## Breaking Changes
2762
2763- Now running selenium 2.25. Requires updating WebDriverJS and the selenium standalone binary and chromedriver binary.
2764
2765- ([a54abfb](https://github.com/angular/protractor/commit/a54abfbbfd3b13be5144e64e52a267c73d409a81)) Spec paths in configuration files are now resolved from the location of the spec file instead of the current working directory when the command line is run.
2766
2767
2768
2769# 0.7.0
2770
2771_Note: Major version 0 releases are for initial development, and backwards incompatible changes may be introduced at any time._
2772
2773## Features
2774
2775- ([7966912](https://github.com/angular/protractor/commit/796691205795d93fe12c998d20a58c8220ac6fb7)) Updating to Selenium 2.24.
2776
2777- ([90f0a94](https://github.com/angular/protractor/commit/90f0a942b09faff5924674a20ce7705b6d685eba)) Instead of having tests run with the protractor runner need to require()
2778the protractor library, publish it to the global namespace. This insures
2779the instance of protractor used within the tests is the same as the
2780one used on the command line. Closes #36. Version bump for incompatible
2781API changes.
2782
2783- ([cb373c9](https://github.com/angular/protractor/commit/cb373c99a7e33c5514bf1d2728a64f631ec8784c)) Adding glob matching to the spec files from the config. Closes #29.
2784
2785
2786## Breaking changes
2787
2788- Now running on selenium 2.24. Requires updating WebDriverJS and the selenium standalone binary.
2789
2790- The protractor runner now publishes `protractor` to the global namespace and sets up the Jasmine-WebDriver adapter. Tests run with this should no longer include
2791
2792````javascript
2793// var protractor = require('protractor'); // No longer needed!
2794// require('protractor/jasminewd'); // No longer needed!
2795
2796var ptor = protractor.getInstance(); // This should just work now.
2797````
2798
\No newline at end of file