|
| 1 | +# 5.1.0 |
| 2 | + |
| 3 | + |
| 4 | +#### Blocking proxy |
| 5 | + |
| 6 | +Blocking Proxy is a new experimental feature in Protractor 5 and is behind the |
| 7 | +`--useBlockingProxy` or `blockingProxyUrl`. See the |
| 8 | +[lib/config.ts#L100](https://github.com/angular/protractor/blob/master/lib/config.ts#L100). |
| 9 | +Other ways to start blocking proxy include using the |
| 10 | +`--highlightDelay` and `--webDriverLogDir` flags See [lib/config.ts#L501](https://github.com/angular/protractor/blob/master/lib/config.ts#L501). |
| 11 | + |
| 12 | +This adds two options, both of which are implemented with Blocking |
| 13 | +Proxy. `--webDriverLogDir` will create a readable log with timing |
| 14 | +information of webdriver commands in the specified directory. |
| 15 | + |
| 16 | +`--highlightDelay` will pause before clicking on elements or sending keys. |
| 17 | +While paused, the element that's about to be affected will be |
| 18 | +highlighted. |
| 19 | + |
| 20 | +#### Webdriver-manager |
| 21 | + |
| 22 | +Webdriver-manager will now by default grab the latest versions of all binaries |
| 23 | +(standalone, chromedriver, iedriver, gecko driver). Use the |
| 24 | +`--versions.(binary name)` to pin to a specific version. Selenium standalone |
| 25 | +3.0.1 has a bug which prevents it from working with any version of FireFox. |
| 26 | +We have tested version 3.0.0-beta4 and know that it works with |
| 27 | +FireFox 51, and we expect that the 3.0.2 release will also work. |
| 28 | + |
| 29 | +#### TypeScript support |
| 30 | + |
| 31 | +For jasmine users, in order to get all the type declarations that are used in |
| 32 | +jasminewd2, you'll need to install `@types/jasminewd2` in addition to |
| 33 | +`@types/jasmine` as dev dependencies. |
| 34 | + |
| 35 | +## Features |
| 36 | + |
| 37 | +- ([0cd156d](https://github.com/angular/protractor/commit/0cd156d6829f23f93403d865b7fdb7eab4f45446)) |
| 38 | + feat(debugging): Add webdriver logging and highlight delay. (#4039) |
| 39 | + |
| 40 | + This adds two options, both of which are implemented with Blocking |
| 41 | + Proxy. --webDriverLogDir will create a readable log with timing |
| 42 | + information of webdriver commands in the specified directory. |
| 43 | + |
| 44 | + --highlightDelay will pause before clicking on elements or sending keys. |
| 45 | + While paused, the element that's about to be affected will be |
| 46 | + highlighted. |
| 47 | + |
| 48 | +- ([3d98a16](https://github.com/angular/protractor/commit/3d98a1668138d36681bf305c9ea67dd1eea38899)) |
| 49 | + feat(config): Support setting `SELENIUM_PROMISE_MANAGER` flag via the config (#4023) |
| 50 | + |
| 51 | + Closes https://github.com/angular/protractor/issues/3691 |
| 52 | +- ([4e40fb1](https://github.com/angular/protractor/commit/4e40fb175e64820bbab24efb376dac80fa6ba2b0)) |
| 53 | + feat(browser): chain promises in `browser.get` (#4017) |
| 54 | + |
| 55 | + Closes https://github.com/angular/protractor/issues/3904 |
| 56 | +- ([33393ca](https://github.com/angular/protractor/commit/33393cad633e6cb5ce64b3fc8fa5e8a9cae64edd)) |
| 57 | + feat(browser): chain some promises in `lib/browser.ts` + return promise from |
| 58 | + `waitForAngularEnabled` (#4021) |
| 59 | + |
| 60 | + Minor breaking change since `waitForAngularEnabled` no longer returns a boolean |
| 61 | + Part of angular#3904 |
| 62 | + Chaining `browser.get` has proved surprisingly complex, so I'll do that in a different PR |
| 63 | + Also fixed a minor bug in `lib/clientsidescripts.js` while debuging |
| 64 | +- ([7cb9739](https://github.com/angular/protractor/commit/7cb9739954bc26f0667d671cdb0083f5bd43f2f6)) |
| 65 | + feat(browser.ready): make `browser.ready` wait for all async setup work (#4015) |
| 66 | + |
| 67 | + Closes https://github.com/angular/protractor/issues/3900 |
| 68 | +- ([b77cb92](https://github.com/angular/protractor/commit/b77cb928301fbe4f77ffcdcace424a490581416e)) |
| 69 | + feat(restart): `browser.restart` should return a promise (#4008) |
| 70 | + |
| 71 | + Also allows `browser.restart` to work when the control flow is disabled, and |
| 72 | + fixes it for forked browsers. |
| 73 | + |
| 74 | + Closes #3899 and #3896 |
| 75 | + https://github.com/angular/protractor/issues/3896 |
| 76 | + |
| 77 | +- ([4a59412](https://github.com/angular/protractor/commit/4a59412357eb5df592b06dd282d88d6dbc5e4771)) |
| 78 | + feat(angularAppRoot): Replace rootEl with browser.angularAppRoot() (#3996) |
| 79 | + |
| 80 | + Replace browser.rootEl with browser.angularAppRoot(), which changes the root element in a promise |
| 81 | + on the control flow. Note that browser.rootEl will immediately return the current value, but |
| 82 | + browser.angularAppRoot() will return a promise that resolves during the next step in the control |
| 83 | + flow. |
| 84 | + |
| 85 | + Also update to BlockingProxy 0.0.3, which allows changing rootSelector. |
| 86 | + |
| 87 | +- ([879aac6](https://github.com/angular/protractor/commit/879aac6ee6c1c36d005b538472e2754b987b3368)) |
| 88 | + chore(blockingproxy): Allow using a pre-existing Blocking Proxy instance (#3970) |
| 89 | + |
| 90 | +- ([bf123ad](https://github.com/angular/protractor/commit/bf123adafc442440b2ca10725113b47342ebb24f)) |
| 91 | + feat(elements): Add isPresent() to ElementArrayFinder. (#3974) |
| 92 | + |
| 93 | +## Bug Fixes |
| 94 | + |
| 95 | +- ([f9bee84](https://github.com/angular/protractor/commit/f9bee84bc03b6cd6872522b8780327423b789e19)) fix(restart): preserve waitForAngularEnabled on restart and add promise chaining |
| 96 | + |
| 97 | + I noticed I missed `waitForAngularEnabled` in #4037. This commit fixed that. |
| 98 | + |
| 99 | + While I was at it I fixed a minor error where the promises implicitly created by |
| 100 | + setting `rootEl` and `ignoreSynchronization` weren't getting chained properly. |
| 101 | + |
| 102 | + Also fixed minor (so minor I think it was impossible to trigger) where |
| 103 | + browser.plugins_ could be undefined. |
| 104 | + |
| 105 | +- ([0b0c224](https://github.com/angular/protractor/commit/0b0c224e4056368c2c0030064b4ca4235163276b)) |
| 106 | + fix(plugins): do not force ManagedPromise in plugins.ts (#4036) |
| 107 | + |
| 108 | +- ([9c2274d](https://github.com/angular/protractor/commit/9c2274d8f218cabc946dbc6a11d725458c1b4e3a)) |
| 109 | + fix(restart): preserve properties like `browser.baseUrl` upon restart (#4037) |
| 110 | + |
| 111 | + I also fixed a minor issue where `internalRootEl` wasn't being set when blocking proxy was being |
| 112 | + used. I also just cleaned up our internal uses of `this.rootEl`. |
| 113 | + |
| 114 | + Closes #4032 |
| 115 | + |
| 116 | +- ([a20c7a7](https://github.com/angular/protractor/commit/a20c7a7cc1df04f96cb1a9dd971df39883ac173b)) |
| 117 | + fix(element chaining): make element chaining work when the control flow is disabled (#4029) |
| 118 | + |
| 119 | + Also added some tests to `spec/ts/noCF/smoke_spec.ts` double checking that the control flow is off |
| 120 | + |
| 121 | +- ([7481dee](https://github.com/angular/protractor/commit/7481dee75cab1da9d207909e928eee55a9f5a682)) |
| 122 | + fix(cli): Make unknown flag check a warning instead of an error. (#4028) |
| 123 | + |
| 124 | +- ([40bbeca](https://github.com/angular/protractor/commit/40bbeca003017901760e10831c66d383cf5accf8)) |
| 125 | + fix(expectedConditions): Add tests and fix race conditions around visibility (#4006) |
| 126 | + |
| 127 | + Add test cases to reproduce the missing element race conditions possible in |
| 128 | + expected condition methods `visibilityOf`, `textToBePresentInElement`, |
| 129 | + `textToBePresentInValue` and `elementToBeClickable`. |
| 130 | + |
| 131 | + Add error handler `falseIfMissing` to all expected conditions that depend |
| 132 | + on the presence of an element. |
| 133 | + |
| 134 | + Expected conditions check the presence of an element before other checks, |
| 135 | + but when an element is removed exactly in the moment after the `isPresent` |
| 136 | + and before `isDisplayed` in `visibilityOf` the condition used to fail. |
| 137 | + |
| 138 | + This solution does not handle missing elements in (`isEnable`, `isDisplayed`, |
| 139 | + `isSelected`) and focused only on expected conditions (see #3972) |
| 140 | + |
| 141 | + This problem was also referenced in #3578 and #3777 |
| 142 | + |
| 143 | +- ([5856037](https://github.com/angular/protractor/commit/5856037368ee8d8a21f11eadbfe93d5f46507f60)) |
| 144 | + fix(cli): Allow frameworks to specify flags they recognize. (#3994) |
| 145 | + |
| 146 | + Fix for #3978. |
| 147 | + Our initial plan to allow setting --disableChecks with an environment variable is insufficient, |
| 148 | + since the custom framework isn't even require()'d until after the config is parsed. This moves the |
| 149 | + unknown flag check into the runner, and gives frameworks a way to specify extra flags they accept. |
| 150 | +- ([e68dcf1](https://github.com/angular/protractor/commit/e68dcf1bfd7f32c59ebd23fa16ca53e1a53f8ddf)) |
| 151 | + fix(driverProviders): Check config in the right place. (#3991) |
| 152 | + |
| 153 | +- ([eb89920](https://github.com/angular/protractor/commit/eb899208457f83853f043edea5e56b07e87803bc)) |
| 154 | + fix(driverProviders): Handle promise rejection when starting selenium (#3989) |
| 155 | + |
| 156 | + Fixes #3986. Also error if jvmArgs isn't an array. |
| 157 | + |
| 158 | +- ([8d2fc07](https://github.com/angular/protractor/commit/8d2fc07ed28a1b19c03a9869442f76f2963e40a1)) |
| 159 | + chore(browser): deprecate `browser.getLocationAbsUrl()`. (#3969) |
| 160 | + |
| 161 | + Closes #3185 |
| 162 | +- ([15a1872](https://github.com/angular/protractor/commit/15a187204bb8b87255d5f4622094eabc71206315)) |
| 163 | + fix(firefox): Fix directConnect for Firefox 51+ (#3953) |
| 164 | + |
| 165 | +- ([81f56a4](https://github.com/angular/protractor/commit/81f56a449f8988feba21617ef7533cfa2f06c6f8)) |
| 166 | + fix(cli): display disableChecks option in extra flags error message (#3964) |
| 167 | + |
| 168 | +- ([6a4dc7a](https://github.com/angular/protractor/commit/6a4dc7a6a5b796e0215e5b9abf99494ac13cb647)) |
| 169 | + fix: no longer use es6 let statement (#3963) |
| 170 | + |
| 171 | + * Currently in Protractor v5 the Angular detection script uses ES6 features like the `let` modifier. |
| 172 | + |
| 173 | + This can break Protractor on browsers, which doesn't support those statements. |
| 174 | + > See https://saucelabs.com/beta/tests/275f75091dac40a0a3374d29d912caee/commands#11 |
| 175 | +
|
| 176 | +- ([528338c](https://github.com/angular/protractor/commit/528338c6722219fdcfc51153b0031a02f0fce046)) |
| 177 | + fix(expectedCondition): fix NoSuchElementError in visibilityOf due to a race condition (#3777) |
| 178 | + |
| 179 | + Handle NoSuchElementError in the expected condition visibilityOf, which occurred when |
| 180 | + an element disappears between the isPresent() and isDisplayed() check. |
| 181 | + |
| 182 | +## Dependencies |
| 183 | + |
| 184 | +- ([5899b67](https://github.com/angular/protractor/commit/5899b676bc2db0005506ae2306350e6ffea3c808)) |
| 185 | + deps(update): update webdriver-manager to ^12.0.1 (#4042) |
| 186 | + |
| 187 | + Running `webdriver-manager update` will now by default grab the latest |
| 188 | + versions of all binaries (standalone, chromedriver, iedriver, gecko |
| 189 | + driver). You can continue to pin to a specific versions using the |
| 190 | + command line option. Example `webdriver-manager update --versions.chrome 2.20`. |
| 191 | + As of this release the latest versions are: |
| 192 | + |
| 193 | + - gecko v0.14.0 |
| 194 | + - selenium-standalone 3.0.1 is the latest jar file; however, we recommend 3.0.0-beta4. See note |
| 195 | + below on Firefox support. |
| 196 | + - chromedriver 2.27 |
| 197 | + - iedriver 3.0.0 |
| 198 | + |
| 199 | + A note on FireFox support: Selenium standalone 3.0.1 has a bug which prevents it from working |
| 200 | + with any version of FireFox. We have tested version 3.0.0-beta4 and know that it works with |
| 201 | + FireFox 51, and we expect that the 3.0.2 release will also work. |
| 202 | + |
| 203 | + closes #4033 |
| 204 | + |
| 205 | +- ([cd084a0](https://github.com/angular/protractor/commit/cd084a0ca29cd73aa3ce1650188adf7ddfdb7962)) |
| 206 | + deps(jasmine): update jasmine to ^2.5.3 (#3960) |
| 207 | + |
1 | 208 | # 5.0.0
|
2 | 209 |
|
3 | 210 | This version includes big changes around upgrading to selenium-webdriver 3.0.x.
|
|
0 commit comments