codeceptjs 2.1.3 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/CHANGELOG.md +125 -37
  2. package/README.md +15 -22
  3. package/bin/codecept.js +4 -1
  4. package/docs/acceptance.md +44 -1
  5. package/docs/advanced.md +1 -1
  6. package/docs/angular.md +6 -9
  7. package/docs/basics.md +388 -75
  8. package/docs/bdd.md +4 -3
  9. package/docs/best.md +1 -1
  10. package/docs/books.md +31 -0
  11. package/docs/build/Appium.js +215 -176
  12. package/docs/build/Nightmare.js +618 -489
  13. package/docs/build/Polly.js +189 -0
  14. package/docs/build/Protractor.js +747 -608
  15. package/docs/build/Puppeteer.js +914 -633
  16. package/docs/build/REST.js +1 -1
  17. package/docs/build/TestCafe.js +1835 -0
  18. package/docs/build/WebDriver.js +861 -805
  19. package/docs/build/WebDriverIO.js +616 -617
  20. package/docs/changelog.md +410 -316
  21. package/docs/commands.md +6 -6
  22. package/docs/community-helpers.md +2 -0
  23. package/docs/detox.md +235 -0
  24. package/docs/examples.md +23 -0
  25. package/docs/helpers/ApiDataFactory.md +11 -10
  26. package/docs/helpers/Appium.md +130 -61
  27. package/docs/helpers/Detox.md +579 -0
  28. package/docs/helpers/FileSystem.md +2 -1
  29. package/docs/helpers/Mochawesome.md +1 -0
  30. package/docs/helpers/Nightmare.md +348 -128
  31. package/docs/helpers/Polly.md +85 -0
  32. package/docs/helpers/Protractor.md +451 -184
  33. package/docs/helpers/Puppeteer-firefox.md +55 -0
  34. package/docs/helpers/Puppeteer.md +619 -183
  35. package/docs/helpers/REST.md +17 -16
  36. package/docs/helpers/SeleniumWebdriver.md +9 -8
  37. package/docs/helpers/TestCafe.md +1168 -0
  38. package/docs/helpers/WebDriver.md +600 -291
  39. package/docs/helpers/WebDriverIO.md +393 -278
  40. package/docs/helpers.md +37 -18
  41. package/docs/locators.md +2 -0
  42. package/docs/mobile-react-native-locators.md +64 -0
  43. package/docs/mobile.md +5 -0
  44. package/docs/plugins.md +54 -13
  45. package/docs/puppeteer.md +74 -26
  46. package/docs/quickstart.md +47 -12
  47. package/docs/react.md +67 -0
  48. package/docs/reports.md +1 -1
  49. package/docs/{webapi/_keys.mustache → shared/keys.mustache} +0 -0
  50. package/docs/shared/react.mustache +1 -0
  51. package/docs/testcafe.md +157 -0
  52. package/docs/videos.md +19 -0
  53. package/docs/webapi/amOnPage.mustache +1 -1
  54. package/docs/webapi/appendField.mustache +2 -2
  55. package/docs/webapi/attachFile.mustache +2 -2
  56. package/docs/webapi/checkOption.mustache +2 -2
  57. package/docs/webapi/clearCookie.mustache +1 -1
  58. package/docs/webapi/clearField.mustache +1 -1
  59. package/docs/webapi/click.mustache +2 -2
  60. package/docs/webapi/clickLink.mustache +3 -3
  61. package/docs/webapi/dontSee.mustache +6 -3
  62. package/docs/webapi/dontSeeCheckboxIsChecked.mustache +7 -1
  63. package/docs/webapi/dontSeeCookie.mustache +5 -1
  64. package/docs/webapi/dontSeeCurrentUrlEquals.mustache +6 -1
  65. package/docs/webapi/dontSeeElement.mustache +5 -1
  66. package/docs/webapi/dontSeeElementInDOM.mustache +5 -1
  67. package/docs/webapi/dontSeeInCurrentUrl.mustache +1 -1
  68. package/docs/webapi/dontSeeInField.mustache +7 -2
  69. package/docs/webapi/dontSeeInSource.mustache +5 -1
  70. package/docs/webapi/dontSeeInTitle.mustache +5 -1
  71. package/docs/webapi/doubleClick.mustache +2 -2
  72. package/docs/webapi/downloadFile.mustache +2 -2
  73. package/docs/webapi/dragAndDrop.mustache +2 -2
  74. package/docs/webapi/dragSlider.mustache +2 -2
  75. package/docs/webapi/executeAsyncScript.mustache +1 -1
  76. package/docs/webapi/executeScript.mustache +1 -1
  77. package/docs/webapi/fillField.mustache +2 -2
  78. package/docs/webapi/grabAttributeFrom.mustache +3 -2
  79. package/docs/webapi/grabBrowserLogs.mustache +3 -1
  80. package/docs/webapi/grabCookie.mustache +2 -1
  81. package/docs/webapi/grabCssPropertyFrom.mustache +3 -2
  82. package/docs/webapi/grabCurrentUrl.mustache +3 -1
  83. package/docs/webapi/grabDataFromPerformanceTiming.mustache +19 -0
  84. package/docs/webapi/grabHTMLFrom.mustache +2 -1
  85. package/docs/webapi/grabNumberOfOpenTabs.mustache +4 -2
  86. package/docs/webapi/grabNumberOfVisibleElements.mustache +3 -2
  87. package/docs/webapi/grabPageScrollPosition.mustache +3 -1
  88. package/docs/webapi/grabSource.mustache +3 -1
  89. package/docs/webapi/grabTextFrom.mustache +2 -1
  90. package/docs/webapi/grabTitle.mustache +3 -1
  91. package/docs/webapi/grabValueFrom.mustache +2 -1
  92. package/docs/webapi/moveCursorTo.mustache +3 -3
  93. package/docs/webapi/pressKey.mustache +1 -1
  94. package/docs/webapi/resizeWindow.mustache +2 -2
  95. package/docs/webapi/rightClick.mustache +2 -2
  96. package/docs/webapi/saveScreenshot.mustache +3 -3
  97. package/docs/webapi/say.mustache +2 -2
  98. package/docs/webapi/scrollPageToBottom.mustache +1 -1
  99. package/docs/webapi/scrollPageToTop.mustache +1 -1
  100. package/docs/webapi/scrollTo.mustache +3 -3
  101. package/docs/webapi/see.mustache +2 -2
  102. package/docs/webapi/seeAttributesOnElements.mustache +3 -3
  103. package/docs/webapi/seeCheckboxIsChecked.mustache +2 -1
  104. package/docs/webapi/seeCookie.mustache +1 -1
  105. package/docs/webapi/seeCssPropertiesOnElements.mustache +2 -2
  106. package/docs/webapi/seeCurrentUrlEquals.mustache +1 -1
  107. package/docs/webapi/seeElement.mustache +1 -1
  108. package/docs/webapi/seeElementInDOM.mustache +1 -1
  109. package/docs/webapi/seeInCurrentUrl.mustache +1 -1
  110. package/docs/webapi/seeInField.mustache +2 -2
  111. package/docs/webapi/seeInSource.mustache +1 -1
  112. package/docs/webapi/seeInTitle.mustache +5 -1
  113. package/docs/webapi/seeNumberOfElements.mustache +10 -0
  114. package/docs/webapi/seeNumberOfVisibleElements.mustache +2 -2
  115. package/docs/webapi/selectOption.mustache +2 -2
  116. package/docs/webapi/setCookie.mustache +1 -1
  117. package/docs/webapi/switchTo.mustache +6 -1
  118. package/docs/webapi/uncheckOption.mustache +2 -2
  119. package/docs/webapi/wait.mustache +1 -2
  120. package/docs/webapi/waitForDetached.mustache +3 -3
  121. package/docs/webapi/waitForElement.mustache +2 -2
  122. package/docs/webapi/waitForEnabled.mustache +1 -1
  123. package/docs/webapi/waitForFunction.mustache +3 -3
  124. package/docs/webapi/waitForInvisible.mustache +3 -3
  125. package/docs/webapi/waitForText.mustache +3 -3
  126. package/docs/webapi/waitForValue.mustache +3 -3
  127. package/docs/webapi/waitForVisible.mustache +3 -3
  128. package/docs/webapi/waitInUrl.mustache +2 -2
  129. package/docs/webapi/waitNumberOfVisibleElements.mustache +3 -3
  130. package/docs/webapi/waitToHide.mustache +3 -3
  131. package/docs/webapi/waitUntil.mustache +3 -3
  132. package/docs/webapi/waitUrlEquals.mustache +2 -2
  133. package/docs/webdriver.md +453 -0
  134. package/lib/codecept.js +11 -9
  135. package/lib/command/definitions.js +183 -30
  136. package/lib/command/gherkin/snippets.js +29 -9
  137. package/lib/command/init.js +31 -9
  138. package/lib/command/run-multiple.js +46 -59
  139. package/lib/command/utils.js +1 -1
  140. package/lib/container.js +30 -4
  141. package/lib/data/dataScenarioConfig.js +18 -0
  142. package/lib/helper/Appium.js +24 -24
  143. package/lib/helper/Nightmare.js +81 -84
  144. package/lib/helper/Polly.js +189 -0
  145. package/lib/helper/Protractor.js +96 -86
  146. package/lib/helper/Puppeteer.js +238 -113
  147. package/lib/helper/REST.js +1 -1
  148. package/lib/helper/TestCafe.js +1257 -0
  149. package/lib/helper/WebDriver.js +217 -277
  150. package/lib/helper/WebDriverIO.js +75 -75
  151. package/lib/helper/clientscripts/nightmare.js +8 -0
  152. package/lib/helper/extras/React.js +55 -0
  153. package/lib/helper/testcafe/testControllerHolder.js +42 -0
  154. package/lib/helper/testcafe/testcafe-utils.js +63 -0
  155. package/lib/history.js +39 -0
  156. package/lib/hooks.js +25 -1
  157. package/lib/interfaces/gherkin.js +17 -1
  158. package/lib/interfaces/scenarioConfig.js +2 -2
  159. package/lib/listener/config.js +3 -3
  160. package/lib/locator.js +6 -0
  161. package/lib/pause.js +22 -1
  162. package/lib/plugin/allure.js +63 -0
  163. package/lib/plugin/autoLogin.js +65 -16
  164. package/lib/plugin/puppeteerCoverage.js +6 -1
  165. package/lib/plugin/stepByStepReport.js +4 -3
  166. package/lib/scenario.js +23 -17
  167. package/lib/step.js +5 -2
  168. package/lib/ui.js +1 -1
  169. package/lib/utils.js +70 -20
  170. package/package.json +20 -19
  171. package/translations/de-DE.js +69 -0
  172. package/translations/index.js +1 -0
  173. package/docs/video.md +0 -26
package/docs/changelog.md CHANGED
@@ -1,13 +1,110 @@
1
+ ---
2
+ id: changelog
3
+ title: Releases
4
+ ---
5
+
6
+ ## 2.2.1
7
+
8
+ * **[WebDriver]** A [dedicated guide](https://codecept.io/webdriver) written.
9
+ * **[TestCade]** A [dedicated guide](https://codecept.io/testcafe) written.
10
+ * **[Puppeteer]** A [chapter on mocking](https://codecept.io/puppeteer#mocking-requests) written
11
+ * [Puppeteer][Nightmare][TestCafe] Window mode is enabled by default on `codeceptjs init`.
12
+ * **[TestCafe]** Actions implemented by **[hubidu](https://github.com/hubidu)**
13
+ * `grabPageScrollPosition`
14
+ * `scrollPageToTop`
15
+ * `scrollPageToBottom`
16
+ * `scrollTo`
17
+ * `switchTo`
18
+ * Intellisense improvements. Renamed `tsconfig.json` to `jsconfig.json` on init. Fixed autocompletion for Visual Studio Code.
19
+ * **[Polly]** Take configuration values from Puppeteer. Fix [#1766](https://github.com/Codeception/CodeceptJS/issues/1766) by **[VikalpP](https://github.com/VikalpP)**
20
+ * **[Polly]** Add preconditions to check for puppeteer page availability by **[VikalpP](https://github.com/VikalpP)**. Fixes [#1767](https://github.com/Codeception/CodeceptJS/issues/1767)
21
+ * **[WebDriver]** Use filename for `uploadFile` by **[VikalpP](https://github.com/VikalpP)**. See [#1797](https://github.com/Codeception/CodeceptJS/issues/1797)
22
+ * **[Puppeteer]** Configure speed of input with `pressKeyDelay` option. By **[hubidu](https://github.com/hubidu)**
23
+ * Fixed recursive loading of support objects by **[davertmik](https://github.com/davertmik)**.
24
+ * Fixed support object definitions in steps.d.ts by **[johnyb](https://github.com/johnyb)**. Fixes [#1795](https://github.com/Codeception/CodeceptJS/issues/1795)
25
+ * Fixed `Data().Scenario().injectDependencies()` is not a function by **[andrerleao](https://github.com/andrerleao)**
26
+ * Fixed crash when using xScenario & Scenario.skip with tag by **[VikalpP](https://github.com/VikalpP)**. Fixes [#1751](https://github.com/Codeception/CodeceptJS/issues/1751)
27
+ * Dynamic configuration of helpers can be performed with async function. See [#1786](https://github.com/Codeception/CodeceptJS/issues/1786) by **[cviejo](https://github.com/cviejo)**
28
+ * Added TS definitions for internal objects by **[Vorobeyko](https://github.com/Vorobeyko)**
29
+ * BDD improvements:
30
+ * Fix for snippets command with a .feature file that has special characters by **[asselin](https://github.com/asselin)**
31
+ * Fix `--path` option on `gherkin:snippets` command by **[asselin](https://github.com/asselin)**. See [#1790](https://github.com/Codeception/CodeceptJS/issues/1790)
32
+ * Added `--feature` option to `gherkin:snippets` to enable creating snippets for a subset of .feature files. See [#1803](https://github.com/Codeception/CodeceptJS/issues/1803) by **[asselin](https://github.com/asselin)**.
33
+ * Fixed: dynamic configs not reset after test. Fixes [#1776](https://github.com/Codeception/CodeceptJS/issues/1776) by **[cviejo](https://github.com/cviejo)**.
34
+
35
+ ## 2.2.0
36
+
37
+ * **EXPERIMENTAL** [**TestCafe** helper](https://codecept.io/helpers/TestCafe) introduced. TestCafe allows to run cross-browser tests it its own very fast engine. Supports all browsers including mobile. Thanks to **[hubidu](https://github.com/hubidu)** for implementation! Please test it and send us feedback.
38
+ * **[Puppeteer]** Mocking requests enabled by introducing [Polly.js helper](https://codecept.io/helpers/Polly). Thanks **[VikalpP](https://github.com/VikalpP)**
39
+
40
+ ```js
41
+ // use Polly & Puppeteer helpers
42
+ I.mockRequest('GET', '/api/users', 200);
43
+ I.mockRequest('POST', '/users', { user: { name: 'fake' }});
44
+ ```
45
+
46
+ * **EXPERIMENTAL** **[Puppeteer]** [Firefox support](https://codecept.io/helpers/Puppeteer-firefox) introduced by **[ngadiyak](https://github.com/ngadiyak)**, see [#1740](https://github.com/Codeception/CodeceptJS/issues/1740)
47
+ * **[stepByStepReportPlugin]** use md5 hash to generate reports into unique folder. Fix [#1744](https://github.com/Codeception/CodeceptJS/issues/1744) by **[chimurai](https://github.com/chimurai)**
48
+ * Interactive pause improvements:
49
+ * print result of `grab` commands
50
+ * print message for successful assertions
51
+ * `run-multiple` (parallel execution) improvements:
52
+ * `bootstrapAll` must be called before creating chunks. [#1741](https://github.com/Codeception/CodeceptJS/issues/1741) by **[Vorobeyko](https://github.com/Vorobeyko)**
53
+ * Bugfix: If value in config has falsy value then multiple config does not overwrite original value. [#1756](https://github.com/Codeception/CodeceptJS/issues/1756) by **[LukoyanovE](https://github.com/LukoyanovE)**
54
+ * Fixed hooks broken in 2.1.5 by **[Vorobeyko](https://github.com/Vorobeyko)**
55
+ * Fix references to support objects when using Dependency Injection. Fix by **[johnyb](https://github.com/johnyb)**. See [#1701](https://github.com/Codeception/CodeceptJS/issues/1701)
56
+ * Fix dynamic config applied for multiple helpers by **[VikalpP](https://github.com/VikalpP)** [#1743](https://github.com/Codeception/CodeceptJS/issues/1743)
57
+
58
+
59
+ ## 2.1.5
60
+
61
+ * **EXPERIMENTAL** [Wix Detox support](https://github.com/Codeception/detox-helper) introduced as standalone helper. Provides a faster alternative to Appium for mobile testing.
62
+ * Saving successful commands inside interactive pause into `_output/cli-history` file. By **[hubidu](https://github.com/hubidu)**
63
+ * Fixed hanging error handler inside scenario. See [#1721](https://github.com/Codeception/CodeceptJS/issues/1721) by **[haily-lgc](https://github.com/haily-lgc)**.
64
+ * Fixed by **[Vorobeyko](https://github.com/Vorobeyko)**: tests did not fail when an exception was raised in async bootstrap.
65
+ * **[WebDriver]** Added window control methods by **[emmonspired](https://github.com/emmonspired)**
66
+ * `grabAllWindowHandles` returns all window handles
67
+ * `grabCurrentWindowHandle` returns current window handle
68
+ * `switchToWindow` switched to window by its handle
69
+ * **[Appium]** Fixed using `host` as configuration by **[trinhpham](https://github.com/trinhpham)**
70
+ * Fixed `run-multiple` command when `tests` config option is undefined (in Gherkin scenarios). By **[gkushang](https://github.com/gkushang)**.
71
+ * German translation introduced by **[hubidu](https://github.com/hubidu)**
72
+
73
+ ## 2.1.4
74
+
75
+ * [WebDriver][Puppeteer][Protractor][Nightmare] A11y locator support introduced by **[Holorium](https://github.com/Holorium)**. Clickable elements as well as fields can be located by following attributes:
76
+ * `aria-label`
77
+ * `title`
78
+ * `aria-labelledby`
79
+ * **[Puppeteer]** Added support for React locators.
80
+ * New [React Guide](https://codecept.io/react) added.
81
+ * **[Puppeteer]** Deprecated `downloadFile`
82
+ * **[Puppeteer]** Introduced `handleDownloads` replacing `downloadFile`
83
+ * [puppeteerCoverage plugin] Fixed path already exists error by **[seta-tuha](https://github.com/seta-tuha)**.
84
+ * Fixed 'ERROR: ENAMETOOLONG' creating directory names in `run-multiple` with long config. By **[artvinn](https://github.com/artvinn)**
85
+ * **[REST]** Fixed url autocompletion combining base and relative paths by **[LukoyanovE](https://github.com/LukoyanovE)**
86
+ * [Nightmare][Protractor] `uncheckOption` method introduced by **[PeterNgTr](https://github.com/PeterNgTr)**
87
+ * [autoLogin plugin] Enable to use without `await` by **[tsuemura](https://github.com/tsuemura)**
88
+ * **[Puppeteer]** Fixed `UnhandledPromiseRejectionWarning: "Execution context was destroyed...` by **[adrielcodeco](https://github.com/adrielcodeco)**
89
+ * **[WebDriver]** Keep browser window dimensions when starting a new session by **[spiroid](https://github.com/spiroid)**
90
+ * Replace Ghekrin plceholders with values in files that combine a scenerio outline and table by **[medtoure18](https://github.com/medtoure18)**.
91
+ * Added Documentation to [locate elements in React Native](https://codecept.io/mobile-react-native-locators) apps. By **[DimGun](https://github.com/DimGun)**.
92
+ * Adding optional `path` parameter to `bdd:snippets` command to append snippets to a specific file. By **[cthorsen31](https://github.com/cthorsen31)**.
93
+ * Added optional `output` parameter to `def` command by **[LukoyanovE](https://github.com/LukoyanovE)**.
94
+ * **[Puppeteer]** Added `grabDataFromPerformanceTiming` by **[PeterNgTr](https://github.com/PeterNgTr)**.
95
+ * axios updated to `0.19.0` by **[SteveShaffer](https://github.com/SteveShaffer)**
96
+ * TypeScript defitions updated by **[LukoyanovE](https://github.com/LukoyanovE)**. Added `secret` and `inject` function.
97
+
1
98
  ## 2.1.3
2
99
 
3
100
  * Fixed autoLogin plugin to inject `login` function
4
- * Fixed using `toString()` in DataTablewhen it is defined by @tsuemura
101
+ * Fixed using `toString()` in DataTablewhen it is defined by **[tsuemura](https://github.com/tsuemura)**
5
102
 
6
103
  ## 2.1.2
7
104
 
8
105
  * Fixed `inject` to load objects recursively.
9
- * Fixed TypeScript definitions for locators by @LukoyanovE
10
- * **EXPERIMENTAL** [WebDriver] ReactJS locators support with webdriverio v5.8+:
106
+ * Fixed TypeScript definitions for locators by **[LukoyanovE](https://github.com/LukoyanovE)**
107
+ * **EXPERIMENTAL** **[WebDriver]** ReactJS locators support with webdriverio v5.8+:
11
108
 
12
109
  ```js
13
110
  // locating React element by name, prop, state
@@ -17,7 +114,7 @@ I.seeElement({ react: 'component-name', props: {}, state: {} });
17
114
 
18
115
  ## 2.1.1
19
116
 
20
- * Do not retry `within` and `session` calls inside `retryFailedStep` plugin. Fix by @tsuemura
117
+ * Do not retry `within` and `session` calls inside `retryFailedStep` plugin. Fix by **[tsuemura](https://github.com/tsuemura)**
21
118
 
22
119
  ## 2.1.0
23
120
 
@@ -32,33 +129,33 @@ const myPage = require('../page/myPage');
32
129
  const { I, myPage } = inject();
33
130
  ```
34
131
 
35
- * Added global `secret` function to fill in sensitive data by @RohanHart:
132
+ * Added global `secret` function to fill in sensitive data. By **[RohanHart](https://github.com/RohanHart)**:
36
133
 
37
134
  ```js
38
135
  I.fillField('password', secret('123456'));
39
136
  ```
40
137
 
41
- * [wdioPlugin](https://codecept.io/plugins/#wdio) Added a plugin to **support webdriverio services** including *selenium-standalone*, *sauce*, *browserstack*, etc. **Sponsored by @GSasu**
42
- * [Appium] Fixed `swipe*` methods by @PeterNgTr
138
+ * [wdioPlugin](https://codecept.io/plugins/#wdio) Added a plugin to **support webdriverio services** including *selenium-standalone*, *sauce*, *browserstack*, etc. **Sponsored by **[GSasu](https://github.com/GSasu)****
139
+ * **[Appium]** Fixed `swipe*` methods by **[PeterNgTr](https://github.com/PeterNgTr)**
43
140
  * BDD Gherkin Improvements:
44
- * Implemented `run-multiple` for feature files. **Sponsored by @GSasu**
45
- * Added `--features` and `--tests` options to `run-multiple`. **Sponsored by @GSasu**
141
+ * Implemented `run-multiple` for feature files. **Sponsored by **[GSasu](https://github.com/GSasu)****
142
+ * Added `--features` and `--tests` options to `run-multiple`. **Sponsored by **[GSasu](https://github.com/GSasu)****
46
143
  * Implemented `Before` and `After` hooks in [step definitions](https://codecept.io/bdd#before)
47
- * Fixed running tests by absolute path. By @batalov.
48
- * Enabled the adding screenshot to failed test for moch-junit-reporter by @PeterNgTr.
49
- * [Puppeteer] Implemented `uncheckOption` and fixed behavior of `checkOption` by @aml2610
50
- * [WebDriver] Fixed `seeTextEquals` on empty strings by @PeterNgTr
51
- * [Puppeteer] Fixed launch with `browserWSEndpoint` config by @ngadiyak.
52
- * [Puppeteer] Fixed switching back to main window in multi-session mode by @davertmik.
53
- * [autoLoginPlugin] Fixed using async functions for auto login by @nitschSB
144
+ * Fixed running tests by absolute path. By **[batalov](https://github.com/batalov)**.
145
+ * Enabled the adding screenshot to failed test for moch-junit-reporter by **[PeterNgTr](https://github.com/PeterNgTr)**.
146
+ * **[Puppeteer]** Implemented `uncheckOption` and fixed behavior of `checkOption` by **[aml2610](https://github.com/aml2610)**
147
+ * **[WebDriver]** Fixed `seeTextEquals` on empty strings by **[PeterNgTr](https://github.com/PeterNgTr)**
148
+ * **[Puppeteer]** Fixed launch with `browserWSEndpoint` config by **[ngadiyak](https://github.com/ngadiyak)**.
149
+ * **[Puppeteer]** Fixed switching back to main window in multi-session mode by **[davertmik](https://github.com/davertmik)**.
150
+ * **[autoLoginPlugin]** Fixed using async functions for auto login by **[nitschSB](https://github.com/nitschSB)**
54
151
 
55
- > This release was partly sponsored by @GSasu. Thanks for the support!
56
- Do you want to improve this project? [Learn more about sponsoring CodeceptJS](https://github.com/Codeception/CodeceptJS/issues/1462)
152
+ > This release was partly sponsored by **[GSasu](https://github.com/GSasu)**. Thanks for the support!
153
+ Do you want to improve this project? [Learn more about sponsorin CodeceptJS
57
154
 
58
155
 
59
156
  ## 2.0.8
60
157
 
61
- * [Puppeteer] Added `downloadFile` action by @PeterNgTr.
158
+ * **[Puppeteer]** Added `downloadFile` action by **[PeterNgTr](https://github.com/PeterNgTr)**.
62
159
 
63
160
  Use it with `FileSystem` helper to test availability of a file:
64
161
  ```js
@@ -68,48 +165,48 @@ Use it with `FileSystem` helper to test availability of a file:
68
165
  ```
69
166
  > Actions `amInPath` and `seeFile` are taken from [FileSystem](https://codecept.io/helpers/FileSystem) helper
70
167
 
71
- * [Puppeteer] Fixed `autoLogin` plugin with Puppeteer by @davertmik
72
- * [WebDriver] `seeInField` should throw error if element has no value attrubite. By @PeterNgTr
73
- * [WebDriver] Fixed `seeTextEquals` passes for any string if element is empty by @PeterNgTr.
74
- * [WebDriver] Internal refctoring to use `el.isDisplayed` to match latest webdriverio implementation. Thanks to @LukoyanovE
75
- * [allure plugin] Add ability enable [screenshotDiff plugin](https://github.com/allure-framework/allure2/blob/master/plugins/screen-diff-plugin/README.md) by @Vorobeyko
76
- * [Appium] Fixed `locator.stringify` call by @LukoyanovE
168
+ * **[Puppeteer]** Fixed `autoLogin` plugin with Puppeteer by **[davertmik](https://github.com/davertmik)**
169
+ * **[WebDriver]** `seeInField` should throw error if element has no value attrubite. By **[PeterNgTr](https://github.com/PeterNgTr)**
170
+ * **[WebDriver]** Fixed `seeTextEquals` passes for any string if element is empty by **[PeterNgTr](https://github.com/PeterNgTr)**.
171
+ * **[WebDriver]** Internal refctoring to use `el.isDisplayed` to match latest webdriverio implementation. Thanks to **[LukoyanovE](https://github.com/LukoyanovE)**
172
+ * [allure plugin] Add ability enable [screenshotDiff plugin](https://github.com/allure-framework/allure2/blob/master/plugins/screen-diff-plugin/README.md) by **[Vorobeyko](https://github.com/Vorobeyko)**
173
+ * **[Appium]** Fixed `locator.stringify` call by **[LukoyanovE](https://github.com/LukoyanovE)**
77
174
 
78
175
  ## 2.0.7
79
176
 
80
- * [WebDriver][Protractor][Nightmare] `rightClick` method implemented (fixed) in a standard way. By @davertmik
81
- * [WebDriver] Updated WebDriver API calls in helper. By @PeterNgTr
82
- * [stepByStepReportPlugin] Added `screenshotsForAllureReport` config options to automatically attach screenshots to allure reports. By @PeterNgTr
83
- * [allurePlugin] Added `addLabel` method by @Vorobeyko
84
- * Locator Builder: fixed `withChild` and `withDescendant` to match deep nested siblings by @Vorobeyko.
177
+ * [WebDriver][Protractor][Nightmare] `rightClick` method implemented (fixed) in a standard way. By **[davertmik](https://github.com/davertmik)**
178
+ * **[WebDriver]** Updated WebDriver API calls in helper. By **[PeterNgTr](https://github.com/PeterNgTr)**
179
+ * **[stepByStepReportPlugin]** Added `screenshotsForAllureReport` config options to automatically attach screenshots to allure reports. By **[PeterNgTr](https://github.com/PeterNgTr)**
180
+ * **[allurePlugin]** Added `addLabel` method by **[Vorobeyko](https://github.com/Vorobeyko)**
181
+ * Locator Builder: fixed `withChild` and `withDescendant` to match deep nested siblings by **[Vorobeyko](https://github.com/Vorobeyko)**.
85
182
 
86
183
  ## 2.0.6
87
184
 
88
185
  * Introduced [Custom Locator Strategies](https://codecept.io/locators#custom-locators).
89
- * Added [Visual Testing Guide](https://codecept.io/visual) by @puneet0191 and @MitkoTschimev.
90
- * [Puppeteer] [`puppeteerCoverage`](https://codecept.io/plugins#puppeteercoverage) plugin added to collect code coverage in JS. By @dvillarama
91
- * Make override option in `run-multiple` to respect the generated overridden config by @kinyat
92
- * Fixed deep merge for `container.append()`. Introduced `lodash.merge()`. By @Vorobeyko
186
+ * Added [Visual Testing Guide](https://codecept.io/visual) by **[puneet0191](https://github.com/puneet0191)** and **[MitkoTschimev](https://github.com/MitkoTschimev)**.
187
+ * **[Puppeteer]** [`puppeteerCoverage`](https://codecept.io/plugins#puppeteercoverage) plugin added to collect code coverage in JS. By **[dvillarama](https://github.com/dvillarama)**
188
+ * Make override option in `run-multiple` to respect the generated overridden config by **[kinyat](https://github.com/kinyat)**
189
+ * Fixed deep merge for `container.append()`. Introduced `lodash.merge()`. By **[Vorobeyko](https://github.com/Vorobeyko)**
93
190
  * Fixed saving screenshot on Windows by
94
191
  * Fix errors on using interactive shell with Allure plugin by tsuemura
95
- * Fixed using dynamic injections with `Scenario().injectDependencies` by @tsemura
96
- * [WebDriver][Puppeteer][Nightmare][Protractor] Fixed url protocol detection for non-http urls by @LukoyanovE
97
- * [WebDriver] Enabled compatibility with `stepByStepReport` by @tsuemura
98
- * [WebDriver] Fixed `grabHTMLFrom` to return innerHTML value by @Holorium. Fixed compatibility with WebDriverIO.
99
- * [WebDriver] `grabHTMLFrom` to return one HTML vlaue for one element matched, array if multiple elements found by @davertmik.
100
- * [Nightmare] Added `grabHTMLFrom` by @davertmik
101
- * Fixed `bootstrapAll` and `teardownAll` launch with path as argument by @LukoyanovE
102
- * Fixed `bootstrapAll` and `teardownAll` calls from exported object by @LukoyanovE
103
- * [WebDriver] Added possibility to define conditional checks interval for `waitUntil` by @LukoyanovE
104
- * Fixed storing current data in data driven tests in a test object. By @Vorobeyko
105
- * [WebDriver] Fixed `hostname` config option overwrite when setting a cloud provider. By @LukoyanovE
106
- * [WebDriver] `dragSlider` method implemented by @DavertMik
107
- * [WebDrover] Fixed `scrollTo` to use new webdriverio API by @PeterNgTr
108
- * Added Japanese translation file by @tsemura
109
- * Added `Locator.withDescendant()` method to find an element which contains a descendant (child, grandchild) by @Vorobeyko
110
- * [WebDriver] Fixed configuring capabilities for Selenoid and IE by @Vorobeyko
111
- * [WebDriver] Restore original window size when taking full size screenshot by @tsuemura
112
- * Enabled `throws()`,` fails()`, `retry()`, `timeout()`, `config()` functions for data driven tests. By @jjm409
192
+ * Fixed using dynamic injections with `Scenario().injectDependencies` by **[tsemura](https://github.com/tsemura)**
193
+ * [WebDriver][Puppeteer][Nightmare][Protractor] Fixed url protocol detection for non-http urls by **[LukoyanovE](https://github.com/LukoyanovE)**
194
+ * **[WebDriver]** Enabled compatibility with `stepByStepReport` by **[tsuemura](https://github.com/tsuemura)**
195
+ * **[WebDriver]** Fixed `grabHTMLFrom` to return innerHTML value by **[Holorium](https://github.com/Holorium)**. Fixed compatibility with WebDriverIO.
196
+ * **[WebDriver]** `grabHTMLFrom` to return one HTML vlaue for one element matched, array if multiple elements found by **[davertmik](https://github.com/davertmik)**.
197
+ * **[Nightmare]** Added `grabHTMLFrom` by **[davertmik](https://github.com/davertmik)**
198
+ * Fixed `bootstrapAll` and `teardownAll` launch with path as argument by **[LukoyanovE](https://github.com/LukoyanovE)**
199
+ * Fixed `bootstrapAll` and `teardownAll` calls from exported object by **[LukoyanovE](https://github.com/LukoyanovE)**
200
+ * **[WebDriver]** Added possibility to define conditional checks interval for `waitUntil` by **[LukoyanovE](https://github.com/LukoyanovE)**
201
+ * Fixed storing current data in data driven tests in a test object. By **[Vorobeyko](https://github.com/Vorobeyko)**
202
+ * **[WebDriver]** Fixed `hostname` config option overwrite when setting a cloud provider. By **[LukoyanovE](https://github.com/LukoyanovE)**
203
+ * **[WebDriver]** `dragSlider` method implemented by **[DavertMik](https://github.com/DavertMik)**
204
+ * **[WebDrover]** Fixed `scrollTo` to use new webdriverio API by **[PeterNgTr](https://github.com/PeterNgTr)**
205
+ * Added Japanese translation file by **[tsemura](https://github.com/tsemura)**
206
+ * Added `Locator.withDescendant()` method to find an element which contains a descendant (child, grandchild) by **[Vorobeyko](https://github.com/Vorobeyko)**
207
+ * **[WebDriver]** Fixed configuring capabilities for Selenoid and IE by **[Vorobeyko](https://github.com/Vorobeyko)**
208
+ * **[WebDriver]** Restore original window size when taking full size screenshot by **[tsuemura](https://github.com/tsuemura)**
209
+ * Enabled `throws()`,` fails()`, `retry()`, `timeout()`, `config()` functions for data driven tests. By **[jjm409](https://github.com/jjm409)**
113
210
 
114
211
  ## 2.0.5
115
212
 
@@ -117,15 +214,15 @@ Use it with `FileSystem` helper to test availability of a file:
117
214
 
118
215
  ## 2.0.4
119
216
 
120
- * [WebDriver][Protractor][Nightmare][Puppeteer] `grabAttributeFrom` returns an array when multiple elements matched. By @PeterNgTr
121
- * [autoLogin plugin] Fixed merging users config by @nealfennimore
122
- * [autoDelay plugin] Added WebDriver to list of supported helpers by @mattin4d
123
- * [Appium] Fixed using locators in `waitForElement`, `waitForVisible`, `waitForInvisible`. By @eduardofinotti
124
- * [allure plugin] Add tags to allure reports by @Vorobeyko
125
- * [allure plugin] Add skipped tests to allure reports by @Vorobeyko
126
- * Fixed `Logged Test name | [object Object]` when used Data().Scenario(). By @Vorobeyko
127
- * Fixed Data().only.Scenario() to run for all datasets. By @Vorobeyko
128
- * [WebDriver] `attachFile` to work with hidden elements. Fixed in [#1460](https://github.com/Codeception/CodeceptJS/pull/1460) by @tsuemura
217
+ * [WebDriver][Protractor][Nightmare][Puppeteer] `grabAttributeFrom` returns an array when multiple elements matched. By **[PeterNgTr](https://github.com/PeterNgTr)**
218
+ * [autoLogin plugin] Fixed merging users config by **[nealfennimore](https://github.com/nealfennimore)**
219
+ * [autoDelay plugin] Added WebDriver to list of supported helpers by **[mattin4d](https://github.com/mattin4d)**
220
+ * **[Appium]** Fixed using locators in `waitForElement`, `waitForVisible`, `waitForInvisible`. By **[eduardofinotti](https://github.com/eduardofinotti)**
221
+ * [allure plugin] Add tags to allure reports by **[Vorobeyko](https://github.com/Vorobeyko)**
222
+ * [allure plugin] Add skipped tests to allure reports by **[Vorobeyko](https://github.com/Vorobeyko)**
223
+ * Fixed `Logged Test name | [object Object]` when used Data().Scenario(). By **[Vorobeyko](https://github.com/Vorobeyko)**
224
+ * Fixed Data().only.Scenario() to run for all datasets. By **[Vorobeyko](https://github.com/Vorobeyko)**
225
+ * **[WebDriver]** `attachFile` to work with hidden elements. Fixed in [#1460](https://github.com/Codeception/CodeceptJS/issues/1460) by **[tsuemura](https://github.com/tsuemura)**
129
226
 
130
227
 
131
228
 
@@ -134,8 +231,8 @@ Use it with `FileSystem` helper to test availability of a file:
134
231
  * [**autoLogin plugin**](https://codecept.io/plugins#autologin) added. Allows to log in once and reuse browser session. When session expires - automatically logs in again. Can persist session between runs by saving cookies to file.
135
232
  * Fixed `Maximum stack trace` issue in `retryFailedStep` plugin.
136
233
  * Added `locate()` function into the interactive shell.
137
- * [WebDriver] Disabled smartWait for interactive shell.
138
- * [Appium] Updated methods to use for mobile locators
234
+ * **[WebDriver]** Disabled smartWait for interactive shell.
235
+ * **[Appium]** Updated methods to use for mobile locators
139
236
  * `waitForElement`
140
237
  * `waitForVisible`
141
238
  * `waitForInvisible`
@@ -143,18 +240,18 @@ Use it with `FileSystem` helper to test availability of a file:
143
240
 
144
241
  ## 2.0.2
145
242
 
146
- * [Puppeteer] Improved handling of connection with remote browser using Puppeteer by @martomo
147
- * [WebDriver] Updated to webdriverio 5.2.2 by @martomo
148
- * Interactive pause improvements by @davertmik
243
+ * **[Puppeteer]** Improved handling of connection with remote browser using Puppeteer by **[martomo](https://github.com/martomo)**
244
+ * **[WebDriver]** Updated to webdriverio 5.2.2 by **[martomo](https://github.com/martomo)**
245
+ * Interactive pause improvements by **[davertmik](https://github.com/davertmik)**
149
246
  * Disable retryFailedStep plugin in in interactive mode
150
247
  * Removes `Interface: parseInput` while in interactive pause
151
- * [ApiDataFactory] Improvements
248
+ * **[ApiDataFactory]** Improvements
152
249
  * added `fetchId` config option to override id retrieval from payload
153
250
  * added `onRequest` config option to update request in realtime
154
251
  * added `returnId` config option to return ids of created items instead of items themvelves
155
252
  * added `headers` config option to override default headers.
156
253
  * added a new chapter into [DataManagement](https://codecept.io/data#api-requests-using-browser-session)
157
- * [REST] Added `onRequest` config option
254
+ * **[REST]** Added `onRequest` config option
158
255
 
159
256
 
160
257
  ## 2.0.1
@@ -162,11 +259,11 @@ Use it with `FileSystem` helper to test availability of a file:
162
259
  * Fixed creating project with `codecept init`.
163
260
  * Fixed error while installing webdriverio@5.
164
261
  * Added code beautifier for generated configs.
165
- * [WebDriver] Updated to webdriverio 5.1.0
262
+ * **[WebDriver]** Updated to webdriverio 5.1.0
166
263
 
167
264
  ## 2.0.0
168
265
 
169
- * [WebDriver] **Breaking Change.** Updated to webdriverio v5. New helper **WebDriver** helper introduced.
266
+ * **[WebDriver]** **Breaking Change.** Updated to webdriverio v5. New helper **WebDriver** helper introduced.
170
267
 
171
268
  * **Upgrade plan**:
172
269
 
@@ -183,8 +280,8 @@ Use it with `FileSystem` helper to test availability of a file:
183
280
 
184
281
  * Known issues: `attachFile` doesn't work with proxy server.
185
282
 
186
- * [Appium] **Breaking Change.** Updated to use webdriverio v5 as well. See upgrade plan ↑
187
- * [REST] **Breaking Change.** Replaced `unirest` library with `axios`.
283
+ * **[Appium]** **Breaking Change.** Updated to use webdriverio v5 as well. See upgrade plan ↑
284
+ * **[REST]** **Breaking Change.** Replaced `unirest` library with `axios`.
188
285
 
189
286
  * **Upgrade plan**:
190
287
 
@@ -192,34 +289,34 @@ Use it with `FileSystem` helper to test availability of a file:
192
289
  2. If you were using `unirest` requests/responses in your tests change them to axios format.
193
290
  * **Breaking Change.** Generators support in tests removed. Use `async/await` in your tests
194
291
  * **Using `codecept.conf.js` as default configuration format**
195
- * Fixed "enametoolong" error when saving screenshots for data driven tests by @PeterNgTr
292
+ * Fixed "enametoolong" error when saving screenshots for data driven tests by **[PeterNgTr](https://github.com/PeterNgTr)**
196
293
  * Updated NodeJS to 10 in Docker image
197
- * [Pupeteer] Add support to use WSEndpoint. Allows to execute tests remotely. [See #1350] by @gabrielcaires (https://github.com/Codeception/CodeceptJS/pull/1350)
198
- * In interactive shell [Enter] goes to next step. Improvement by @PeterNgTr.
199
- * `I.say` accepts second parameter as color to print colorful comments. Improvement by @PeterNgTr.
294
+ * **[Pupeteer]** Add support to use WSEndpoint. Allows to execute tests remotely. [See [#1350](https://github.com/Codeception/CodeceptJS/issues/1350)] by **[gabrielcaires](https://github.com/gabrielcaires)** (https://github.com/Codeception/CodeceptJS/pull/1350)
295
+ * In interactive shell **[Enter]** goes to next step. Improvement by **[PeterNgTr](https://github.com/PeterNgTr)**.
296
+ * `I.say` accepts second parameter as color to print colorful comments. Improvement by **[PeterNgTr](https://github.com/PeterNgTr)**.
200
297
 
201
298
  ```js
202
299
  I.say('This is red', 'red'); //red is used
203
300
  I.say('This is blue', 'blue'); //blue is used
204
301
  I.say('This is by default'); //cyan is used
205
302
  ```
206
- * Fixed allure reports for multi session testing by @PeterNgTr
207
- * Fixed allure reports for hooks by @PeterNgTr
303
+ * Fixed allure reports for multi session testing by **[PeterNgTr](https://github.com/PeterNgTr)**
304
+ * Fixed allure reports for hooks by **[PeterNgTr](https://github.com/PeterNgTr)**
208
305
 
209
306
  ## 1.4.6
210
307
 
211
- * [Puppeteer] `dragSlider` action added by @PeterNgTr
212
- * [Puppeteer] Fixed opening browser in shell mode by @allenhwkim
213
- * [Puppeteer] Fixed making screenshot on additional sessions by @PeterNgTr. Fixes [#1266](https://github.com/Codeception/CodeceptJS/issues/1266)
214
- * Added `--invert` option to `run-multiple` command by @LukoyanovE
215
- * Fixed steps in Allure reports by @PeterNgTr
216
- * Add option `output` to customize output directory in [stepByStepReport plugin](https://codecept.io/plugins/#stepbystepreport). By @fpsthirty
217
- * Changed type definition of PageObjects to get auto completion by @rhicu
218
- * Fixed steps output for async/arrow functions in CLI by @LukoyanovE. See [#1329](https://github.com/Codeception/CodeceptJS/pull/1329)
308
+ * **[Puppeteer]** `dragSlider` action added by **[PeterNgTr](https://github.com/PeterNgTr)**
309
+ * **[Puppeteer]** Fixed opening browser in shell mode by **[allenhwkim](https://github.com/allenhwkim)**
310
+ * **[Puppeteer]** Fixed making screenshot on additional sessions by **[PeterNgTr](https://github.com/PeterNgTr)**. Fixes [#1266](https://github.com/Codeception/CodeceptJS/issues/1266)
311
+ * Added `--invert` option to `run-multiple` command by **[LukoyanovE](https://github.com/LukoyanovE)**
312
+ * Fixed steps in Allure reports by **[PeterNgTr](https://github.com/PeterNgTr)**
313
+ * Add option `output` to customize output directory in [stepByStepReport plugin](https://codecept.io/plugins/#stepbystepreport). By **[fpsthirty](https://github.com/fpsthirty)**
314
+ * Changed type definition of PageObjects to get auto completion by **[rhicu](https://github.com/rhicu)**
315
+ * Fixed steps output for async/arrow functions in CLI by **[LukoyanovE](https://github.com/LukoyanovE)**. See [#1329](https://github.com/Codeception/CodeceptJS/issues/1329)
219
316
 
220
317
  ## 1.4.5
221
318
 
222
- * Add **require** param to main config. Allows to require Node modules before executing tests. By @LukoyanovE. For example:
319
+ * Add **require** param to main config. Allows to require Node modules before executing tests. By **[LukoyanovE](https://github.com/LukoyanovE)**. For example:
223
320
  * Use `ts-node/register` to register TypeScript parser
224
321
  * Use `should` to register should-style assertions
225
322
 
@@ -227,21 +324,21 @@ I.say('This is by default'); //cyan is used
227
324
  "require": ["ts-node/register", "should"]
228
325
  ```
229
326
 
230
- * [WebDriverIO] Fix timeouts definition to be compatible with W3C drivers. By @LukoyanovE
231
- * Fixed: exception in Before block w/ Mocha causes test not to report failure. See [#1292](https://github.com/Codeception/CodeceptJS/pull/1292) by @PeterNgTr
232
- * Command `run-parallel` now accepts `--override` flag. Thanks to @ClemCB
233
- * Fixed Allure report with Before/BeforeSuite/After/AfterSuite steps. By @PeterNgTr
234
- * Added `RUN_MULTIPLE` env variable to [Docker config](https://codecept.io/docker/). Allows to run tests in parallel inside a container. Thanks to @PeterNgTr
235
- * [Mochawesome] Fixed showing screenshot on failure. Fix by @PeterNgTr
327
+ * **[WebDriverIO]** Fix timeouts definition to be compatible with W3C drivers. By **[LukoyanovE](https://github.com/LukoyanovE)**
328
+ * Fixed: exception in Before block w/ Mocha causes test not to report failure. See [#1292](https://github.com/Codeception/CodeceptJS/issues/1292) by **[PeterNgTr](https://github.com/PeterNgTr)**
329
+ * Command `run-parallel` now accepts `--override` flag. Thanks to **[ClemCB](https://github.com/ClemCB)**
330
+ * Fixed Allure report with Before/BeforeSuite/After/AfterSuite steps. By **[PeterNgTr](https://github.com/PeterNgTr)**
331
+ * Added `RUN_MULTIPLE` env variable to [Docker config](https://codecept.io/docker/). Allows to run tests in parallel inside a container. Thanks to **[PeterNgTr](https://github.com/PeterNgTr)**
332
+ * **[Mochawesome]** Fixed showing screenshot on failure. Fix by **[PeterNgTr](https://github.com/PeterNgTr)**
236
333
  * Fixed running tests filtering by tag names defined via `Scenario.tag()`
237
334
 
238
335
  ## 1.4.4
239
336
 
240
337
  * [autoDelay plugin](https://codecept.io/plugins/#autoDelay) added. Adds tiny delay before and after an action so the page could react to actions performed.
241
- * [Puppeteer] improvements by @luismanuel001
338
+ * **[Puppeteer]** improvements by **[luismanuel001](https://github.com/luismanuel001)**
242
339
  * `click` no longer waits for navigation
243
340
  * `clickLink` method added. Performs a click and waits for navigation.
244
- * Bootstrap scripts to be started only for `run` command and ignored on `list`, `def`, etc. Fix by @LukoyanovE
341
+ * Bootstrap scripts to be started only for `run` command and ignored on `list`, `def`, etc. Fix by **[LukoyanovE](https://github.com/LukoyanovE)**
245
342
 
246
343
 
247
344
  ## 1.4.3
@@ -257,32 +354,32 @@ Scenario('update user profile', () => {
257
354
  }).tag('@slow');
258
355
  ```
259
356
 
260
- * Fixed attaching Allure screenshot on exception. Fix by @DevinWatson
261
- * Improved type definitions for custom steps. By @Akxe
262
- * Fixed setting `multiple.parallel.chunks` as environment variable in config. See [#1238](https://github.com/Codeception/CodeceptJS/pull/1238) by @ngadiyak
357
+ * Fixed attaching Allure screenshot on exception. Fix by **[DevinWatson](https://github.com/DevinWatson)**
358
+ * Improved type definitions for custom steps. By **[Akxe](https://github.com/Akxe)**
359
+ * Fixed setting `multiple.parallel.chunks` as environment variable in config. See [#1238](https://github.com/Codeception/CodeceptJS/issues/1238) by **[ngadiyak](https://github.com/ngadiyak)**
263
360
 
264
361
  ## 1.4.2
265
362
 
266
- * Fixed setting config for plugins (inclunding setting `outputDir` for allure) by @jplegoff
363
+ * Fixed setting config for plugins (inclunding setting `outputDir` for allure) by **[jplegoff](https://github.com/jplegoff)**
267
364
 
268
365
  ## 1.4.1
269
366
 
270
367
  * Added `plugins` option to `run-multiple`
271
368
  * Minor output fixes
272
- * Added Type Definition for Helper class by @Akxe
273
- * Fixed extracing devault extension in generators by @Akxe
369
+ * Added Type Definition for Helper class by **[Akxe](https://github.com/Akxe)**
370
+ * Fixed extracing devault extension in generators by **[Akxe](https://github.com/Akxe)**
274
371
 
275
372
  ## 1.4.0
276
373
 
277
- * [**Allure Reporter Integration**](https://codecept.io/reports/#allure). Full inegration with Allure Server. Get nicely looking UI for tests,including steps, nested steps, and screenshots. Thanks **Natarajan Krishnamurthy @krish** for sponsoring this feature.
374
+ * [**Allure Reporter Integration**](https://codecept.io/reports/#allure). Full inegration with Allure Server. Get nicely looking UI for tests,including steps, nested steps, and screenshots. Thanks **Natarajan Krishnamurthy **[krish](https://github.com/krish)**** for sponsoring this feature.
278
375
  * [Plugins API introduced](https://codecept.io/hooks/#plugins). Create custom plugins for CodeceptJS by hooking into event dispatcher, and using promise recorder.
279
376
  * **Official [CodeceptJS plugins](https://codecept.io/plugins) added**:
280
377
  * **`stepByStepReport` - creates nicely looking report to see test execution as a slideshow**. Use this plugin to debug tests in headless environment without recording a video.
281
378
  * `allure` - Allure reporter added as plugin.
282
379
  * `screenshotOnFail` - saves screenshot on fail. Replaces similar functionality from helpers.
283
380
  * `retryFailedStep` - to rerun each failed step.
284
- * [Puppeteer] Fix `executeAsyncScript` unexpected token by @jonathanz
285
- * Added `override` option to `run-multiple` command by @svarlet
381
+ * **[Puppeteer]** Fix `executeAsyncScript` unexpected token by **[jonathanz](https://github.com/jonathanz)**
382
+ * Added `override` option to `run-multiple` command by **[svarlet](https://github.com/svarlet)**
286
383
 
287
384
  ## 1.3.3
288
385
 
@@ -293,22 +390,22 @@ Scenario('update user profile', () => {
293
390
  * Interactve Shell improvements for `pause()`
294
391
  * Added `next` command for **step-by-step debug** when using `pause()`.
295
392
  * Use `After(pause);` in a to start interactive console after last step.
296
- * [Puppeteer] Updated to Puppeteer 1.6.0
393
+ * **[Puppeteer]** Updated to Puppeteer 1.6.0
297
394
  * Added `waitForRequest` to wait for network request.
298
395
  * Added `waitForResponse` to wait for network response.
299
- * Improved TypeScript definitions to support custom steps and page objects. By @xt1
300
- * Fixed XPath detection to accept XPath which starts with `./` by @BenoitZugmeyer
396
+ * Improved TypeScript definitions to support custom steps and page objects. By **[xt1](https://github.com/xt1)**
397
+ * Fixed XPath detection to accept XPath which starts with `./` by **[BenoitZugmeyer](https://github.com/BenoitZugmeyer)**
301
398
 
302
399
  ## 1.3.1
303
400
 
304
401
  * BDD-Gherkin: Fixed running async steps.
305
- * [Puppeteer] Fixed process hanging for 30 seconds. Page loading timeout default via `getPageTimeout` set 0 seconds.
306
- * [Puppeteer] Improved displaying client-side console messages in debug mode.
307
- * [Puppeteer] Fixed closing sessions in `restart:false` mode for multi-session mode.
308
- * [Protractor] Fixed `grabPopupText` to not throw error popup is not opened.
309
- * [Protractor] Added info on using 'direct' Protractor driver to helper documentation by @xt1.
310
- * [WebDriverIO] Added a list of all special keys to WebDriverIO helper by @davertmik and @xt1.
311
- * Improved TypeScript definitions generator by @xt1
402
+ * **[Puppeteer]** Fixed process hanging for 30 seconds. Page loading timeout default via `getPageTimeout` set 0 seconds.
403
+ * **[Puppeteer]** Improved displaying client-side console messages in debug mode.
404
+ * **[Puppeteer]** Fixed closing sessions in `restart:false` mode for multi-session mode.
405
+ * **[Protractor]** Fixed `grabPopupText` to not throw error popup is not opened.
406
+ * **[Protractor]** Added info on using 'direct' Protractor driver to helper documentation by **[xt1](https://github.com/xt1)**.
407
+ * **[WebDriverIO]** Added a list of all special keys to WebDriverIO helper by **[davertmik](https://github.com/davertmik)** and **[xt1](https://github.com/xt1)**.
408
+ * Improved TypeScript definitions generator by **[xt1](https://github.com/xt1)**
312
409
 
313
410
  ## 1.3.0
314
411
 
@@ -363,28 +460,28 @@ This change allows using auto-completion when running a specific test.
363
460
  * to see high-level steps only run tests with `--steps` flag.
364
461
  * to see PageObjects implementation run tests with `--debug`.
365
462
  * PageObjects simplified to remove `_init()` extra method. Try updated generators and see [updated guide](https://codecept.io/pageobjects/#pageobject).
366
- * [Puppeteer] [Multiple sessions](https://codecept.io/acceptance/#multiple-sessions) enabled. Requires Puppeteer >= 1.5
367
- * [Puppeteer] Stability improvement. Waits for for `load` event on page load. This strategy can be changed in config:
463
+ * **[Puppeteer]** [Multiple sessions](https://codecept.io/acceptance/#multiple-sessions) enabled. Requires Puppeteer >= 1.5
464
+ * **[Puppeteer]** Stability improvement. Waits for for `load` event on page load. This strategy can be changed in config:
368
465
  * `waitForNavigation` config option introduced. Possible options: `load`, `domcontentloaded`, `networkidle0`, `networkidle2`. See [Puppeteer API](https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pagewaitfornavigationoptions)
369
466
  * `getPageTimeout` config option to set maximum navigation time in milliseconds. Default is 30 seconds.
370
467
  * `waitForNavigation` method added. Explicitly waits for navigation to be finished.
371
468
  * [WebDriverIO][Protractor][Puppeteer][Nightmare] **Possible BC** `grabTextFrom` unified. Return a text for single matched element and an array of texts for multiple elements.
372
- * [Puppeteer]Fixed `resizeWindow` by @sergejkaravajnij
373
- * [WebDriverIO][Protractor][Puppeteer][Nightmare] `waitForFunction` added. Waits for client-side JavaScript function to return true by @GREENpoint.
374
- * [Puppeteer] `waitUntil` deprecated in favor of `waitForFunction`.
469
+ * [Puppeteer]Fixed `resizeWindow` by **[sergejkaravajnij](https://github.com/sergejkaravajnij)**
470
+ * [WebDriverIO][Protractor][Puppeteer][Nightmare] `waitForFunction` added. Waits for client-side JavaScript function to return true by **[GREENpoint](https://github.com/GREENpoint)**.
471
+ * **[Puppeteer]** `waitUntil` deprecated in favor of `waitForFunction`.
375
472
  * Added `filter` function to DataTable.
376
- * Send non-nested array of files to custom parallel execution chunking by @mikecbrant.
377
- * Fixed invalid output directory path for run-multiple by @mikecbrant.
378
- * [WebDriverIO] `waitUntil` timeout accepts time in seconds (as all other wait* functions). Fix by @truesrc.
379
- * [Nightmare] Fixed `grabNumberOfVisibleElements` to work similarly to `seeElement`. Thx to @stefanschenk and Jinbo Jinboson.
380
- * [Protractor] Fixed alert handling error with message 'no such alert' by @truesrc.
473
+ * Send non-nested array of files to custom parallel execution chunking by **[mikecbrant](https://github.com/mikecbrant)**.
474
+ * Fixed invalid output directory path for run-multiple by **[mikecbrant](https://github.com/mikecbrant)**.
475
+ * **[WebDriverIO]** `waitUntil` timeout accepts time in seconds (as all other wait* functions). Fix by **[truesrc](https://github.com/truesrc)**.
476
+ * **[Nightmare]** Fixed `grabNumberOfVisibleElements` to work similarly to `seeElement`. Thx to **[stefanschenk](https://github.com/stefanschenk)** and Jinbo Jinboson.
477
+ * **[Protractor]** Fixed alert handling error with message 'no such alert' by **[truesrc](https://github.com/truesrc)**.
381
478
 
382
479
 
383
480
  ## 1.2.1
384
481
 
385
482
  * Fixed running `I.retry()` on multiple steps.
386
483
  * Fixed parallel execution wih chunks.
387
- * [Puppeteer] Fixed `grabNumberOfVisibleElements` to return `0` instead of throwing error if no elements are found.
484
+ * **[Puppeteer]** Fixed `grabNumberOfVisibleElements` to return `0` instead of throwing error if no elements are found.
388
485
 
389
486
  ## 1.2.0
390
487
 
@@ -403,7 +500,7 @@ Scenario('run in different browsers', (I) => {
403
500
  });
404
501
  ```
405
502
 
406
- * [Parallel Execution](https://codecept.io/advanced/#parallel-execution) by @sveneisenschmidt. Run tests in parallel specifying number of chunks:
503
+ * [Parallel Execution](https://codecept.io/advanced/#parallel-execution) by **[sveneisenschmidt](https://github.com/sveneisenschmidt)**. Run tests in parallel specifying number of chunks:
407
504
 
408
505
  ```js
409
506
  "multiple": {
@@ -429,7 +526,7 @@ locate('//table')
429
526
 
430
527
  * [Dynamic configuration](https://codecept.io/advanced/#dynamic-configuration) to update helpers config per test or per suite.
431
528
  * Added `event.test.finished` which fires synchronously for both failed and passed tests.
432
- * [WebDriverIO][Protractor][Nightmare][Puppeteer] Full page screenshots on failure disabled by default. See [issue #1600](https://github.com/Codeception/CodeceptJS/issues/1060). You can enabled them with `fullPageScreenshots: true`, however they may work unstable in Selenium.
529
+ * [WebDriverIO][Protractor][Nightmare][Puppeteer] Full page screenshots on failure disabled by default. See [issue[#1600](https://github.com/Codeception/CodeceptJS/issues/1600). You can enabled them with `fullPageScreenshots: true`, however they may work unstable in Selenium.
433
530
  * `within` blocks can return values. See [updated documentation](https://codecept.io/basics/#within).
434
531
  * Removed doublt call to `_init` in helpers. Fixes issue [#1036](https://github.com/Codeception/CodeceptJS/issues/1036)
435
532
  * Added scenario and feature configuration via fluent API:
@@ -452,10 +549,10 @@ Scenario('this test should throw error', (I) => {
452
549
  ## 1.1.8
453
550
 
454
551
  * Fixed generating TypeScript definitions with `codeceptjs def`.
455
- * Added Chinese translation ("zh-CN" and "zh-TW") by @TechQuery.
552
+ * Added Chinese translation ("zh-CN" and "zh-TW") by **[TechQuery](https://github.com/TechQuery)**.
456
553
  * Fixed running tests from a different folder specified by `-c` option.
457
- * [Puppeteer] Added support for hash handling in URL by @gavoja.
458
- * [Puppeteer] Fixed setting viewport size by @gavoja. See [Puppeteer issue](https://github.com/GoogleChrome/puppeteer/issues/1183)
554
+ * **[Puppeteer]** Added support for hash handling in URL by **[gavoja](https://github.com/gavoja)**.
555
+ * **[Puppeteer]** Fixed setting viewport size by **[gavoja](https://github.com/gavoja)**. See [Puppeteer issue](https://github.com/GoogleChrome/puppeteer/issues/1183)
459
556
 
460
557
 
461
558
  ## 1.1.7
@@ -464,7 +561,7 @@ Scenario('this test should throw error', (I) => {
464
561
  * codeceptjs package is mounted as `/codecept` insde container
465
562
  * tests directory is expected to be mounted as `/tests`
466
563
  * `codeceptjs` global runner added (symlink to `/codecept/bin/codecept.js`)
467
- * [Protractor] Functions added by @reubenmiller:
564
+ * **[Protractor]** Functions added by **[reubenmiller](https://github.com/reubenmiller)**:
468
565
  * `_locateCheckable (only available from other helpers)`
469
566
  * `_locateClickable (only available from other helpers)`
470
567
  * `_locateFields (only available from other helpers)`
@@ -492,51 +589,51 @@ Scenario('this test should throw error', (I) => {
492
589
  * `waitToHide`
493
590
  * `waitUntil`
494
591
  * `waitUrlEquals`
495
- * [Nightmare] added:
592
+ * **[Nightmare]** added:
496
593
  * `grabPageScrollPosition` (new)
497
594
  * `seeNumberOfVisibleElements`
498
595
  * `waitToHide`
499
- * [Puppeteer] added:
596
+ * **[Puppeteer]** added:
500
597
  * `grabPageScrollPosition` (new)
501
- * [WebDriverIO] added"
598
+ * **[WebDriverIO]** added"
502
599
  * `grabPageScrollPosition` (new)
503
- * [Puppeteer] Fixed running wait* functions without setting `sec` parameter.
504
- * [Puppeteer][Protractor] Fixed bug with I.click when using an object selector with the xpath property. By @reubenmiller
600
+ * **[Puppeteer]** Fixed running wait* functions without setting `sec` parameter.
601
+ * [Puppeteer][Protractor] Fixed bug with I.click when using an object selector with the xpath property. By **[reubenmiller](https://github.com/reubenmiller)**
505
602
  * [WebDriverIO][Protractor][Nightmare][Puppeteer] Fixed I.switchTo(0) and I.scrollTo(100, 100) api inconsistencies between helpers.
506
- * [Protractor] Fixing bug when `seeAttributesOnElements` and `seeCssPropertiesOnElement` were incorrectly passing when the attributes/properties did not match by @reubenmiller
507
- * [WebDriverIO] Use inbuilt dragAndDrop function (still doesn't work in Firefox). By @reubenmiller
603
+ * **[Protractor]** Fixing bug when `seeAttributesOnElements` and `seeCssPropertiesOnElement` were incorrectly passing when the attributes/properties did not match by **[reubenmiller](https://github.com/reubenmiller)**
604
+ * **[WebDriverIO]** Use inbuilt dragAndDrop function (still doesn't work in Firefox). By **[reubenmiller](https://github.com/reubenmiller)**
508
605
  * Support for Nightmare 3.0
509
- * Enable glob patterns in `config.test` / `Codecept.loadTests` by @sveneisenschmidt
510
- * Enable overriding of `config.tests` for `run-multiple` by @sveneisenschmidt
606
+ * Enable glob patterns in `config.test` / `Codecept.loadTests` by **[sveneisenschmidt](https://github.com/sveneisenschmidt)**
607
+ * Enable overriding of `config.tests` for `run-multiple` by **[sveneisenschmidt](https://github.com/sveneisenschmidt)**
511
608
 
512
609
 
513
610
  ## 1.1.6
514
611
 
515
- * Added support for `async I =>` functions syntax in Scenario by @APshenkin
516
- * [WebDriverIO][Protractor][Puppeteer][Nightmare] `waitForInvisible` waits for element to hide or to be removed from page. By @reubenmiller
517
- * [Protractor][Puppeteer][Nightmare] Added `grabCurrentUrl` function. By @reubenmiller
518
- * [WebDriverIO] `grabBrowserUrl` deprecated in favor of `grabCurrentUrl` to unify the API.
519
- * [Nightmare] Improved element visibility detection by @reubenmiller
520
- * [Puppeteer] Fixing function calls when clearing the cookies and localstorage. By @reubenmiller
521
- * [Puppeteer] Added `waitForEnabled`, `waitForValue` and `waitNumberOfVisibleElements` methods by @reubenmiller
522
- * [WebDriverIO] Fixed `grabNumberOfVisibleElements` to return 0 when no visible elements are on page. By @michaltrunek
523
- * Helpers API improvements (by @reubenmiller)
612
+ * Added support for `async I =>` functions syntax in Scenario by **[APshenkin](https://github.com/APshenkin)**
613
+ * [WebDriverIO][Protractor][Puppeteer][Nightmare] `waitForInvisible` waits for element to hide or to be removed from page. By **[reubenmiller](https://github.com/reubenmiller)**
614
+ * [Protractor][Puppeteer][Nightmare] Added `grabCurrentUrl` function. By **[reubenmiller](https://github.com/reubenmiller)**
615
+ * **[WebDriverIO]** `grabBrowserUrl` deprecated in favor of `grabCurrentUrl` to unify the API.
616
+ * **[Nightmare]** Improved element visibility detection by **[reubenmiller](https://github.com/reubenmiller)**
617
+ * **[Puppeteer]** Fixing function calls when clearing the cookies and localstorage. By **[reubenmiller](https://github.com/reubenmiller)**
618
+ * **[Puppeteer]** Added `waitForEnabled`, `waitForValue` and `waitNumberOfVisibleElements` methods by **[reubenmiller](https://github.com/reubenmiller)**
619
+ * **[WebDriverIO]** Fixed `grabNumberOfVisibleElements` to return 0 when no visible elements are on page. By **[michaltrunek](https://github.com/michaltrunek)**
620
+ * Helpers API improvements (by **[reubenmiller](https://github.com/reubenmiller)**)
524
621
  * `_passed` hook runs after a test passed successfully
525
622
  * `_failed` hook runs on a failed test
526
- * Hooks API. New events added by @reubenmiller:
623
+ * Hooks API. New events added by **[reubenmiller](https://github.com/reubenmiller)**:
527
624
  * `event.all.before` - executed before all tests
528
625
  * `event.all.after` - executed after all tests
529
626
  * `event.multiple.before` - executed before all processes in run-multiple
530
627
  * `event.multiple.after` - executed after all processes in run-multiple
531
628
  * Multiple execution
532
- * Allow `AfterSuite` and `After` test hooks to be defined after the first Scenario. By @reubenmiller
533
- * [Nightmare] Prevent `I.amOnpage` navigation if the browser is already at the given url
629
+ * Allow `AfterSuite` and `After` test hooks to be defined after the first Scenario. By **[reubenmiller](https://github.com/reubenmiller)**
630
+ * **[Nightmare]** Prevent `I.amOnpage` navigation if the browser is already at the given url
534
631
  * Multiple-Run: Added new `bootstrapAll` and `teardownAll` hooks to be executed before and after all processes
535
- * `codeceptjs def` command accepts `--config` option. By @reubenmiller
632
+ * `codeceptjs def` command accepts `--config` option. By **[reubenmiller](https://github.com/reubenmiller)**
536
633
 
537
634
  ## 1.1.5
538
635
 
539
- * [Puppeteer] Rerun steps failed due to "Cannot find context with specified id" Error.
636
+ * **[Puppeteer]** Rerun steps failed due to "Cannot find context with specified id" Error.
540
637
  * Added syntax to retry a single step:
541
638
 
542
639
  ```js
@@ -559,28 +656,28 @@ I.retry({
559
656
  }).seeElement('#user');
560
657
  ```
561
658
 
562
- * `Scenario().injectDependencies` added to dynamically add objects into DI container by @Apshenkin. See [Dependency Injection section in PageObjects](https://codecept.io/pageobjects/#dependency-injection).
659
+ * `Scenario().injectDependencies` added to dynamically add objects into DI container by **[Apshenkin](https://github.com/Apshenkin)**. See [Dependency Injection section in PageObjects](https://codecept.io/pageobjects/#dependency-injection).
563
660
  * Fixed using async/await functions inside `within`
564
661
  * [WebDriverIO][Protractor][Puppeteer][Nightmare] **`waitUntilExists` deprecated** in favor of `waitForElement`
565
662
  * [WebDriverIO][Protractor] **`waitForStalenessOf` deprecated** in favor of `waitForDetached`
566
663
  * [WebDriverIO][Protractor][Puppeteer][Nightmare] `waitForDetached` added
567
- * [Nightmare] Added `I.seeNumberOfElements()` by @pmoncadaisla
568
- * [Nightmare] Load blank page when starting nightmare so that the .evaluate function will work if _failed/saveScreenshot is triggered by @reubenmiller
569
- * Fixed using plain arrays for data driven tests by @reubenmiller
570
- * [Puppeteer] Use default tab instead of opening a new tab when starting the browser by @reubenmiller
571
- * [Puppeteer] Added `grabNumberOfTabs` function by @reubenmiller
572
- * [Puppeteer] Add ability to set user-agent by @abidhahmed
573
- * [Puppeteer] Add keepCookies and keepBrowserState @abidhahmed
574
- * [Puppeteer] Clear value attribute instead of innerhtml for TEXTAREA by @reubenmiller
575
- * [REST] fixed sending string payload by @michaltrunek
576
- * Fixed unhandled rejection in async/await tests by @APshenkin
664
+ * **[Nightmare]** Added `I.seeNumberOfElements()` by **[pmoncadaisla](https://github.com/pmoncadaisla)**
665
+ * **[Nightmare]** Load blank page when starting nightmare so that the .evaluate function will work if _failed/saveScreenshot is triggered by **[reubenmiller](https://github.com/reubenmiller)**
666
+ * Fixed using plain arrays for data driven tests by **[reubenmiller](https://github.com/reubenmiller)**
667
+ * **[Puppeteer]** Use default tab instead of opening a new tab when starting the browser by **[reubenmiller](https://github.com/reubenmiller)**
668
+ * **[Puppeteer]** Added `grabNumberOfTabs` function by **[reubenmiller](https://github.com/reubenmiller)**
669
+ * **[Puppeteer]** Add ability to set user-agent by **[abidhahmed](https://github.com/abidhahmed)**
670
+ * **[Puppeteer]** Add keepCookies and keepBrowserState **[abidhahmed](https://github.com/abidhahmed)**
671
+ * **[Puppeteer]** Clear value attribute instead of innerhtml for TEXTAREA by **[reubenmiller](https://github.com/reubenmiller)**
672
+ * **[REST]** fixed sending string payload by **[michaltrunek](https://github.com/michaltrunek)**
673
+ * Fixed unhandled rejection in async/await tests by **[APshenkin](https://github.com/APshenkin)**
577
674
 
578
675
 
579
676
  ## 1.1.4
580
677
 
581
678
  * Removed `yarn` call in package.json
582
- * Fixed `console.log` in Puppeteer by @othree
583
- * [Appium] `runOnAndroid` and `runOnIOS` can receive a function to check capabilities dynamically:
679
+ * Fixed `console.log` in Puppeteer by **[othree](https://github.com/othree)**
680
+ * **[Appium]** `runOnAndroid` and `runOnIOS` can receive a function to check capabilities dynamically:
584
681
 
585
682
  ```js
586
683
  I.runOnAndroid(caps => caps.platformVersion >= 7, () => {
@@ -590,7 +687,7 @@ I.runOnAndroid(caps => caps.platformVersion >= 7, () => {
590
687
 
591
688
  ## 1.1.3
592
689
 
593
- * [Puppeteer] +25 Functions added by @reubenmiller
690
+ * **[Puppeteer]** +25 Functions added by **[reubenmiller](https://github.com/reubenmiller)**
594
691
  * `_locateCheckable`
595
692
  * `_locateClickable`
596
693
  * `_locateFields`
@@ -616,7 +713,7 @@ I.runOnAndroid(caps => caps.platformVersion >= 7, () => {
616
713
  * `waitForInvisible`
617
714
  * `waitInUrl`
618
715
  * `waitUrlEquals`
619
- * [Protractor] +8 functions added by @reubenmiller
716
+ * **[Protractor]** +8 functions added by **[reubenmiller](https://github.com/reubenmiller)**
620
717
  * `closeCurrentTab`
621
718
  * `grabSource`
622
719
  * `openNewTab`
@@ -625,35 +722,35 @@ I.runOnAndroid(caps => caps.platformVersion >= 7, () => {
625
722
  * `seeTitleEquals`
626
723
  * `switchToNextTab`
627
724
  * `switchToPreviousTab`
628
- * [Nightmare] `waitForInvisible` added by @reubenmiller
629
- * [Puppeteer] Printing console.log information in debug mode.
630
- * [Nightmare] Integrated with `nightmare-har-plugin` by mingfang. Added `enableHAR` option. Added HAR functions:
725
+ * **[Nightmare]** `waitForInvisible` added by **[reubenmiller](https://github.com/reubenmiller)**
726
+ * **[Puppeteer]** Printing console.log information in debug mode.
727
+ * **[Nightmare]** Integrated with `nightmare-har-plugin` by mingfang. Added `enableHAR` option. Added HAR functions:
631
728
  * `grabHAR`
632
729
  * `saveHAR`
633
730
  * `resetHAR`
634
- * [WebDriverIO] Fixed execution stability for parallel requests with Chromedriver
635
- * [WebDriverIO] Fixed resizeWindow when resizing to 'maximize' by @reubenmiller
636
- * [WebDriverIO] Fixing resizing window to full screen when taking a screenshot by @reubenmiller
731
+ * **[WebDriverIO]** Fixed execution stability for parallel requests with Chromedriver
732
+ * **[WebDriverIO]** Fixed resizeWindow when resizing to 'maximize' by **[reubenmiller](https://github.com/reubenmiller)**
733
+ * **[WebDriverIO]** Fixing resizing window to full screen when taking a screenshot by **[reubenmiller](https://github.com/reubenmiller)**
637
734
 
638
735
  ## 1.1.2
639
736
 
640
- * [Puppeteer] Upgraded to Puppeteer 1.0
737
+ * **[Puppeteer]** Upgraded to Puppeteer 1.0
641
738
  * Added `grep` option to config to set default matching pattern for tests.
642
- * [Puppeteer] Added `acceptPopup`, `cancelPopup`, `seeInPopup` and `grabPopupText` functions by @reubenmiller
643
- * [Puppeteer] `within` iframe and nested iframe support added by @reubenmiller
644
- * [REST] Added support for JSON objects since payload (as a JSON) was automatically converted into "URL query" type of parameter by @Kalostrinho
645
- * [REST] Added `resetRequestHeaders` method by @Kalostrinho
646
- * [REST] Added `followRedirect` option and `amFollowingRequestRedirects`/`amNotFollowingRequestRedirects` methods by @Kalostrinho
647
- * [WebDriverIO] `uncheckOption` implemented by @brunobg
648
- * [WebDriverIO] Added `grabBrowserUrl` by @Kalostrinho
649
- * Add ability to require helpers from node_modules by @APshenkin
650
- * Added `--profile` option to `run-multiple` command by @jamie-beck
651
- * Custom output name for multiple browser run by @tfiwm
652
- * Fixed passing data to scenarios by @KennyRules
739
+ * **[Puppeteer]** Added `acceptPopup`, `cancelPopup`, `seeInPopup` and `grabPopupText` functions by **[reubenmiller](https://github.com/reubenmiller)**
740
+ * **[Puppeteer]** `within` iframe and nested iframe support added by **[reubenmiller](https://github.com/reubenmiller)**
741
+ * **[REST]** Added support for JSON objects since payload (as a JSON) was automatically converted into "URL query" type of parameter by **[Kalostrinho](https://github.com/Kalostrinho)**
742
+ * **[REST]** Added `resetRequestHeaders` method by **[Kalostrinho](https://github.com/Kalostrinho)**
743
+ * **[REST]** Added `followRedirect` option and `amFollowingRequestRedirects`/`amNotFollowingRequestRedirects` methods by **[Kalostrinho](https://github.com/Kalostrinho)**
744
+ * **[WebDriverIO]** `uncheckOption` implemented by **[brunobg](https://github.com/brunobg)**
745
+ * **[WebDriverIO]** Added `grabBrowserUrl` by **[Kalostrinho](https://github.com/Kalostrinho)**
746
+ * Add ability to require helpers from node_modules by **[APshenkin](https://github.com/APshenkin)**
747
+ * Added `--profile` option to `run-multiple` command by **[jamie-beck](https://github.com/jamie-beck)**
748
+ * Custom output name for multiple browser run by **[tfiwm](https://github.com/tfiwm)**
749
+ * Fixed passing data to scenarios by **[KennyRules](https://github.com/KennyRules)**
653
750
 
654
751
  ## 1.1.1
655
752
 
656
- * [WebDriverIO] fixed `waitForInvisible` by @Kporal
753
+ * **[WebDriverIO]** fixed `waitForInvisible` by **[Kporal](https://github.com/Kporal)**
657
754
 
658
755
  ## 1.1.0
659
756
 
@@ -673,8 +770,8 @@ Thanks to [@Apshenkin](https://github.com/apshenkin) for implementation. Also, m
673
770
  We also introduced strict ESLint policies for our codebase. Thanks to [@Galkin](https://github.com/galkin) for that.
674
771
 
675
772
  * **[Puppeteer] Helper introduced**. [Learn how to run tests headlessly with Google Chrome's Puppeteer](http://codecept.io/puppeteer/).
676
- * [SeleniumWebdriver] Helper is deprecated, it is recommended to use Protractor with config option `angular: false` instead.
677
- * [WebDriverIO] nested iframe support in the within block by @reubenmiller. Example:
773
+ * **[SeleniumWebdriver]** Helper is deprecated, it is recommended to use Protractor with config option `angular: false` instead.
774
+ * **[WebDriverIO]** nested iframe support in the within block by **[reubenmiller](https://github.com/reubenmiller)**. Example:
678
775
 
679
776
  ```js
680
777
  within({frame: ['#wrapperId', '[name=content]']}, () => {
@@ -685,48 +782,46 @@ I.see('Nested Iframe test');
685
782
  I.dontSee('Email Address');
686
783
  });
687
784
  ```
688
- * [WebDriverIO] Support for `~` locator to find elements by `aria-label`. This behavior is similar as it is in Appium and helps testing cross-platform React apps. Example:
785
+ * **[WebDriverIO]** Support for `~` locator to find elements by `aria-label`. This behavior is similar as it is in Appium and helps testing cross-platform React apps. Example:
689
786
 
690
787
  ```html
691
788
  <Text accessibilityLabel="foobar">
692
789
  CodeceptJS is awesome
693
790
  </Text>
694
791
  ```
695
- ↑ This element can be located with `~foobar` in WebDriverIO and Appium helpers. Thanks to @flyskywhy
696
-
697
- * Allow providing arbitrary objects in config includes by @rlewan
698
- * [REST] Prevent from mutating default headers by @alexashley. See [#789](https://github.com/Codeception/CodeceptJS/pull/789)
699
- * [REST] Fixed sending empty helpers with `haveRequestHeaders` in `sendPostRequest`. By @petrisorionel
700
- * Fixed displaying undefined args in output by @APshenkin
701
- * Fixed NaN instead of seconds in output by @APshenkin
702
- * Add browser name to report file for `multiple-run` by @trollr
792
+ ↑ This element can be located with `~foobar` in WebDriverIO and Appium helpers. Thanks to **[flyskywhy](https://github.com/flyskywhy)**
793
+
794
+ * Allow providing arbitrary objects in config includes by **[rlewan](https://github.com/rlewan)**
795
+ * **[REST]** Prevent from mutating default headers by **[alexashley](https://github.com/alexashley)**. See [#789](https://github.com/Codeception/CodeceptJS/issues/789)
796
+ * **[REST]** Fixed sending empty helpers with `haveRequestHeaders` in `sendPostRequest`. By **[petrisorionel](https://github.com/petrisorionel)**
797
+ * Fixed displaying undefined args in output by **[APshenkin](https://github.com/APshenkin)**
798
+ * Fixed NaN instead of seconds in output by **[APshenkin](https://github.com/APshenkin)**
799
+ * Add browser name to report file for `multiple-run` by **[trollr](https://github.com/trollr)**
703
800
  * Mocha updated to 4.x
704
801
 
705
802
 
706
803
 
707
804
  ## 1.0.3
708
805
 
709
- * [WebDriverIO][Protractor][Nightmare] method `waitUntilExists` implemented by @sabau
710
- * Absolute path can be set for `output` dir by @APshenkin. Fix [#571](https://github.com/Codeception/CodeceptJS/issues/571)
711
- * Data table rows can be ignored by using `xadd`. By @APhenkin
712
- * Added `Data(table).only.Scenario` to give ability to launch only Data tests. By @APhenkin
713
- * Implemented `ElementNotFound` error by @BorisOsipov.
714
- * Added TypeScript compiler / configs to check the JavaScript by @KennyRules
715
- * [Nightmare] fix executeScript return value by @jploskonka
716
- * [Nightmare] fixed: err.indexOf not a function when waitForText times out in nightmare by @joeypedicini92
717
- * Fixed: Retries not working when using .only. By @APhenkin
806
+ * [WebDriverIO][Protractor][Nightmare] method `waitUntilExists` implemented by **[sabau](https://github.com/sabau)**
807
+ * Absolute path can be set for `output` dir by **[APshenkin](https://github.com/APshenkin)**. Fix [#571](https://github.com/Codeception/CodeceptJS/issues/571)* Data table rows can be ignored by using `xadd`. By **[APhenkin](https://github.com/APhenkin)**
808
+ * Added `Data(table).only.Scenario` to give ability to launch only Data tests. By **[APhenkin](https://github.com/APhenkin)**
809
+ * Implemented `ElementNotFound` error by **[BorisOsipov](https://github.com/BorisOsipov)**.
810
+ * Added TypeScript compiler / configs to check the JavaScript by **[KennyRules](https://github.com/KennyRules)**
811
+ * **[Nightmare]** fix executeScript return value by **[jploskonka](https://github.com/jploskonka)**
812
+ * **[Nightmare]** fixed: err.indexOf not a function when waitForText times out in nightmare by **[joeypedicini92](https://github.com/joeypedicini92)**
813
+ * Fixed: Retries not working when using .only. By **[APhenkin](https://github.com/APhenkin)**
718
814
 
719
815
 
720
816
  ## 1.0.2
721
817
 
722
818
  * Introduced generators support in scenario hooks for `BeforeSuite`/`Before`/`AfterSuite`/`After`
723
- * [ApiDataFactory] Fixed loading helper; `requireg` package included.
724
- * Fix [#485](https://github.com/Codeception/CodeceptJS/issues/485) `run-multiple`: the first browser-resolution combination was be used in all configurations
819
+ * **[ApiDataFactory]** Fixed loading helper; `requireg` package included.
820
+ * Fix [#485](https://github.com/Codeception/CodeceptJS/issues/485)`run-multiple`: the first browser-resolution combination was be used in all configurations
725
821
  * Fixed unique test names:
726
- * Fixed [#447](https://github.com/Codeception/CodeceptJS/issues/447): tests failed silently if they have the same name as other tests.
822
+ * Fixed [#447](https://github.com/Codeception/CodeceptJS/issues/447) tests failed silently if they have the same name as other tests.
727
823
  * Use uuid in screenshot names when `uniqueScreenshotNames: true`
728
- * [Protractor] Fixed testing non-angular application. `amOutsideAngularApp` is executed before each step. Fixes [#458](https://github.com/Codeception/CodeceptJS/issues/458)
729
- * Added output for steps in hooks when they fail
824
+ * **[Protractor]** Fixed testing non-angular application. `amOutsideAngularApp` is executed before each step. Fixes [#458](https://github.com/Codeception/CodeceptJS/issues/458)* Added output for steps in hooks when they fail
730
825
 
731
826
  ## 1.0.1
732
827
 
@@ -735,15 +830,14 @@ I.dontSee('Email Address');
735
830
  * Added [Mochawesome](http://codecept.io/helpers/Mochawesome/) helper
736
831
  * `addMochawesomeContext` method to add custom data to mochawesome reports
737
832
  * Fixed Mochawesome context for failed screenshots.
738
- * [WebDriverIO] improved click on context to match clickable element with a text inside. Fixes [#647](https://github.com/Codeception/CodeceptJS/issues/647)
739
- * [Nightmare] Added `refresh` function by @awhanks
833
+ * **[WebDriverIO]** improved click on context to match clickable element with a text inside. Fixes [#647](https://github.com/Codeception/CodeceptJS/issues/647)* **[Nightmare]** Added `refresh` function by **[awhanks](https://github.com/awhanks)**
740
834
  * fixed `Unhandled promise rejection (rejection id: 1): Error: Unknown wait type: pageLoad`
741
835
  * support for tests with retries in html report
742
836
  * be sure that change window size and timeouts completes before test
743
- * [Nightmare] Fixed `[Wrapped Error] "codeceptjs is not defined"`; Reinjectiing client scripts to a webpage on changes.
744
- * [Nightmare] Added more detailed error messages for `Wait*` methods
745
- * [Nightmare] Fixed adding screenshots to Mochawesome
746
- * [Nightmare] Fix unique screenshots names in Nightmare
837
+ * **[Nightmare]** Fixed `[Wrapped Error] "codeceptjs is not defined"`; Reinjectiing client scripts to a webpage on changes.
838
+ * **[Nightmare]** Added more detailed error messages for `Wait*` methods
839
+ * **[Nightmare]** Fixed adding screenshots to Mochawesome
840
+ * **[Nightmare]** Fix unique screenshots names in Nightmare
747
841
  * Fixed CodeceptJS work with hooks in helpers to finish codeceptJS correctly if errors appears in helpers hooks
748
842
  * Create a new session for next test If selenium grid error received
749
843
  * Create screenshots for failed hooks from a Feature file
@@ -801,17 +895,17 @@ Next notable feature is **[SmartWait](http://codecept.io/acceptance/#smartwait)*
801
895
  * Minimal NodeJS version is 6.11.1 LTS
802
896
  * Use `within` command with generators.
803
897
  * [Data Driven Tests](http://codecept.io/advanced/#data-driven-tests) introduced.
804
- * Print execution time per step in `--debug` mode. [#591](https://github.com/Codeception/CodeceptJS/pull/591) by @APshenkin
805
- * [WebDriverIO][Protractor][Nightmare] Added `disableScreenshots` option to disable screenshots on fail by @Apshenkin
806
- * [WebDriverIO][Protractor][Nightmare] Added `uniqueScreenshotNames` option to generate unique names for screenshots on failure by @Apshenkin
898
+ * Print execution time per step in `--debug` mode. [#591](https://github.com/Codeception/CodeceptJS/issues/591) by **[APshenkin](https://github.com/APshenkin)**
899
+ * [WebDriverIO][Protractor][Nightmare] Added `disableScreenshots` option to disable screenshots on fail by **[Apshenkin](https://github.com/Apshenkin)**
900
+ * [WebDriverIO][Protractor][Nightmare] Added `uniqueScreenshotNames` option to generate unique names for screenshots on failure by **[Apshenkin](https://github.com/Apshenkin)**
807
901
  * [WebDriverIO][Nightmare] Fixed click on context; `click('text', '#el')` will throw exception if text is not found inside `#el`.
808
902
  * [WebDriverIO][Protractor][SeleniumWebdriver] [SmartWait introduced](http://codecept.io/acceptance/#smartwait).
809
- * [WebDriverIO][Protractor][Nightmare]Fixed `saveScreenshot` for PhantomJS, `fullPageScreenshots` option introduced by @HughZurname [#549](https://github.com/Codeception/CodeceptJS/pull/549)
810
- * [Appium] helper introduced by @APshenkin
811
- * [REST] helper introduced by @atrevino in [#504](https://github.com/Codeception/CodeceptJS/pull/504)
812
- * [WebDriverIO][SeleniumWebdriver] Fixed "windowSize": "maximize" for Chrome 59+ version #560 by @APshenkin
813
- * [Nightmare] Fixed restarting by @APshenkin [#581](https://github.com/Codeception/CodeceptJS/pull/581)
814
- * [WebDriverIO] Methods added by @APshenkin:
903
+ * [WebDriverIO][Protractor][Nightmare]Fixed `saveScreenshot` for PhantomJS, `fullPageScreenshots` option introduced by **[HughZurname](https://github.com/HughZurname)** [#549](https://github.com/Codeception/CodeceptJS/issues/549)
904
+ * **[Appium]** helper introduced by **[APshenkin](https://github.com/APshenkin)**
905
+ * **[REST]** helper introduced by **[atrevino](https://github.com/atrevino)** in [#504](https://github.com/Codeception/CodeceptJS/issues/504)
906
+ * [WebDriverIO][SeleniumWebdriver] Fixed "windowSize": "maximize" for Chrome 59+ version [#560](https://github.com/Codeception/CodeceptJS/issues/560) by **[APshenkin](https://github.com/APshenkin)**
907
+ * **[Nightmare]** Fixed restarting by **[APshenkin](https://github.com/APshenkin)** [#581](https://github.com/Codeception/CodeceptJS/issues/581)
908
+ * **[WebDriverIO]** Methods added by **[APshenkin](https://github.com/APshenkin)**:
815
909
  * [grabCssPropertyFrom](http://codecept.io/helpers/WebDriverIO/#grabcsspropertyfrom)
816
910
  * [seeTitleEquals](http://codecept.io/helpers/WebDriverIO/#seetitleequals)
817
911
  * [seeTextEquals](http://codecept.io/helpers/WebDriverIO/#seetextequals)
@@ -830,10 +924,10 @@ Next notable feature is **[SmartWait](http://codecept.io/acceptance/#smartwait)*
830
924
  * [scrollPageToBottom](http://codecept.io/helpers/WebDriverIO/#scrollpagetobottom)
831
925
  * [scrollPageToTop](http://codecept.io/helpers/WebDriverIO/#scrollpagetotop)
832
926
  * [grabBrowserLogs](http://codecept.io/helpers/WebDriverIO/#grabbrowserlogs)
833
- * Use mkdirp to create output directory. [#592](https://github.com/Codeception/CodeceptJS/pull/592) by @vkramskikh
834
- * [WebDriverIO] Fixed `seeNumberOfVisibleElements` by @BorisOsipov [#574](https://github.com/Codeception/CodeceptJS/pull/574)
835
- * Lots of fixes for promise chain by @APshenkin [#568](https://github.com/Codeception/CodeceptJS/pull/568)
836
- * Fix [#543](https://github.com/Codeception/CodeceptJS/issues/543) - After block not properly executed if Scenario fails
927
+ * Use mkdirp to create output directory. [#592](https://github.com/Codeception/CodeceptJS/issues/592) by **[vkramskikh](https://github.com/vkramskikh)**
928
+ * **[WebDriverIO]** Fixed `seeNumberOfVisibleElements` by **[BorisOsipov](https://github.com/BorisOsipov)** [#574](https://github.com/Codeception/CodeceptJS/issues/574)
929
+ * Lots of fixes for promise chain by **[APshenkin](https://github.com/APshenkin)** [#568](https://github.com/Codeception/CodeceptJS/issues/568)
930
+ * Fix [#543](https://github.com/Codeception/CodeceptJS/issues/543)- After block not properly executed if Scenario fails
837
931
  * Expected behavior in promise chains: `_beforeSuite` hooks from helpers -> `BeforeSuite` from test -> `_before` hooks from helpers -> `Before` from test - > Test steps -> `_failed` hooks from helpers (if test failed) -> `After` from test -> `_after` hooks from helpers -> `AfterSuite` from test -> `_afterSuite` hook from helpers.
838
932
  * if during test we got errors from any hook (in test or in helper) - stop complete this suite and go to another
839
933
  * if during test we got error from Selenium server - stop complete this suite and go to another
@@ -841,8 +935,8 @@ Next notable feature is **[SmartWait](http://codecept.io/acceptance/#smartwait)*
841
935
  * Complete `_after`, `_afterSuite` hooks even After/AfterSuite from test was failed
842
936
  * Don't close browser between suites, when `restart` option is false. We should start browser only one time and close it only after all tests.
843
937
  * Close tabs and clear local storage, if `keepCookies` flag is enabled
844
- * Fix TypeError when using babel-node or ts-node on node.js 7+ [#586](https://github.com/Codeception/CodeceptJS/pull/586) by @vkramskikh
845
- * [Nightmare] fixed usage of `_locate`
938
+ * Fix TypeError when using babel-node or ts-node on node.js 7+ [#586](https://github.com/Codeception/CodeceptJS/issues/586) by **[vkramskikh](https://github.com/vkramskikh)**
939
+ * **[Nightmare]** fixed usage of `_locate`
846
940
 
847
941
  Special thanks to **Andrey Pshenkin** for his work on this release and the major improvements.
848
942
 
@@ -857,9 +951,9 @@ Scenario('My scenario', { build_id: 123, type: 'slow' }, function (I)
857
951
  those options can be accessed as `opts` property inside a `test` object. Can be used in custom listeners.
858
952
 
859
953
  * Added `docs` directory to a package.
860
- * [WebDriverIO][Protractor][SeleniumWebdriver] Bugfix: cleaning session when `restart: false` by @tfiwm [#519](https://github.com/Codeception/CodeceptJS/pull/519)
861
- * [WebDriverIO][Protractor][Nightmare] Added second parameter to `saveScreenshot` to allow a full page screenshot. By @HughZurname
862
- * Added suite object to `suite.before` and `suite.after` events by @implico. [#496](https://github.com/Codeception/CodeceptJS/pull/496)
954
+ * [WebDriverIO][Protractor][SeleniumWebdriver] Bugfix: cleaning session when `restart: false` by **[tfiwm](https://github.com/tfiwm)** [#519](https://github.com/Codeception/CodeceptJS/issues/519)
955
+ * [WebDriverIO][Protractor][Nightmare] Added second parameter to `saveScreenshot` to allow a full page screenshot. By **[HughZurname](https://github.com/HughZurname)**
956
+ * Added suite object to `suite.before` and `suite.after` events by **[implico](https://github.com/implico)**. [#496](https://github.com/Codeception/CodeceptJS/issues/496)
863
957
 
864
958
  ## 0.6.2
865
959
 
@@ -872,7 +966,7 @@ const actor = require('codeceptjs').actor;
872
966
 
873
967
  * Added [example for creating custom runner](http://codecept.io/hooks/#custom-runner) with public API.
874
968
  * run command to create `output` directory if it doesn't exist
875
- * [Protractor] fixed loading globally installed Protractor
969
+ * **[Protractor]** fixed loading globally installed Protractor
876
970
  * run-multiple command improvements:
877
971
  * create output directories for each process
878
972
  * print process ids in output
@@ -900,13 +994,13 @@ codeceptjs run -c tests/codecept.json
900
994
  codeceptjs run users_test.js -c tests
901
995
  ```
902
996
 
903
- * **Command `multiple-run` added**, to execute tests in several browsers in parallel by @APshenkin and @davertmik. [See documentation](http://codecept.io/advanced/#multiple-execution).
997
+ * **Command `multiple-run` added**, to execute tests in several browsers in parallel by **[APshenkin](https://github.com/APshenkin)** and **[davertmik](https://github.com/davertmik)**. [See documentation](http://codecept.io/advanced/#multiple-execution).
904
998
  * **Hooks API added to extend CodeceptJS** with custom listeners and plugins. [See documentation](http://codecept.io/hooks/#hooks_1).
905
- * [Nightmare][WebDriverIO] `within` can work with iframes by @imvetri. [See documentation](http://codecept.io/acceptance/#iframes).
999
+ * [Nightmare][WebDriverIO] `within` can work with iframes by **[imvetri](https://github.com/imvetri)**. [See documentation](http://codecept.io/acceptance/#iframes).
906
1000
  * [WebDriverIO][SeleniumWebdriver][Protractor] Default browser changed to `chrome`
907
- * [Nightmare] Fixed globally locating `nightmare-upload`.
908
- * [WebDriverIO] added `seeNumberOfVisibleElements` method by @elarouche.
909
- * Exit with non-zero code if init throws an error by @rincedd
1001
+ * **[Nightmare]** Fixed globally locating `nightmare-upload`.
1002
+ * **[WebDriverIO]** added `seeNumberOfVisibleElements` method by **[elarouche](https://github.com/elarouche)**.
1003
+ * Exit with non-zero code if init throws an error by **[rincedd](https://github.com/rincedd)**
910
1004
  * New guides published:
911
1005
  * [Installation](http://codecept.io/installation/)
912
1006
  * [Hooks](http://codecept.io/hooks/)
@@ -919,25 +1013,24 @@ codeceptjs run users_test.js -c tests
919
1013
 
920
1014
  ## 0.5.1
921
1015
 
922
- * [Polish translation](http://codecept.io/translation/#polish) added by @limes.
923
- * Update process exit code so that mocha saves reports before exit by @romanovma.
924
- * [Nightmare] fixed `getAttributeFrom` for custom attributes by @robrkerr
925
- * [Nightmare] Fixed *UnhandledPromiseRejectionWarning error* when selecting the dropdown using `selectOption` by @robrkerr. [See PR](https://github.com/Codeception/CodeceptJS/pull/408).
926
- * [Protractor] fixed `pressKey` method by @romanovma
1016
+ * [Polish translation](http://codecept.io/translation/#polish) added by **[limes](https://github.com/limes)**.
1017
+ * Update process exit code so that mocha saves reports before exit by **[romanovma](https://github.com/romanovma)**.
1018
+ * **[Nightmare]** fixed `getAttributeFrom` for custom attributes by **[robrkerr](https://github.com/robrkerr)**
1019
+ * **[Nightmare]** Fixed *UnhandledPromiseRejectionWarning error* when selecting the dropdown using `selectOption` by **[robrkerr](https://github.com/robrkerr)**. [Se PR.
1020
+ * **[Protractor]** fixed `pressKey` method by **[romanovma](https://github.com/romanovma)**
927
1021
 
928
1022
  ## 0.5.0
929
1023
 
930
1024
  * Protractor ^5.0.0 support (while keeping ^4.0.9 compatibility)
931
- * Fix 'fullTitle() is not a function' in exit.js by @hubidu. See [#388](https://github.com/Codeception/CodeceptJS/pull/388).
932
- * [Nightmare] Fix for `waitTimeout` by @HughZurname. See [#391](https://github.com/Codeception/CodeceptJS/pull/391). Resolves [#236](https://github.com/Codeception/CodeceptJS/issues/236)
933
- * Dockerized CodeceptJS setup by @artiomnist. [See reference](https://github.com/Codeception/CodeceptJS/blob/master/docker/README.md)
1025
+ * Fix 'fullTitle() is not a function' in exit.js by **[hubidu](https://github.com/hubidu)**. See [#388](https://github.com/Codeception/CodeceptJS/issues/388).
1026
+ * **[Nightmare]** Fix for `waitTimeout` by **[HughZurname](https://github.com/HughZurname)**. See [#391](https://github.com/Codeception/CodeceptJS/issues/391). Resolves [#236](https://github.com/Codeception/CodeceptJS/issues/236)* Dockerized CodeceptJS setup by **[artiomnist](https://github.com/artiomnist)**. [See reference](https://github.com/Codeception/CodeceptJS/blob/master/docker/README.md)
934
1027
 
935
1028
  ## 0.4.16
936
1029
 
937
1030
  * Fixed steps output synchronization (regression since 0.4.14).
938
1031
  * [WebDriverIO][Protractor][SeleniumWebdriver][Nightmare] added `keepCookies` option to keep cookies between tests with `restart: false`.
939
- * [Protractor] added `waitForTimeout` config option to set default waiting time for all wait* functions.
940
- * Fixed `_test` hook for helpers by @cjhille.
1032
+ * **[Protractor]** added `waitForTimeout` config option to set default waiting time for all wait* functions.
1033
+ * Fixed `_test` hook for helpers by **[cjhille](https://github.com/cjhille)**.
941
1034
 
942
1035
  ## 0.4.15
943
1036
 
@@ -984,11 +1077,11 @@ I.say('I enter title and body');
984
1077
  I.say('I expect post is visible on site');
985
1078
  ```
986
1079
 
987
- * [Nightmare] `restart` option added. `restart: false` allows to run all tests in a single window, disabled by default. By @nairvijays99
988
- * [Nightmare] Fixed `resizeWindow` command.
1080
+ * **[Nightmare]** `restart` option added. `restart: false` allows to run all tests in a single window, disabled by default. By **[nairvijays99](https://github.com/nairvijays99)**
1081
+ * **[Nightmare]** Fixed `resizeWindow` command.
989
1082
  * [Protractor][SeleniumWebdriver] added `windowSize` config option to resize window on start.
990
- * Fixed "Scenario.skip causes 'Cannot read property retries of undefined'" by @MasterOfPoppets
991
- * Fixed providing absolute paths for tests in config by @lennym
1083
+ * Fixed "Scenario.skip causes 'Cannot read property retries of undefined'" by **[MasterOfPoppets](https://github.com/MasterOfPoppets)**
1084
+ * Fixed providing absolute paths for tests in config by **[lennym](https://github.com/lennym)**
992
1085
 
993
1086
  ## 0.4.13
994
1087
 
@@ -1012,11 +1105,11 @@ Scenario('Not that complex', {timeout: 1000}, (I) => {
1012
1105
  });
1013
1106
  ```
1014
1107
 
1015
- * [WebDriverIO] Added `uniqueScreenshotNames` option to set unique screenshot names for failed tests. By @APshenkin. See [#299](https://github.com/Codeception/CodeceptJS/pull/299)
1016
- * [WebDriverIO] `clearField` method improved to accept name/label locators and throw errors.
1108
+ * **[WebDriverIO]** Added `uniqueScreenshotNames` option to set unique screenshot names for failed tests. By **[APshenkin](https://github.com/APshenkin)**. See [#299](https://github.com/Codeception/CodeceptJS/issues/299)
1109
+ * **[WebDriverIO]** `clearField` method improved to accept name/label locators and throw errors.
1017
1110
  * [Nightmare][SeleniumWebdriver][Protractor] `clearField` method added.
1018
- * [Nightmare] Fixed `waitForElement`, and `waitForVisible` methods.
1019
- * [Nightmare] Fixed `resizeWindow` by @norisk-it
1111
+ * **[Nightmare]** Fixed `waitForElement`, and `waitForVisible` methods.
1112
+ * **[Nightmare]** Fixed `resizeWindow` by **[norisk-it](https://github.com/norisk-it)**
1020
1113
  * Added italian [translation](http://codecept.io/translation/#italian).
1021
1114
 
1022
1115
  ## 0.4.12
@@ -1034,12 +1127,12 @@ codeceptjs run -o '{ "helpers": {"WebDriverIO": {"browser": "chrome"}}}'
1034
1127
  ## 0.4.11
1035
1128
 
1036
1129
  * Fixed regression in 0.4.10
1037
- * Added `bootstrap`/`teardown` config options to accept functions as parameters by @pscanf. See updated [config reference](http://codecept.io/configuration/) #319
1130
+ * Added `bootstrap`/`teardown` config options to accept functions as parameters by **[pscanf](https://github.com/pscanf)**. See updated [config reference](http://codecept.io/configuration/) [#319](https://github.com/Codeception/CodeceptJS/issues/319)
1038
1131
 
1039
1132
  ## 0.4.10
1040
1133
 
1041
- * [Protractor] Protrctor 4.0.12+ support.
1042
- * Enabled async bootstrap file by @abachar. Use inside `bootstrap.js`:
1134
+ * **[Protractor]** Protrctor 4.0.12+ support.
1135
+ * Enabled async bootstrap file by **[abachar](https://github.com/abachar)**. Use inside `bootstrap.js`:
1043
1136
 
1044
1137
  ```js
1045
1138
  module.exports = function(done) {
@@ -1049,43 +1142,43 @@ module.exports = function(done) {
1049
1142
  }
1050
1143
  ```
1051
1144
 
1052
- * Changed 'pending' to 'skipped' in reports by @timja-kainos. See #315
1145
+ * Changed 'pending' to 'skipped' in reports by **[timja-kainos](https://github.com/timja-kainos)**. See [#315](https://github.com/Codeception/CodeceptJS/issues/315)
1053
1146
 
1054
1147
  ## 0.4.9
1055
1148
 
1056
1149
  * [SeleniumWebdriver][Protractor][WebDriverIO][Nightmare] fixed `executeScript`, `executeAsyncScript` to work and return values.
1057
- * [Protractor][SeleniumWebdriver][WebDriverIO] Added `waitForInvisible` and `waitForStalenessOf` methods by @Nighthawk14.
1058
- * Added `--config` option to `codeceptjs run` to manually specify config file by @cnworks
1059
- * [Protractor] Simplified behavior of `amOutsideAngularApp` by using `ignoreSynchronization`. Fixes #278
1060
- * Set exit code to 1 when test fails at `Before`/`After` hooks. Fixes #279
1150
+ * [Protractor][SeleniumWebdriver][WebDriverIO] Added `waitForInvisible` and `waitForStalenessOf` methods by **[Nighthawk14](https://github.com/Nighthawk14)**.
1151
+ * Added `--config` option to `codeceptjs run` to manually specify config file by **[cnworks](https://github.com/cnworks)**
1152
+ * **[Protractor]** Simplified behavior of `amOutsideAngularApp` by using `ignoreSynchronization`. Fixes [#278](https://github.com/Codeception/CodeceptJS/issues/278)
1153
+ * Set exit code to 1 when test fails at `Before`/`After` hooks. Fixes [#279](https://github.com/Codeception/CodeceptJS/issues/279)
1061
1154
 
1062
1155
 
1063
1156
  ## 0.4.8
1064
1157
 
1065
1158
  * [Protractor][SeleniumWebdriver][Nightmare] added `moveCursorTo` method.
1066
- * [Protractor][SeleniumWebdriver][WebDriverIO] Added `manualStart` option to start browser manually in the beginning of test. By @cnworks. [PR #250](https://github.com/Codeception/CodeceptJS/pull/255)
1159
+ * [Protractor][SeleniumWebdriver][WebDriverIO] Added `manualStart` option to start browser manually in the beginning of test. By **[cnworks](https://github.com/cnworks)**. [PR[#250](https://github.com/Codeception/CodeceptJS/issues/250)
1067
1160
  * Fixed `codeceptjs init` to work with nested directories and file masks.
1068
- * Fixed `codeceptjs gt` to generate test with proper file name suffix. By @Zougi.
1069
- * [Nightmare] Fixed: Error is thrown when clicking on element which can't be locate. By @davetmik
1070
- * [WebDriverIO] Fixed `attachFile` for file upload. By @giuband and @davetmik
1071
- * [WebDriverIO] Add support for timeouts in config and with `defineTimeouts` method. By @easternbloc [#258](https://github.com/Codeception/CodeceptJS/pull/258) and [#267](https://github.com/Codeception/CodeceptJS/pull/267) by @davetmik
1072
- * Fixed hanging of CodeceptJS when error is thrown by event dispatcher. Fix by @Zougi and @davetmik
1161
+ * Fixed `codeceptjs gt` to generate test with proper file name suffix. By **[Zougi](https://github.com/Zougi)**.
1162
+ * **[Nightmare]** Fixed: Error is thrown when clicking on element which can't be locate. By **[davetmik](https://github.com/davetmik)**
1163
+ * **[WebDriverIO]** Fixed `attachFile` for file upload. By **[giuband](https://github.com/giuband)** and **[davetmik](https://github.com/davetmik)**
1164
+ * **[WebDriverIO]** Add support for timeouts in config and with `defineTimeouts` method. By **[easternbloc](https://github.com/easternbloc)** [#258](https://github.com/Codeception/CodeceptJS/issues/258) and [#267](https://github.com/Codeception/CodeceptJS/issues/267) by **[davetmik](https://github.com/davetmik)**
1165
+ * Fixed hanging of CodeceptJS when error is thrown by event dispatcher. Fix by **[Zougi](https://github.com/Zougi)** and **[davetmik](https://github.com/davetmik)**
1073
1166
 
1074
1167
 
1075
1168
  ## 0.4.7
1076
1169
 
1077
- * Improved docs for `BeforeSuite`; fixed its usage with `restart: false` option by @APshenkin.
1170
+ * Improved docs for `BeforeSuite`; fixed its usage with `restart: false` option by **[APshenkin](https://github.com/APshenkin)**.
1078
1171
  * Added `Nightmare` to list of available helpers on `init`.
1079
- * [Nightmare] Removed double `resizeWindow` implementation.
1172
+ * **[Nightmare]** Removed double `resizeWindow` implementation.
1080
1173
 
1081
1174
  ## 0.4.6
1082
1175
 
1083
- * Added `BeforeSuite` and `AfterSuite` hooks to scenario by @APshenkin. See [updated documentation](http://codecept.io/basics/#beforesuite)
1176
+ * Added `BeforeSuite` and `AfterSuite` hooks to scenario by **[APshenkin](https://github.com/APshenkin)**. See [updated documentation](http://codecept.io/basics/#beforesuite)
1084
1177
 
1085
1178
  ## 0.4.5
1086
1179
 
1087
- * Fixed running `codecept def` command by @jankaspar
1088
- * [Protractor][SeleniumWebdriver] Added support for special keys in `pressKey` method. Fixes #216
1180
+ * Fixed running `codecept def` command by **[jankaspar](https://github.com/jankaspar)**
1181
+ * [Protractor][SeleniumWebdriver] Added support for special keys in `pressKey` method. Fixes [#216](https://github.com/Codeception/CodeceptJS/issues/216)
1089
1182
 
1090
1183
  ## 0.4.4
1091
1184
 
@@ -1095,7 +1188,7 @@ module.exports = function(done) {
1095
1188
 
1096
1189
  ## 0.4.3
1097
1190
 
1098
- * [Protractor] Regression fixed to ^4.0.0 support
1191
+ * **[Protractor]** Regression fixed to ^4.0.0 support
1099
1192
  * Translations included into package.
1100
1193
  * `teardown` option added to config (opposite to `bootstrap`), expects a JS file to be executed after tests stop.
1101
1194
  * [Configuration](http://codecept.io/configuration/) can be set via JavaScript file `codecept.conf.js` instead of `codecept.json`. It should export `config` object:
@@ -1112,10 +1205,10 @@ exports.config = {
1112
1205
 
1113
1206
  ## 0.4.2
1114
1207
 
1115
- * Added ability to localize tests with translation [#189](https://github.com/Codeception/CodeceptJS/pull/189). Thanks to @abner
1116
- * [Translation] ru-RU translation added.
1117
- * [Translation] pt-BR translation added.
1118
- * [Protractor] Protractor 4.0.4 compatibility.
1208
+ * Added ability to localize tests with translation [#189](https://github.com/Codeception/CodeceptJS/issues/189). Thanks to **[abner](https://github.com/abner)**
1209
+ * **[Translation]** ru-RU translation added.
1210
+ * **[Translation]** pt-BR translation added.
1211
+ * **[Protractor]** Protractor 4.0.4 compatibility.
1119
1212
  * [WebDriverIO][SeleniumWebdriver][Protractor] Fixed single browser session mode for `restart: false`
1120
1213
  * Fixed using of 3rd party reporters (xunit, mocha-junit-reporter, mochawesome). Added guide.
1121
1214
  * Documentation for [Translation](http://codecept.io/translation/) added.
@@ -1123,8 +1216,8 @@ exports.config = {
1123
1216
 
1124
1217
  ## 0.4.1
1125
1218
 
1126
- * Added custom steps to step definition list. See #174 by @jayS-de
1127
- * [WebDriverIO] Fixed using `waitForTimeout` option by @stephane-ruhlmann. See #178
1219
+ * Added custom steps to step definition list. See [#174](https://github.com/Codeception/CodeceptJS/issues/174) by **[jayS-de](https://github.com/jayS-de)**
1220
+ * **[WebDriverIO]** Fixed using `waitForTimeout` option by **[stephane-ruhlmann](https://github.com/stephane-ruhlmann)**. See [#178](https://github.com/Codeception/CodeceptJS/issues/178)
1128
1221
 
1129
1222
  ## 0.4.0
1130
1223
 
@@ -1144,13 +1237,13 @@ exports.config = {
1144
1237
  codeceptjs def
1145
1238
  ```
1146
1239
 
1147
- to generate steps definition file and include it into tests by reference. By @kaflan
1240
+ to generate steps definition file and include it into tests by reference. By **[kaflan](https://github.com/kaflan)**
1148
1241
 
1149
1242
  ## 0.3.4
1150
1243
 
1151
- * [Protractor] version 3.3.0 comptaibility, NPM 3 compatibility. Please update Protractor!
1152
- * allows using absolute path for helpers, output, in config and in command line. By @denis-sokolov
1153
- * Fixes 'Cannot read property '1' of null in generate.js:44' by @seethislight
1244
+ * **[Protractor]** version 3.3.0 comptaibility, NPM 3 compatibility. Please update Protractor!
1245
+ * allows using absolute path for helpers, output, in config and in command line. By **[denis-sokolov](https://github.com/denis-sokolov)**
1246
+ * Fixes 'Cannot read property '1' of null in generate.js:44' by **[seethislight](https://github.com/seethislight)**
1154
1247
 
1155
1248
  ## 0.3.3
1156
1249
 
@@ -1164,7 +1257,7 @@ Depending on installation type additional modules (webdriverio, protractor, ...)
1164
1257
  * [Protractor][SeleniumWebdriver] fixed closing browser instances
1165
1258
  * [Protractor][SeleniumWebdriver] `doubleClick` method added
1166
1259
  * [WebDriverIO][Protractor][SeleniumWebdriver] `doubleClick` method to locate clickable elements by text, `context` option added.
1167
- * Fixed using assert in generator without yields #89
1260
+ * Fixed using assert in generator without yields [#89](https://github.com/Codeception/CodeceptJS/issues/89)
1168
1261
 
1169
1262
  ## 0.3.1
1170
1263
 
@@ -1177,46 +1270,46 @@ Starting from 0.3.0 webdriverio is not the only backend for running selenium tes
1177
1270
 
1178
1271
  * **[Protractor] helper added**. Now you can test AngularJS applications by using its official library within the unigied CodeceptJS API!
1179
1272
  * **[SeleniumWebdriver] helper added**. You can switch to official JS bindings for Selenium.
1180
- * [WebDriverIO] **updated to webdriverio v 4.0**
1181
- * [WebDriverIO] `clearField` method added by @fabioel
1182
- * [WebDriverIO] added `dragAndDrop` by @fabioel
1183
- * [WebDriverIO] fixed `scrollTo` method by @sensone
1184
- * [WebDriverIO] fixed `windowSize: maximize` option in config
1185
- * [WebDriverIO] `seeElement` and `dontSeeElement` check element for visibility by @fabioel and @davertmik
1186
- * [WebDriverIO] `seeElementInDOM`, `dontSeeElementInDOM` added to check element exists on page.
1187
- * [WebDriverIO] fixed saving screenshots on failure. Fixes #70
1188
- * fixed `within` block doesn't end in output not #79
1273
+ * **[WebDriverIO]** **updated to webdriverio v 4.0**
1274
+ * **[WebDriverIO]** `clearField` method added by **[fabioel](https://github.com/fabioel)**
1275
+ * **[WebDriverIO]** added `dragAndDrop` by **[fabioel](https://github.com/fabioel)**
1276
+ * **[WebDriverIO]** fixed `scrollTo` method by **[sensone](https://github.com/sensone)**
1277
+ * **[WebDriverIO]** fixed `windowSize: maximize` option in config
1278
+ * **[WebDriverIO]** `seeElement` and `dontSeeElement` check element for visibility by **[fabioel](https://github.com/fabioel)** and **[davertmik](https://github.com/davertmik)**
1279
+ * **[WebDriverIO]** `seeElementInDOM`, `dontSeeElementInDOM` added to check element exists on page.
1280
+ * **[WebDriverIO]** fixed saving screenshots on failure. Fixes [#70](https://github.com/Codeception/CodeceptJS/issues/70)
1281
+ * fixed `within` block doesn't end in output not [#79](https://github.com/Codeception/CodeceptJS/issues/79)
1189
1282
 
1190
1283
 
1191
1284
  ## 0.2.8
1192
1285
 
1193
- * [WebDriverIO] added `seeNumberOfElements` by @fabioel
1286
+ * **[WebDriverIO]** added `seeNumberOfElements` by **[fabioel](https://github.com/fabioel)**
1194
1287
 
1195
1288
  ## 0.2.7
1196
1289
 
1197
- * process ends with exit code 1 on error or failure #49
1198
- * fixed registereing global Helper #57
1199
- * fixed handling error in within block #50
1290
+ * process ends with exit code 1 on error or failure [#49](https://github.com/Codeception/CodeceptJS/issues/49)
1291
+ * fixed registereing global Helper [#57](https://github.com/Codeception/CodeceptJS/issues/57)
1292
+ * fixed handling error in within block [#50](https://github.com/Codeception/CodeceptJS/issues/50)
1200
1293
 
1201
1294
  ## 0.2.6
1202
1295
 
1203
1296
  * Fixed `done() was called multiple times`
1204
- * [WebDriverIO] added `waitToHide` method by @fabioel
1205
- * Added global `Helper` (alias `codecept_helper)`, object use for writing custom Helpers. Generator updated. Changes to #48
1297
+ * **[WebDriverIO]** added `waitToHide` method by **[fabioel](https://github.com/fabioel)**
1298
+ * Added global `Helper` (alias `codecept_helper)`, object use for writing custom Helpers. Generator updated. Changes to [#48](https://github.com/Codeception/CodeceptJS/issues/48)
1206
1299
 
1207
1300
  ## 0.2.5
1208
1301
 
1209
- * Fixed issues with using yield inside a test #45 #47 #43
1210
- * Fixed generating a custom helper. Helper class is now accessible with `codecept_helper` var. Fixes #48
1302
+ * Fixed issues with using yield inside a test [#45](https://github.com/Codeception/CodeceptJS/issues/45) [#47](https://github.com/Codeception/CodeceptJS/issues/47) [#43](https://github.com/Codeception/CodeceptJS/issues/43)
1303
+ * Fixed generating a custom helper. Helper class is now accessible with `codecept_helper` var. Fixes [#48](https://github.com/Codeception/CodeceptJS/issues/48)
1211
1304
 
1212
1305
  ## 0.2.4
1213
1306
 
1214
- * Fixed accessing helpers from custom helper by @pim.
1307
+ * Fixed accessing helpers from custom helper by **[pim](https://github.com/pim)**.
1215
1308
 
1216
1309
  ## 0.2.3
1217
1310
 
1218
- * [WebDriverIO] fixed `seeInField` to work with single value elements like: input[type=text], textareas, and multiple: select, input[type=radio], input[type=checkbox]
1219
- * [WebDriverIO] fixed `pressKey`, key modifeiers (Control, Command, Alt, Shift) are released after the action
1311
+ * **[WebDriverIO]** fixed `seeInField` to work with single value elements like: input[type=text], textareas, and multiple: select, input[type=radio], input[type=checkbox]
1312
+ * **[WebDriverIO]** fixed `pressKey`, key modifeiers (Control, Command, Alt, Shift) are released after the action
1220
1313
 
1221
1314
  ## 0.2.2
1222
1315
 
@@ -1228,7 +1321,7 @@ Whenever you need to create `I` object (in page objects, custom steps, but not i
1228
1321
 
1229
1322
  * **within** context hook added
1230
1323
  * `--reporter` option supported
1231
- * [WebDriverIO] added features and methods:
1324
+ * **[WebDriverIO]** added features and methods:
1232
1325
  - elements: `seeElement`, ...
1233
1326
  - popups: `acceptPopup`, `cancelPopup`, `seeInPopup`,...
1234
1327
  - navigation: `moveCursorTo`, `scrollTo`
@@ -1239,7 +1332,8 @@ Whenever you need to create `I` object (in page objects, custom steps, but not i
1239
1332
  - keyboard: `appendField`, `pressKey`
1240
1333
  - mouse: `rightClick`
1241
1334
  * tests added
1242
- * [WebDriverIO] proxy configuration added by @petehouston
1243
- * [WebDriverIO] fixed `waitForText` method by @roadhump. Fixes #11
1244
- * Fixed creating output dir when it already exists on init by @alfirin
1335
+ * **[WebDriverIO]** proxy configuration added by **[petehouston](https://github.com/petehouston)**
1336
+ * **[WebDriverIO]** fixed `waitForText` method by **[roadhump](https://github.com/roadhump)**. Fixes [#11](https://github.com/Codeception/CodeceptJS/issues/11)
1337
+ * Fixed creating output dir when it already exists on init by **[alfirin](https://github.com/alfirin)**
1245
1338
  * Fixed loading of custom helpers
1339
+