codeceptjs 3.5.12-beta.2 → 3.5.12-beta.3
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.
- package/lib/locator.js +7 -12
- package/package.json +3 -5
- package/docs/advanced.md +0 -351
- package/docs/ai.md +0 -248
- package/docs/api.md +0 -323
- package/docs/basics.md +0 -979
- package/docs/bdd.md +0 -539
- package/docs/best.md +0 -237
- package/docs/books.md +0 -37
- package/docs/bootstrap.md +0 -135
- package/docs/build/ApiDataFactory.js +0 -410
- package/docs/build/Appium.js +0 -2027
- package/docs/build/Expect.js +0 -422
- package/docs/build/FileSystem.js +0 -228
- package/docs/build/GraphQL.js +0 -229
- package/docs/build/GraphQLDataFactory.js +0 -309
- package/docs/build/JSONResponse.js +0 -338
- package/docs/build/Mochawesome.js +0 -71
- package/docs/build/Nightmare.js +0 -2152
- package/docs/build/OpenAI.js +0 -126
- package/docs/build/Playwright.js +0 -5110
- package/docs/build/Protractor.js +0 -2706
- package/docs/build/Puppeteer.js +0 -3905
- package/docs/build/REST.js +0 -344
- package/docs/build/TestCafe.js +0 -2125
- package/docs/build/WebDriver.js +0 -4240
- package/docs/changelog.md +0 -2572
- package/docs/commands.md +0 -266
- package/docs/community-helpers.md +0 -58
- package/docs/configuration.md +0 -157
- package/docs/continuous-integration.md +0 -22
- package/docs/custom-helpers.md +0 -306
- package/docs/data.md +0 -379
- package/docs/detox.md +0 -235
- package/docs/docker.md +0 -136
- package/docs/email.md +0 -183
- package/docs/examples.md +0 -149
- package/docs/helpers/ApiDataFactory.md +0 -266
- package/docs/helpers/Appium.md +0 -1374
- package/docs/helpers/Detox.md +0 -586
- package/docs/helpers/Expect.md +0 -275
- package/docs/helpers/FileSystem.md +0 -152
- package/docs/helpers/GraphQL.md +0 -151
- package/docs/helpers/GraphQLDataFactory.md +0 -226
- package/docs/helpers/JSONResponse.md +0 -254
- package/docs/helpers/Mochawesome.md +0 -8
- package/docs/helpers/MockRequest.md +0 -377
- package/docs/helpers/Nightmare.md +0 -1305
- package/docs/helpers/OpenAI.md +0 -70
- package/docs/helpers/Playwright.md +0 -2759
- package/docs/helpers/Polly.md +0 -44
- package/docs/helpers/Protractor.md +0 -1769
- package/docs/helpers/Puppeteer-firefox.md +0 -86
- package/docs/helpers/Puppeteer.md +0 -2317
- package/docs/helpers/REST.md +0 -218
- package/docs/helpers/TestCafe.md +0 -1321
- package/docs/helpers/WebDriver.md +0 -2547
- package/docs/hooks.md +0 -340
- package/docs/index.md +0 -111
- package/docs/installation.md +0 -75
- package/docs/internal-api.md +0 -266
- package/docs/locators.md +0 -339
- package/docs/mobile-react-native-locators.md +0 -67
- package/docs/mobile.md +0 -338
- package/docs/pageobjects.md +0 -291
- package/docs/parallel.md +0 -400
- package/docs/playwright.md +0 -632
- package/docs/plugins.md +0 -1259
- package/docs/puppeteer.md +0 -316
- package/docs/quickstart.md +0 -162
- package/docs/react.md +0 -70
- package/docs/reports.md +0 -392
- package/docs/secrets.md +0 -36
- package/docs/shadow.md +0 -68
- package/docs/shared/keys.mustache +0 -31
- package/docs/shared/react.mustache +0 -1
- package/docs/testcafe.md +0 -174
- package/docs/translation.md +0 -247
- package/docs/tutorial.md +0 -271
- package/docs/typescript.md +0 -180
- package/docs/ui.md +0 -59
- package/docs/videos.md +0 -28
- package/docs/visual.md +0 -202
- package/docs/vue.md +0 -143
- package/docs/webapi/amOnPage.mustache +0 -11
- package/docs/webapi/appendField.mustache +0 -11
- package/docs/webapi/attachFile.mustache +0 -12
- package/docs/webapi/blur.mustache +0 -18
- package/docs/webapi/checkOption.mustache +0 -13
- package/docs/webapi/clearCookie.mustache +0 -9
- package/docs/webapi/clearField.mustache +0 -9
- package/docs/webapi/click.mustache +0 -25
- package/docs/webapi/clickLink.mustache +0 -8
- package/docs/webapi/closeCurrentTab.mustache +0 -7
- package/docs/webapi/closeOtherTabs.mustache +0 -8
- package/docs/webapi/dontSee.mustache +0 -11
- package/docs/webapi/dontSeeCheckboxIsChecked.mustache +0 -10
- package/docs/webapi/dontSeeCookie.mustache +0 -8
- package/docs/webapi/dontSeeCurrentUrlEquals.mustache +0 -10
- package/docs/webapi/dontSeeElement.mustache +0 -8
- package/docs/webapi/dontSeeElementInDOM.mustache +0 -8
- package/docs/webapi/dontSeeInCurrentUrl.mustache +0 -4
- package/docs/webapi/dontSeeInField.mustache +0 -11
- package/docs/webapi/dontSeeInSource.mustache +0 -8
- package/docs/webapi/dontSeeInTitle.mustache +0 -8
- package/docs/webapi/doubleClick.mustache +0 -13
- package/docs/webapi/downloadFile.mustache +0 -12
- package/docs/webapi/dragAndDrop.mustache +0 -9
- package/docs/webapi/dragSlider.mustache +0 -11
- package/docs/webapi/executeAsyncScript.mustache +0 -24
- package/docs/webapi/executeScript.mustache +0 -26
- package/docs/webapi/fillField.mustache +0 -16
- package/docs/webapi/focus.mustache +0 -13
- package/docs/webapi/forceClick.mustache +0 -28
- package/docs/webapi/forceRightClick.mustache +0 -18
- package/docs/webapi/grabAllWindowHandles.mustache +0 -7
- package/docs/webapi/grabAttributeFrom.mustache +0 -10
- package/docs/webapi/grabAttributeFromAll.mustache +0 -9
- package/docs/webapi/grabBrowserLogs.mustache +0 -9
- package/docs/webapi/grabCookie.mustache +0 -11
- package/docs/webapi/grabCssPropertyFrom.mustache +0 -11
- package/docs/webapi/grabCssPropertyFromAll.mustache +0 -10
- package/docs/webapi/grabCurrentUrl.mustache +0 -9
- package/docs/webapi/grabCurrentWindowHandle.mustache +0 -6
- package/docs/webapi/grabDataFromPerformanceTiming.mustache +0 -20
- package/docs/webapi/grabElementBoundingRect.mustache +0 -20
- package/docs/webapi/grabGeoLocation.mustache +0 -8
- package/docs/webapi/grabHTMLFrom.mustache +0 -10
- package/docs/webapi/grabHTMLFromAll.mustache +0 -9
- package/docs/webapi/grabNumberOfOpenTabs.mustache +0 -8
- package/docs/webapi/grabNumberOfVisibleElements.mustache +0 -9
- package/docs/webapi/grabPageScrollPosition.mustache +0 -8
- package/docs/webapi/grabPopupText.mustache +0 -5
- package/docs/webapi/grabSource.mustache +0 -8
- package/docs/webapi/grabTextFrom.mustache +0 -10
- package/docs/webapi/grabTextFromAll.mustache +0 -9
- package/docs/webapi/grabTitle.mustache +0 -8
- package/docs/webapi/grabValueFrom.mustache +0 -9
- package/docs/webapi/grabValueFromAll.mustache +0 -8
- package/docs/webapi/grabWebElement.mustache +0 -9
- package/docs/webapi/grabWebElements.mustache +0 -9
- package/docs/webapi/moveCursorTo.mustache +0 -12
- package/docs/webapi/openNewTab.mustache +0 -7
- package/docs/webapi/pressKey.mustache +0 -12
- package/docs/webapi/pressKeyDown.mustache +0 -12
- package/docs/webapi/pressKeyUp.mustache +0 -12
- package/docs/webapi/pressKeyWithKeyNormalization.mustache +0 -60
- package/docs/webapi/refreshPage.mustache +0 -6
- package/docs/webapi/resizeWindow.mustache +0 -6
- package/docs/webapi/rightClick.mustache +0 -14
- package/docs/webapi/saveElementScreenshot.mustache +0 -10
- package/docs/webapi/saveScreenshot.mustache +0 -12
- package/docs/webapi/say.mustache +0 -10
- package/docs/webapi/scrollIntoView.mustache +0 -11
- package/docs/webapi/scrollPageToBottom.mustache +0 -6
- package/docs/webapi/scrollPageToTop.mustache +0 -6
- package/docs/webapi/scrollTo.mustache +0 -12
- package/docs/webapi/see.mustache +0 -11
- package/docs/webapi/seeAttributesOnElements.mustache +0 -9
- package/docs/webapi/seeCheckboxIsChecked.mustache +0 -10
- package/docs/webapi/seeCookie.mustache +0 -8
- package/docs/webapi/seeCssPropertiesOnElements.mustache +0 -9
- package/docs/webapi/seeCurrentUrlEquals.mustache +0 -11
- package/docs/webapi/seeElement.mustache +0 -8
- package/docs/webapi/seeElementInDOM.mustache +0 -8
- package/docs/webapi/seeInCurrentUrl.mustache +0 -8
- package/docs/webapi/seeInField.mustache +0 -12
- package/docs/webapi/seeInPopup.mustache +0 -8
- package/docs/webapi/seeInSource.mustache +0 -7
- package/docs/webapi/seeInTitle.mustache +0 -8
- package/docs/webapi/seeNumberOfElements.mustache +0 -11
- package/docs/webapi/seeNumberOfVisibleElements.mustache +0 -10
- package/docs/webapi/seeTextEquals.mustache +0 -9
- package/docs/webapi/seeTitleEquals.mustache +0 -8
- package/docs/webapi/selectOption.mustache +0 -21
- package/docs/webapi/setCookie.mustache +0 -16
- package/docs/webapi/setGeoLocation.mustache +0 -12
- package/docs/webapi/switchTo.mustache +0 -9
- package/docs/webapi/switchToNextTab.mustache +0 -10
- package/docs/webapi/switchToPreviousTab.mustache +0 -10
- package/docs/webapi/type.mustache +0 -21
- package/docs/webapi/uncheckOption.mustache +0 -13
- package/docs/webapi/wait.mustache +0 -8
- package/docs/webapi/waitForClickable.mustache +0 -11
- package/docs/webapi/waitForDetached.mustache +0 -10
- package/docs/webapi/waitForElement.mustache +0 -11
- package/docs/webapi/waitForEnabled.mustache +0 -6
- package/docs/webapi/waitForFunction.mustache +0 -17
- package/docs/webapi/waitForInvisible.mustache +0 -10
- package/docs/webapi/waitForNumberOfTabs.mustache +0 -9
- package/docs/webapi/waitForText.mustache +0 -13
- package/docs/webapi/waitForValue.mustache +0 -10
- package/docs/webapi/waitForVisible.mustache +0 -10
- package/docs/webapi/waitInUrl.mustache +0 -9
- package/docs/webapi/waitNumberOfVisibleElements.mustache +0 -10
- package/docs/webapi/waitToHide.mustache +0 -10
- package/docs/webapi/waitUrlEquals.mustache +0 -10
- package/docs/webdriver.md +0 -701
- package/docs/wiki/Books-&-Posts.md +0 -27
- package/docs/wiki/Community-Helpers-&-Plugins.md +0 -53
- package/docs/wiki/Converting-Playwright-to-Istanbul-Coverage.md +0 -61
- package/docs/wiki/Examples.md +0 -145
- package/docs/wiki/Google-Summer-of-Code-(GSoC)-2020.md +0 -68
- package/docs/wiki/Home.md +0 -16
- package/docs/wiki/Migration-to-Appium-v2---CodeceptJS.md +0 -83
- package/docs/wiki/Release-Process.md +0 -24
- package/docs/wiki/Roadmap.md +0 -23
- package/docs/wiki/Tests.md +0 -1393
- package/docs/wiki/Upgrading-to-CodeceptJS-3.md +0 -153
- package/docs/wiki/Videos.md +0 -19
- package/lib/css2xpath/js/css_to_xpath.js +0 -20
- package/lib/css2xpath/js/expression.js +0 -23
- package/lib/css2xpath/js/renderer.js +0 -239
package/docs/changelog.md
DELETED
|
@@ -1,2572 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
permalink: /changelog
|
|
3
|
-
title: Releases
|
|
4
|
-
sidebar: false
|
|
5
|
-
layout: Section
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Releases
|
|
9
|
-
|
|
10
|
-
## 3.5.3
|
|
11
|
-
|
|
12
|
-
🛩️ Features
|
|
13
|
-
|
|
14
|
-
* **[Playwright]** Provide new steps to check network traffic [#3748](https://github.com/codeceptjs/CodeceptJS/issues/3748) - by **[ngraf](https://github.com/ngraf)** **[KobeNguyenT](https://github.com/KobeNguyenT)**
|
|
15
|
-
|
|
16
|
-
```js
|
|
17
|
-
// recording traffics and verify the traffic
|
|
18
|
-
await I.startRecordingTraffic();
|
|
19
|
-
I.amOnPage('https://codecept.io/');
|
|
20
|
-
await I.seeTraffic({ name: 'traffics', url: 'https://codecept.io/img/companies/BC_LogoScreen_C.jpg' });
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
```js
|
|
24
|
-
// block the traffic
|
|
25
|
-
I.blockTraffic('https://reqres.in/api/comments/*');
|
|
26
|
-
await I.amOnPage('/form/fetch_call');
|
|
27
|
-
await I.startRecordingTraffic();
|
|
28
|
-
await I.click('GET COMMENTS');
|
|
29
|
-
await I.see('Can not load data!');
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
```js
|
|
33
|
-
// check the traffic with advanced params
|
|
34
|
-
I.amOnPage('https://openai.com/blog/chatgpt');
|
|
35
|
-
await I.startRecordingTraffic();
|
|
36
|
-
await I.seeTraffic({
|
|
37
|
-
name: 'sentry event',
|
|
38
|
-
url: 'https://images.openai.com/blob/cf717bdb-0c8c-428a-b82b-3c3add87a600',
|
|
39
|
-
parameters: {
|
|
40
|
-
width: '1919',
|
|
41
|
-
height: '1138',
|
|
42
|
-
},
|
|
43
|
-
});
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
🐛 Bugfix
|
|
47
|
-
|
|
48
|
-
* **[retryStepPlugin]** Fix retry step when using global retry [#3768](https://github.com/codeceptjs/CodeceptJS/issues/3768) - by **[KobeNguyenT](https://github.com/KobeNguyenT)**
|
|
49
|
-
|
|
50
|
-
🗑 Deprecated
|
|
51
|
-
|
|
52
|
-
* Nightmare and Protractor helpers have been deprecated
|
|
53
|
-
|
|
54
|
-
## 3.5.2
|
|
55
|
-
|
|
56
|
-
🐛 Bug Fixes
|
|
57
|
-
|
|
58
|
-
* **[Playwright]** reverted `clearField` to previous implementation
|
|
59
|
-
* **[OpenAI]** fixed running helper in pause mode. [#3755](https://github.com/codeceptjs/CodeceptJS/issues/3755) by **[KobeNguyenT](https://github.com/KobeNguyenT)**
|
|
60
|
-
|
|
61
|
-
## 3.5.1
|
|
62
|
-
|
|
63
|
-
🛩️ Features
|
|
64
|
-
|
|
65
|
-
* [Puppeteer][WebDriver][TestCafe] Added methods by **[KobeNguyenT](https://github.com/KobeNguyenT)** in [#3737](https://github.com/codeceptjs/CodeceptJS/issues/3737)
|
|
66
|
-
* `blur`
|
|
67
|
-
* `focus`
|
|
68
|
-
* Improved BDD output to print steps without `I.` commands` by **[davertmik](https://github.com/davertmik)** [#3739](https://github.com/codeceptjs/CodeceptJS/issues/3739)
|
|
69
|
-
* Improved `codecept init` setup for Electron tests by **[KobeNguyenT](https://github.com/KobeNguyenT)**. See [#3733](https://github.com/codeceptjs/CodeceptJS/issues/3733)
|
|
70
|
-
|
|
71
|
-
🐛 Bug Fixes
|
|
72
|
-
|
|
73
|
-
* Fixed serializing of custom errors making tests stuck. Fix [#3739](https://github.com/codeceptjs/CodeceptJS/issues/3739) by **[davertmik](https://github.com/davertmik)**.
|
|
74
|
-
|
|
75
|
-
📖 Documentation
|
|
76
|
-
|
|
77
|
-
* Fixed Playwright docs by **[Horsty80](https://github.com/Horsty80)**
|
|
78
|
-
* Fixed ai docs by **[ngraf](https://github.com/ngraf)**
|
|
79
|
-
* Various fixes by **[KobeNguyenT](https://github.com/KobeNguyenT)**
|
|
80
|
-
|
|
81
|
-
## 3.5.0
|
|
82
|
-
|
|
83
|
-
🛩️ Features
|
|
84
|
-
|
|
85
|
-
- **🪄 [AI Powered Test Automation](/ai)** - use OpenAI as a copilot for test automation. [#3713](https://github.com/codeceptjs/CodeceptJS/issues/3713) By **[davertmik](https://github.com/davertmik)**
|
|
86
|
-

|
|
87
|
-
* [AI guide](/ai) added
|
|
88
|
-
* added support for OpenAI in `pause()`
|
|
89
|
-
* added [`heal` plugin](/plugins#heal) for self-healing tests
|
|
90
|
-
* added [`OpenAI`](/helpers/openai) helper
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
- [Playwright][Puppeteer][WebDriver] Highlight the interacting elements in debug mode or with `highlightElement` option set ([#3672](https://github.com/codeceptjs/CodeceptJS/issues/3672)) - by **[KobeNguyenT](https://github.com/KobeNguyenT)**
|
|
94
|
-
|
|
95
|
-

|
|
96
|
-
|
|
97
|
-
- **[Playwright]** Support for APIs in Playwright ([#3665](https://github.com/codeceptjs/CodeceptJS/issues/3665)) - by Egor Bodnar
|
|
98
|
-
* `clearField` replaced to use new Playwright API
|
|
99
|
-
* `blur` added
|
|
100
|
-
* `focus` added
|
|
101
|
-
|
|
102
|
-
- **[Added support for multiple browsers](/parallel#Parallel-Execution-by-Workers-on-Multiple-Browsers)** in `run-workers` ([#3606](https://github.com/codeceptjs/CodeceptJS/issues/3606)) by **[karanshah-browserstack](https://github.com/karanshah-browserstack)** :
|
|
103
|
-
|
|
104
|
-
Multiple browsers configured as profiles:
|
|
105
|
-
|
|
106
|
-
```js
|
|
107
|
-
exports.config = {
|
|
108
|
-
helpers: {
|
|
109
|
-
WebDriver: {
|
|
110
|
-
url: 'http://localhost:3000',
|
|
111
|
-
}
|
|
112
|
-
},
|
|
113
|
-
multiple: {
|
|
114
|
-
profile1: {
|
|
115
|
-
browsers: [
|
|
116
|
-
{
|
|
117
|
-
browser: "firefox",
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
browser: "chrome",
|
|
121
|
-
}
|
|
122
|
-
]
|
|
123
|
-
},
|
|
124
|
-
```
|
|
125
|
-
And executed via `run-workers` with `all` argument
|
|
126
|
-
|
|
127
|
-
```
|
|
128
|
-
npx codeceptjs run-workers 2 all
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
- **[Appium]** Add Appium v2 support ([#3622](https://github.com/codeceptjs/CodeceptJS/issues/3622)) - by **[KobeNguyenT](https://github.com/KobeNguyenT)**
|
|
132
|
-
- Improve `gpo` command to create page objects as modules or as classes ([#3625](https://github.com/codeceptjs/CodeceptJS/issues/3625)) - by **[KobeNguyenT](https://github.com/KobeNguyenT)**
|
|
133
|
-
- Added `emptyOutputFolder` config to clean up output before running tests ([#3604](https://github.com/codeceptjs/CodeceptJS/issues/3604)) - by **[KobeNguyenT](https://github.com/KobeNguyenT)**
|
|
134
|
-
- Add `secret()` function support to `append()` and `type()` ([#3615](https://github.com/codeceptjs/CodeceptJS/issues/3615)) - by **[anils92](https://github.com/anils92)**
|
|
135
|
-
- **[Playwright]** Add `bypassCSP` option to helper's config ([#3641](https://github.com/codeceptjs/CodeceptJS/issues/3641)) - by **[KobeNguyenT](https://github.com/KobeNguyenT)**
|
|
136
|
-
- Print number of tests for each suite in dryRun ([#3620](https://github.com/codeceptjs/CodeceptJS/issues/3620)) - by **[KobeNguyenT](https://github.com/KobeNguyenT)**
|
|
137
|
-
|
|
138
|
-
🐛 Bug Fixes
|
|
139
|
-
|
|
140
|
-
- Support `--grep` in dry-run command ([#3673](https://github.com/codeceptjs/CodeceptJS/issues/3673)) - by **[KobeNguyenT](https://github.com/KobeNguyenT)**
|
|
141
|
-
- Fix typings improvements in playwright ([#3650](https://github.com/codeceptjs/CodeceptJS/issues/3650)) - by **[KobeNguyenT](https://github.com/KobeNguyenT)**
|
|
142
|
-
- Fixed global retry [#3667](https://github.com/codeceptjs/CodeceptJS/issues/3667) by **[KobeNguyenT](https://github.com/KobeNguyenT)**
|
|
143
|
-
- Fixed creating JavaScript test using "codeceptjs gt" ([#3611](https://github.com/codeceptjs/CodeceptJS/issues/3611)) - by Jaromir Obr
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
## 3.4.1
|
|
147
|
-
|
|
148
|
-
* Updated mocha to v 10.2. Fixes [#3591](https://github.com/codeceptjs/CodeceptJS/issues/3591)
|
|
149
|
-
* Fixes executing a faling Before hook. Resolves [#3592](https://github.com/codeceptjs/CodeceptJS/issues/3592)
|
|
150
|
-
|
|
151
|
-
## 3.4.0
|
|
152
|
-
|
|
153
|
-
* **Updated to latest mocha and modern Cucumber**
|
|
154
|
-
* **Allure plugin moved to [@codeceptjs/allure-legacy](https://github.com/codeceptjs/allure-legacy) package**. This happened because allure-commons package v1 was not updated and caused vulnarabilities. Fixes [#3422](https://github.com/codeceptjs/CodeceptJS/issues/3422). We don't plan to maintain allure v2 plugin so it's up to community to take this initiative. Current allure plugin will print a warning message without interfering the run, so it won't accidentally fail your builds.
|
|
155
|
-
* Added ability to **[retry Before](https://codecept.io/basics/#retry-before), BeforeSuite, After, AfterSuite** hooks by **[davertmik](https://github.com/davertmik)**:
|
|
156
|
-
```js
|
|
157
|
-
Feature('flaky Before & BeforeSuite', { retryBefore: 2, retryBeforeSuite: 3 })
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
* **Flexible [retries configuration](https://codecept.io/basics/#retry-configuration) introduced** by **[davertmik](https://github.com/davertmik)**:
|
|
161
|
-
|
|
162
|
-
```js
|
|
163
|
-
retry: [
|
|
164
|
-
{
|
|
165
|
-
// enable this config only for flaky tests
|
|
166
|
-
grep: '@flaky',
|
|
167
|
-
Before: 3 // retry Before 3 times
|
|
168
|
-
Scenario: 3 // retry Scenario 3 times
|
|
169
|
-
},
|
|
170
|
-
{
|
|
171
|
-
// retry less when running slow tests
|
|
172
|
-
grep: '@slow'
|
|
173
|
-
Scenario: 1
|
|
174
|
-
Before: 1
|
|
175
|
-
}, {
|
|
176
|
-
// retry all BeforeSuite 3 times
|
|
177
|
-
BeforeSuite: 3
|
|
178
|
-
}
|
|
179
|
-
]
|
|
180
|
-
```
|
|
181
|
-
* **Flexible [timeout configuration](https://codecept.io/advanced/#timeout-configuration)** introduced by **[davertmik](https://github.com/davertmik)**:
|
|
182
|
-
|
|
183
|
-
```js
|
|
184
|
-
timeout: [
|
|
185
|
-
10, // default timeout is 10secs
|
|
186
|
-
{ // but increase timeout for slow tests
|
|
187
|
-
grep: '@slow',
|
|
188
|
-
Feature: 50
|
|
189
|
-
},
|
|
190
|
-
]
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
* JsDoc: Removed promise from `I.say`. See [#3535](https://github.com/codeceptjs/CodeceptJS/issues/3535) by **[danielrentz](https://github.com/danielrentz)**
|
|
194
|
-
* **[Playwright]** `handleDownloads` requires now a filename param. See [#3511](https://github.com/codeceptjs/CodeceptJS/issues/3511) by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
195
|
-
* **[WebDriver]** Added support for v8, removed support for webdriverio v5 and lower. See [#3578](https://github.com/codeceptjs/CodeceptJS/issues/3578) by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
## 3.3.7
|
|
199
|
-
|
|
200
|
-
🛩️ Features
|
|
201
|
-
|
|
202
|
-
* **Promise-based typings** for TypeScript definitions in [#3465](https://github.com/codeceptjs/CodeceptJS/issues/3465) by **[nlespiaucq](https://github.com/nlespiaucq)**. If you use TypeScript or use linters [check how it may be useful to you](https://bit.ly/3XIMq6n).
|
|
203
|
-
* **Translation** improved to use [custom vocabulary](https://codecept.io/translation/).
|
|
204
|
-
* **[Playwright]** Added methods in [#3398](https://github.com/codeceptjs/CodeceptJS/issues/3398) by **[mirao](https://github.com/mirao)**
|
|
205
|
-
* `restartBrowser` - to restart a browser (with different config)
|
|
206
|
-
* `_createContextPage` - to create a new browser context with a page from a helper
|
|
207
|
-
* Added [Cucumber custom types](/bdd#custom-types) for BDD in [#3435](https://github.com/codeceptjs/CodeceptJS/issues/3435) by **[Likstern](https://github.com/Likstern)**
|
|
208
|
-
* Propose using JSONResponse helper when initializing project for API testing. [#3455](https://github.com/codeceptjs/CodeceptJS/issues/3455) by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
209
|
-
* When translation enabled, generate tests using localized aliases. By **[davertmik](https://github.com/davertmik)**
|
|
210
|
-
* **[Appium]** Added `checkIfAppIsInstalled` in [#3507](https://github.com/codeceptjs/CodeceptJS/issues/3507) by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
211
|
-
|
|
212
|
-
🐛 Bugfixes
|
|
213
|
-
|
|
214
|
-
* Fixed [#3462](https://github.com/codeceptjs/CodeceptJS/issues/3462) `TypeError: Cannot read properties of undefined (reading 'setStatus')` by **[dwentland24](https://github.com/dwentland24)** in [#3438](https://github.com/codeceptjs/CodeceptJS/issues/3438)
|
|
215
|
-
* Fixed creating steps file for TypeScript setup [#3459](https://github.com/codeceptjs/CodeceptJS/issues/3459) by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
216
|
-
* Fixed issue of after all event in `run-rerun` command after complete execution [#3464](https://github.com/codeceptjs/CodeceptJS/issues/3464) by **[jain-neeeraj](https://github.com/jain-neeeraj)**
|
|
217
|
-
* [Playwright][WebDriver][Appium] Do not change `waitForTimeout` value on validation. See [#3478](https://github.com/codeceptjs/CodeceptJS/issues/3478) by **[pmajewski24](https://github.com/pmajewski24)**. Fixes [#2589](https://github.com/codeceptjs/CodeceptJS/issues/2589)
|
|
218
|
-
* [Playwright][WebDriver][Protractor][Puppeteer][TestCafe] Fixes `Element "{null: undefined}" was not found` and `element ([object Object]) still not present` messages when using object locators. See [#3501](https://github.com/codeceptjs/CodeceptJS/issues/3501) and [#3502](https://github.com/codeceptjs/CodeceptJS/issues/3502) by **[pmajewski24](https://github.com/pmajewski24)**
|
|
219
|
-
* **[Playwright]** Improved file names when downloading file in [#3449](https://github.com/codeceptjs/CodeceptJS/issues/3449) by **[PeterNgTr](https://github.com/PeterNgTr)**. Fixes [#3412](https://github.com/codeceptjs/CodeceptJS/issues/3412) and [#3409](https://github.com/codeceptjs/CodeceptJS/issues/3409)
|
|
220
|
-
* Add default value to `profile` env variable. See [#3443](https://github.com/codeceptjs/CodeceptJS/issues/3443) by **[dwentland24](https://github.com/dwentland24)**. Resolves [#3339](https://github.com/codeceptjs/CodeceptJS/issues/3339)
|
|
221
|
-
* **[Playwright]** Using system-native path separator when saving artifacts in [#3460](https://github.com/codeceptjs/CodeceptJS/issues/3460) by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
222
|
-
* **[Playwright]** Saving videos and traces from multiple sessions in [#3505](https://github.com/codeceptjs/CodeceptJS/issues/3505) by **[davertmik](https://github.com/davertmik)**
|
|
223
|
-
* **[Playwright]** Fixed `amOnPage` to navigate to `about:blank` by **[zaxoavoki](https://github.com/zaxoavoki)** in [#3470](https://github.com/codeceptjs/CodeceptJS/issues/3470) Fixes [#2311](https://github.com/codeceptjs/CodeceptJS/issues/2311)
|
|
224
|
-
* Various typing improvements by **[AWolf81](https://github.com/AWolf81)** **[PeterNgTr](https://github.com/PeterNgTr)** **[mirao](https://github.com/mirao)**
|
|
225
|
-
|
|
226
|
-
📖 Documentation
|
|
227
|
-
|
|
228
|
-
* Updated [Quickstart](https://codecept.io/quickstart/) with detailed explanation of questions in init
|
|
229
|
-
* Added [Translation](/translation/) guide
|
|
230
|
-
* Updated [TypeScript](https://bit.ly/3XIMq6n) guide for promise-based typings
|
|
231
|
-
* Reordered guides list on a website
|
|
232
|
-
|
|
233
|
-
## 3.3.6
|
|
234
|
-
|
|
235
|
-
* [`run-rerun`](https://codecept.io/commands/#run-rerun) command was re-introduced by **[dwentland24](https://github.com/dwentland24)** in [#3436](https://github.com/codeceptjs/CodeceptJS/issues/3436). Use it to perform run multiple times and detect flaky tests
|
|
236
|
-
* Enabled `retryFailedStep` by default in `@codeceptjs/configure` v 0.10. See https://github.com/codeceptjs/configure/pull/26
|
|
237
|
-
* **[Playwright]** Fixed properties types "waitForNavigation" and "firefox" by **[mirao](https://github.com/mirao)** in [#3401](https://github.com/codeceptjs/CodeceptJS/issues/3401)
|
|
238
|
-
* **[REST]** Changed "endpoint" to optional by **[mirao](https://github.com/mirao)** in [#3404](https://github.com/codeceptjs/CodeceptJS/issues/3404)
|
|
239
|
-
* **[REST]** Use [`secret`](/secrets) for form encoded string by **[PeterNgTr](https://github.com/PeterNgTr)**:
|
|
240
|
-
|
|
241
|
-
```js
|
|
242
|
-
const secretData = secret('name=john&password=123456');
|
|
243
|
-
const response = await I.sendPostRequest('/user', secretData);
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
* [Playwright]Fixed docs related to fixed properties types "waitForNavigation" and "firefox" by **[mirao](https://github.com/mirao)** in [#3407](https://github.com/codeceptjs/CodeceptJS/issues/3407)
|
|
247
|
-
* [Playwright]Fixed parameters of startActivity() by **[mirao](https://github.com/mirao)** in [#3408](https://github.com/codeceptjs/CodeceptJS/issues/3408)
|
|
248
|
-
* Move semver to prod dependencies by **[timja](https://github.com/timja)** in [#3413](https://github.com/codeceptjs/CodeceptJS/issues/3413)
|
|
249
|
-
* check if browser is W3C instead of Android by **[mikk150](https://github.com/mikk150)** in [#3414](https://github.com/codeceptjs/CodeceptJS/issues/3414)
|
|
250
|
-
* Pass service configs with options and caps as array for browsers… by **[07souravkunda](https://github.com/07souravkunda)** in [#3418](https://github.com/codeceptjs/CodeceptJS/issues/3418)
|
|
251
|
-
* fix for type of "webdriver.port" by **[ngraf](https://github.com/ngraf)** in [#3421](https://github.com/codeceptjs/CodeceptJS/issues/3421)
|
|
252
|
-
* fix for type of "webdriver.smartWait" by **[pmajewski24](https://github.com/pmajewski24)** in [#3426](https://github.com/codeceptjs/CodeceptJS/issues/3426)
|
|
253
|
-
* fix(datatable): mask secret text by **[PeterNgTr](https://github.com/PeterNgTr)** in [#3432](https://github.com/codeceptjs/CodeceptJS/issues/3432)
|
|
254
|
-
* fix(playwright) - video name and missing type by **[PeterNgTr](https://github.com/PeterNgTr)** in [#3430](https://github.com/codeceptjs/CodeceptJS/issues/3430)
|
|
255
|
-
* fix for expected type of "bootstrap", "teardown", "bootstrapAll" and "teardownAll" by **[ngraf](https://github.com/ngraf)** in [#3424](https://github.com/codeceptjs/CodeceptJS/issues/3424)
|
|
256
|
-
* Improve generate pageobject `gpo` command to work with TypeScript by **[PeterNgTr](https://github.com/PeterNgTr)** in [#3411](https://github.com/codeceptjs/CodeceptJS/issues/3411)
|
|
257
|
-
* Fixed dry-run to always return 0 code and exit
|
|
258
|
-
* Added minimal version notice for NodeJS >= 12
|
|
259
|
-
* fix(utils): remove . of test title to avoid confusion by **[PeterNgTr](https://github.com/PeterNgTr)** in [#3431](https://github.com/codeceptjs/CodeceptJS/issues/3431)
|
|
260
|
-
|
|
261
|
-
## 3.3.5
|
|
262
|
-
|
|
263
|
-
🛩️ Features
|
|
264
|
-
|
|
265
|
-
* Added **TypeScript types for CodeceptJS config**.
|
|
266
|
-
|
|
267
|
-
Update `codecept.conf.js` to get intellisense when writing config file:
|
|
268
|
-
|
|
269
|
-
```js
|
|
270
|
-
/**@type {CodeceptJS.MainConfig}**/
|
|
271
|
-
exports.config = {
|
|
272
|
-
//...
|
|
273
|
-
}
|
|
274
|
-
```
|
|
275
|
-
* Added TS types for helpers config:
|
|
276
|
-
* Playwright
|
|
277
|
-
* Puppeteer
|
|
278
|
-
* WebDriver
|
|
279
|
-
* REST
|
|
280
|
-
* Added **[TypeScript option](/typescript)** for installation via `codeceptjs init` to initialize new projects in TS (by **[PeterNgTr](https://github.com/PeterNgTr)** and **[davertmik](https://github.com/davertmik)**)
|
|
281
|
-
* Includes `node-ts` automatically when using TypeScript setup.
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
🐛 Bugfixes
|
|
285
|
-
|
|
286
|
-
* **[Puppeteer]** Fixed support for Puppeteer > 14.4 by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
287
|
-
* Don't report files as existing when non-directory is in path by **[jonathanperret](https://github.com/jonathanperret)**. See [#3374](https://github.com/codeceptjs/CodeceptJS/issues/3374)
|
|
288
|
-
* Fixed TS type for `secret` function by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
289
|
-
* Fixed wrong order for async MetaSteps by **[dwentland24](https://github.com/dwentland24)**. See [#3393](https://github.com/codeceptjs/CodeceptJS/issues/3393)
|
|
290
|
-
* Fixed same param substitution in BDD step. See [#3385](https://github.com/codeceptjs/CodeceptJS/issues/3385) by **[snehabhandge](https://github.com/snehabhandge)**
|
|
291
|
-
|
|
292
|
-
📖 Documentation
|
|
293
|
-
|
|
294
|
-
* Updated [configuration options](https://codecept.io/configuration/) to match TypeScript types
|
|
295
|
-
* Updated [TypeScript documentation](https://codecept.io/typescript/) on simplifying TS installation
|
|
296
|
-
* Added codecept-tesults plugin documentation by **[ajeetd](https://github.com/ajeetd)**
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
## 3.3.4
|
|
301
|
-
|
|
302
|
-
* Added support for masking fields in objects via `secret` function:
|
|
303
|
-
|
|
304
|
-
```js
|
|
305
|
-
I.sendPostRequest('/auth', secret({ name: 'jon', password: '123456' }, 'password'));
|
|
306
|
-
```
|
|
307
|
-
* Added [a guide about using of `secret`](/secrets) function
|
|
308
|
-
* **[Appium]** Use `touchClick` when interacting with elements in iOS. See [#3317](https://github.com/codeceptjs/CodeceptJS/issues/3317) by **[mikk150](https://github.com/mikk150)**
|
|
309
|
-
* **[Playwright]** Added `cdpConnection` option to connect over CDP. See [#3309](https://github.com/codeceptjs/CodeceptJS/issues/3309) by **[Hmihaly](https://github.com/Hmihaly)**
|
|
310
|
-
* [customLocator plugin] Allowed to specify multiple attributes for custom locator. Thanks to **[aruiz-caritsqa](https://github.com/aruiz-caritsqa)**
|
|
311
|
-
|
|
312
|
-
```js
|
|
313
|
-
plugins: {
|
|
314
|
-
customLocator: {
|
|
315
|
-
enabled: true,
|
|
316
|
-
prefix: '$',
|
|
317
|
-
attribute: ['data-qa', 'data-test'],
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
```
|
|
321
|
-
* [retryTo plugin] Fixed [#3147](https://github.com/codeceptjs/CodeceptJS/issues/3147) using `pollInterval` option. See [#3351](https://github.com/codeceptjs/CodeceptJS/issues/3351) by **[cyonkee](https://github.com/cyonkee)**
|
|
322
|
-
* **[Playwright]** Fixed grabbing of browser console messages and window resize in new tab. Thanks to **[mirao](https://github.com/mirao)**
|
|
323
|
-
* **[REST]** Added `prettyPrintJson` option to print JSON in nice way by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
324
|
-
* **[JSONResponse]** Updated response validation to iterate over array items if response is array. Thanks to **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
325
|
-
|
|
326
|
-
```js
|
|
327
|
-
// response.data == [
|
|
328
|
-
// { user: { name: 'jon', email: 'jon@doe.com' } },
|
|
329
|
-
// { user: { name: 'matt', email: 'matt@doe.com' } },
|
|
330
|
-
//]
|
|
331
|
-
|
|
332
|
-
I.seeResponseContainsKeys(['user']);
|
|
333
|
-
I.seeResponseContainsJson({ user: { email: 'jon@doe.com' } });
|
|
334
|
-
I.seeResponseContainsJson({ user: { email: 'matt@doe.com' } });
|
|
335
|
-
I.dontSeeResponseContainsJson({ user: 2 });
|
|
336
|
-
```
|
|
337
|
-
|
|
338
|
-
## 3.3.3
|
|
339
|
-
|
|
340
|
-
* Fixed `DataCloneError: () => could not be cloned` when running data tests in run-workers
|
|
341
|
-
* 🇺🇦 Added #StandWithUkraine notice to CLI
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
## 3.3.2
|
|
345
|
-
|
|
346
|
-
* **[REST]** Fixed override of headers/token in `haveRequestHeaders()` and `amBearerAuthenticated()`. See [#3304](https://github.com/codeceptjs/CodeceptJS/issues/3304) by **[mirao](https://github.com/mirao)**
|
|
347
|
-
* Reverted typings change introduced in [#3245](https://github.com/codeceptjs/CodeceptJS/issues/3245). [More details on this](https://twitter.com/CodeceptJS/status/1519725963856207873)
|
|
348
|
-
|
|
349
|
-
## 3.3.1
|
|
350
|
-
|
|
351
|
-
🛩️ Features:
|
|
352
|
-
|
|
353
|
-
* Add option to avoid duplicate gherkin step definitions ([#3257](https://github.com/codeceptjs/CodeceptJS/issues/3257)) - **[raywiis](https://github.com/raywiis)**
|
|
354
|
-
* Added `step.*` for run-workers [#3272](https://github.com/codeceptjs/CodeceptJS/issues/3272). Thanks to **[abhimanyupandian](https://github.com/abhimanyupandian)**
|
|
355
|
-
* Fixed loading tests for `codecept run` using glob patterns. By **[jayudey-wf](https://github.com/jayudey-wf)**
|
|
356
|
-
|
|
357
|
-
```
|
|
358
|
-
npx codeceptjs run test-dir/*"
|
|
359
|
-
```
|
|
360
|
-
|
|
361
|
-
* **[Playwright]** **Possible breaking change.** By default `timeout` is changed to 5000ms. The value set in 3.3.0 was too low. Please set `timeout` explicitly to not depend on release values.
|
|
362
|
-
* **[Playwright]** Added for color scheme option by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
363
|
-
|
|
364
|
-
```js
|
|
365
|
-
helpers: {
|
|
366
|
-
Playwright : {
|
|
367
|
-
url: "http://localhost",
|
|
368
|
-
colorScheme: "dark",
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
```
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
🐛 Bugfixes:
|
|
375
|
-
|
|
376
|
-
* **[Playwright]** Fixed `Cannot read property 'video' of undefined`
|
|
377
|
-
* Fixed haveRequestHeaders() and amBearerAuthenticated() of REST helper ([#3260](https://github.com/codeceptjs/CodeceptJS/issues/3260)) - **[mirao](https://github.com/mirao)**
|
|
378
|
-
* Fixed: allure attachment fails if screenshot failed [#3298](https://github.com/codeceptjs/CodeceptJS/issues/3298) by **[ruudvanderweijde](https://github.com/ruudvanderweijde)**
|
|
379
|
-
* Fixed [#3105](https://github.com/codeceptjs/CodeceptJS/issues/3105) using autoLogin() plugin with TypeScript. Fix [#3290](https://github.com/codeceptjs/CodeceptJS/issues/3290) by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
380
|
-
* **[Playwright]** Added extra params for click and dragAndDrop to type definitions by **[mirao](https://github.com/mirao)**
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
📖 Documentation
|
|
384
|
-
* Improving the typings in many places
|
|
385
|
-
* Improving the return type of helpers for TS users ([#3245](https://github.com/codeceptjs/CodeceptJS/issues/3245)) - **[nlespiaucq](https://github.com/nlespiaucq)**
|
|
386
|
-
|
|
387
|
-
## 3.3.0
|
|
388
|
-
|
|
389
|
-
🛩️ Features:
|
|
390
|
-
|
|
391
|
-
* [**API Testing introduced**](/api)
|
|
392
|
-
* Introduced [`JSONResponse`](/helpers/JSONResponse) helper which connects to REST, GraphQL or Playwright helper
|
|
393
|
-
* **[REST]** Added `amBearerAuthenticated` method
|
|
394
|
-
* **[REST]** Added `haveRequestHeaders` method
|
|
395
|
-
* Added dependency on `joi` and `chai`
|
|
396
|
-
* **[Playwright]** Added `timeout` option to set [timeout](https://playwright.dev/docs/api/class-page#page-set-default-timeout) for all Playwright actions. If an action fails, Playwright keeps retrying it for a time set by timeout.
|
|
397
|
-
* **[Playwright]** **Possible breaking change.** By default `timeout` is set to 1000ms. *Previous default was set by Playwright internally to 30s. This was causing contradiction to CodeceptJS retries, so triggered up to 3 retries for 30s of time. This timeout option was lowered so retryFailedStep plugin would not cause long delays.*
|
|
398
|
-
* **[Playwright]** Updated `restart` config option to include 3 restart strategies:
|
|
399
|
-
* 'context' or **false** - restarts [browser context](https://playwright.dev/docs/api/class-browsercontext) but keeps running browser. Recommended by Playwright team to keep tests isolated.
|
|
400
|
-
* 'browser' or **true** - closes browser and opens it again between tests.
|
|
401
|
-
* 'session' or 'keep' - keeps browser context and session, but cleans up cookies and localStorage between tests. The fastest option when running tests in windowed mode. Works with `keepCookies` and `keepBrowserState` options. This behavior was default prior CodeceptJS 3.1
|
|
402
|
-
* **[Playwright]** Extended methods to provide more options from engine. These methods were updated so additional options can be be passed as the last argument:
|
|
403
|
-
* [`click`](/helpers/Playwright#click)
|
|
404
|
-
* [`dragAndDrop`](/helpers/Playwright#dragAndDrop)
|
|
405
|
-
* [`checkOption`](/helpers/Playwright#checkOption)
|
|
406
|
-
* [`uncheckOption`](/helpers/Playwright#uncheckOption)
|
|
407
|
-
|
|
408
|
-
```js
|
|
409
|
-
// use Playwright click options as 3rd argument
|
|
410
|
-
I.click('canvas', '.model', { position: { x: 20, y: 40 } })
|
|
411
|
-
// check option also has options
|
|
412
|
-
I.checkOption('Agree', '.signup', { position: { x: 5, y: 5 } })
|
|
413
|
-
```
|
|
414
|
-
|
|
415
|
-
* `eachElement` plugin introduced. It allows you to iterate over elements and perform some action on them using direct engines API
|
|
416
|
-
|
|
417
|
-
```js
|
|
418
|
-
await eachElement('click all links in .list', '.list a', (el) => {
|
|
419
|
-
await el.click();
|
|
420
|
-
})
|
|
421
|
-
```
|
|
422
|
-
* **[Playwright]** Added support to `playwright-core` package if `playwright` is not installed. See [#3190](https://github.com/codeceptjs/CodeceptJS/issues/3190), fixes [#2663](https://github.com/codeceptjs/CodeceptJS/issues/2663).
|
|
423
|
-
* **[Playwright]** Added `makeApiRequest` action to perform API requests. Requires Playwright >= 1.18
|
|
424
|
-
* Added support to `codecept.config.js` for name consistency across other JS tools. See motivation at [#3195](https://github.com/codeceptjs/CodeceptJS/issues/3195) by **[JiLiZART](https://github.com/JiLiZART)**
|
|
425
|
-
* **[ApiDataFactory]** Added options arg to `have` method. See [#3197](https://github.com/codeceptjs/CodeceptJS/issues/3197) by **[JJlokidoki](https://github.com/JJlokidoki)**
|
|
426
|
-
* Improved pt-br translations to include keywords: 'Funcionalidade', 'Cenário', 'Antes', 'Depois', 'AntesDaSuite', 'DepoisDaSuite'. See [#3206](https://github.com/codeceptjs/CodeceptJS/issues/3206) by **[danilolutz](https://github.com/danilolutz)**
|
|
427
|
-
* [allure plugin] Introduced `addStep` method to add comments and attachments. See [#3104](https://github.com/codeceptjs/CodeceptJS/issues/3104) by **[EgorBodnar](https://github.com/EgorBodnar)**
|
|
428
|
-
|
|
429
|
-
🐛 Bugfixes:
|
|
430
|
-
|
|
431
|
-
* Fixed [#3212](https://github.com/codeceptjs/CodeceptJS/issues/3212): using Regex flags for Cucumber steps. See [#3214](https://github.com/codeceptjs/CodeceptJS/issues/3214) by **[anils92](https://github.com/anils92)**
|
|
432
|
-
|
|
433
|
-
📖 Documentation
|
|
434
|
-
|
|
435
|
-
* Added [Testomat.io reporter](/reports#testomatio)
|
|
436
|
-
* Added [api testing](/api) guides
|
|
437
|
-
* Added [internal api](/internal-api) guides
|
|
438
|
-
* **[Appium]** Fixed documentation for `performSwipe`
|
|
439
|
-
* **[Playwright]** update docs for `usePlaywrightTo` method by **[dbudzins](https://github.com/dbudzins)**
|
|
440
|
-
|
|
441
|
-
## 3.2.3
|
|
442
|
-
|
|
443
|
-
* Documentation improvements by **[maojunxyz](https://github.com/maojunxyz)**
|
|
444
|
-
* Guard mocha cli reporter from registering step logger multiple times [#3180](https://github.com/codeceptjs/CodeceptJS/issues/3180) by **[nikocanvacom](https://github.com/nikocanvacom)**
|
|
445
|
-
* **[Playwright]** Fixed "tracing.stop: tracing.stop: ENAMETOOLONG: name too long" by **[hatufacci](https://github.com/hatufacci)**
|
|
446
|
-
* Fixed [#2889](https://github.com/codeceptjs/CodeceptJS/issues/2889): return always the same error contract from simplifyTest. See [#3168](https://github.com/codeceptjs/CodeceptJS/issues/3168) by **[andremoah](https://github.com/andremoah)**
|
|
447
|
-
|
|
448
|
-
## 3.2.2
|
|
449
|
-
|
|
450
|
-
* **[Playwright]** Reverted removal of retry on context errors. Fixes [#3130](https://github.com/codeceptjs/CodeceptJS/issues/3130)
|
|
451
|
-
* Timeout improvements by **[nikocanvacom](https://github.com/nikocanvacom)**:
|
|
452
|
-
* Added priorites to timeouts
|
|
453
|
-
* Added `overrideStepLimits` to [stepTimeout plugin](https://codecept.io/plugins/#steptimeout) to override steps timeouts set by `limitTime`.
|
|
454
|
-
* Fixed step timeout not working due to override by NaN by test timeout [#3126](https://github.com/codeceptjs/CodeceptJS/issues/3126)
|
|
455
|
-
* **[Appium]** Fixed logging error when `manualStart` is true. See [#3140](https://github.com/codeceptjs/CodeceptJS/issues/3140) by **[nikocanvacom](https://github.com/nikocanvacom)**
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
## 3.2.1
|
|
459
|
-
|
|
460
|
-
> ♻️ This release fixes hanging of tests by reducing timeouts for automatic retries on failures.
|
|
461
|
-
|
|
462
|
-
* [retryFailedStep plugin] **New Defaults**: retries steps up to 3 times with factor of 1.5 (previously 5 with factor 2)
|
|
463
|
-
* **[Playwright]** - disabled retry on failed context actions (not needed anymore)
|
|
464
|
-
* **[Puppeteer]** - reduced retries on context failures to 3 times.
|
|
465
|
-
* **[Playwright]** Handling `crash` event to automatically close crashed pages.
|
|
466
|
-
|
|
467
|
-
## 3.2.0
|
|
468
|
-
|
|
469
|
-
🛩️ Features:
|
|
470
|
-
|
|
471
|
-
**[Timeouts](https://codecept.io/advanced/#timeout) implemented**
|
|
472
|
-
* global timeouts (via `timeout` config option).
|
|
473
|
-
* _Breaking change:_ timeout option expects **timeout in seconds**, not in milliseconds as it was previously.
|
|
474
|
-
* test timeouts (via `Scenario` and `Feature` options)
|
|
475
|
-
* _Breaking change:_ `Feature().timeout()` and `Scenario().timeout()` calls has no effect and are deprecated
|
|
476
|
-
|
|
477
|
-
```js
|
|
478
|
-
// set timeout for every test in suite to 10 secs
|
|
479
|
-
Feature('tests with timeout', { timeout: 10 });
|
|
480
|
-
|
|
481
|
-
// set timeout for this test to 20 secs
|
|
482
|
-
Scenario('a test with timeout', { timeout: 20 }, ({ I }) => {});
|
|
483
|
-
```
|
|
484
|
-
|
|
485
|
-
* step timeouts (See [#3059](https://github.com/codeceptjs/CodeceptJS/issues/3059) by **[nikocanvacom](https://github.com/nikocanvacom)**)
|
|
486
|
-
|
|
487
|
-
```js
|
|
488
|
-
// set step timeout to 5 secs
|
|
489
|
-
I.limitTime(5).click('Link');
|
|
490
|
-
```
|
|
491
|
-
* `stepTimeout` plugin introduced to automatically add timeouts for each step ([#3059](https://github.com/codeceptjs/CodeceptJS/issues/3059) by **[nikocanvacom](https://github.com/nikocanvacom)**).
|
|
492
|
-
|
|
493
|
-
[**retryTo**](/plugins/#retryto) plugin introduced to rerun a set of steps on failure:
|
|
494
|
-
|
|
495
|
-
```js
|
|
496
|
-
// editing in text in iframe
|
|
497
|
-
// if iframe was not loaded - retry 5 times
|
|
498
|
-
await retryTo(() => {
|
|
499
|
-
I.switchTo('#editor frame');
|
|
500
|
-
I.fillField('textarea', 'value');
|
|
501
|
-
}, 5);
|
|
502
|
-
```
|
|
503
|
-
|
|
504
|
-
* **[Playwright]** added `locale` configuration
|
|
505
|
-
* **[WebDriver]** upgraded to webdriverio v7
|
|
506
|
-
|
|
507
|
-
🐛 Bugfixes:
|
|
508
|
-
|
|
509
|
-
* Fixed allure plugin "Unexpected endStep()" error in [#3098](https://github.com/codeceptjs/CodeceptJS/issues/3098) by **[abhimanyupandian](https://github.com/abhimanyupandian)**
|
|
510
|
-
* **[Puppeteer]** always close remote browser on test end. See [#3054](https://github.com/codeceptjs/CodeceptJS/issues/3054) by **[mattonem](https://github.com/mattonem)**
|
|
511
|
-
* stepbyStepReport Plugin: Disabled screenshots after test has failed. See [#3119](https://github.com/codeceptjs/CodeceptJS/issues/3119) by **[ioannisChalkias](https://github.com/ioannisChalkias)**
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
## 3.1.3
|
|
515
|
-
|
|
516
|
-
🛩️ Features:
|
|
517
|
-
|
|
518
|
-
* BDD Improvement. Added `DataTableArgument` class to work with table data structures.
|
|
519
|
-
|
|
520
|
-
```js
|
|
521
|
-
const { DataTableArgument } = require('codeceptjs');
|
|
522
|
-
//...
|
|
523
|
-
Given('I have an employee card', (table) => {
|
|
524
|
-
const dataTableArgument = new DataTableArgument(table);
|
|
525
|
-
const hashes = dataTableArgument.hashes();
|
|
526
|
-
// hashes = [{ name: 'Harry', surname: 'Potter', position: 'Seeker' }];
|
|
527
|
-
const rows = dataTableArgument.rows();
|
|
528
|
-
// rows = [['Harry', 'Potter', Seeker]];
|
|
529
|
-
}
|
|
530
|
-
```
|
|
531
|
-
See updated [BDD section](https://codecept.io/bdd/) for more API options. Thanks to **[EgorBodnar](https://github.com/EgorBodnar)**
|
|
532
|
-
|
|
533
|
-
* Support `cjs` file extensions for config file: `codecept.conf.cjs`. See [#3052](https://github.com/codeceptjs/CodeceptJS/issues/3052) by **[kalvenschraut](https://github.com/kalvenschraut)**
|
|
534
|
-
* API updates: Added `test.file` and `suite.file` properties to `test` and `suite` objects to use in helpers and plugins.
|
|
535
|
-
|
|
536
|
-
🐛 Bugfixes:
|
|
537
|
-
|
|
538
|
-
* **[Playwright]** Fixed resetting `test.artifacts` for failing tests. See [#3033](https://github.com/codeceptjs/CodeceptJS/issues/3033) by **[jancorvus](https://github.com/jancorvus)**. Fixes [#3032](https://github.com/codeceptjs/CodeceptJS/issues/3032)
|
|
539
|
-
* **[Playwright]** Apply `basicAuth` credentials to all opened browser contexts. See [#3036](https://github.com/codeceptjs/CodeceptJS/issues/3036) by **[nikocanvacom](https://github.com/nikocanvacom)**. Fixes [#3035](https://github.com/codeceptjs/CodeceptJS/issues/3035)
|
|
540
|
-
* **[WebDriver]** Updated `webdriverio` default version to `^6.12.1`. See [#3043](https://github.com/codeceptjs/CodeceptJS/issues/3043) by **[sridhareaswaran](https://github.com/sridhareaswaran)**
|
|
541
|
-
* **[Playwright]** `I.haveRequestHeaders` affects all tabs. See [#3049](https://github.com/codeceptjs/CodeceptJS/issues/3049) by **[jancorvus](https://github.com/jancorvus)**
|
|
542
|
-
* BDD: Fixed unhandled empty feature files. Fix [#3046](https://github.com/codeceptjs/CodeceptJS/issues/3046) by **[abhimanyupandian](https://github.com/abhimanyupandian)**
|
|
543
|
-
* Fixed `RangeError: Invalid string length` in `recorder.js` when running huge amount of tests.
|
|
544
|
-
* **[Appium]** Fixed definitions for `touchPerform`, `hideDeviceKeyboard`, `removeApp` by **[mirao](https://github.com/mirao)**
|
|
545
|
-
|
|
546
|
-
📖 Documentation:
|
|
547
|
-
|
|
548
|
-
* Added Testrail reporter [Reports Docs](https://codecept.io/reports/#testrail)
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
## 3.1.2
|
|
552
|
-
|
|
553
|
-
🛩️ Features:
|
|
554
|
-
|
|
555
|
-
* Added `coverage` plugin to generate code coverage for Playwright & Puppeteer. By **[anirudh-modi](https://github.com/anirudh-modi)**
|
|
556
|
-
* Added `subtitle` plugin to generate subtitles for videos recorded with Playwright. By **[anirudh-modi](https://github.com/anirudh-modi)**
|
|
557
|
-
* Configuration: `config.tests` to accept array of file patterns. See [#2994](https://github.com/codeceptjs/CodeceptJS/issues/2994) by **[monsteramba](https://github.com/monsteramba)**
|
|
558
|
-
|
|
559
|
-
```js
|
|
560
|
-
exports.config = {
|
|
561
|
-
tests: ['./*_test.js','./sampleTest.js'],
|
|
562
|
-
// ...
|
|
563
|
-
}
|
|
564
|
-
```
|
|
565
|
-
* Notification is shown for test files without `Feature()`. See [#3011](https://github.com/codeceptjs/CodeceptJS/issues/3011) by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
566
|
-
|
|
567
|
-
🐛 Bugfixes:
|
|
568
|
-
|
|
569
|
-
* **[Playwright]** Fixed [#2986](https://github.com/codeceptjs/CodeceptJS/issues/2986) error is thrown when deleting a missing video. Fix by **[hatufacci](https://github.com/hatufacci)**
|
|
570
|
-
* Fixed false positive result when invalid function is called in a helper. See [#2997](https://github.com/codeceptjs/CodeceptJS/issues/2997) by **[abhimanyupandian](https://github.com/abhimanyupandian)**
|
|
571
|
-
* **[Appium]** Removed full page mode for `saveScreenshot`. See [#3002](https://github.com/codeceptjs/CodeceptJS/issues/3002) by **[nlespiaucq](https://github.com/nlespiaucq)**
|
|
572
|
-
* **[Playwright]** Fixed [#3003](https://github.com/codeceptjs/CodeceptJS/issues/3003) saving trace for a test with a long name. Fix by **[hatufacci](https://github.com/hatufacci)**
|
|
573
|
-
|
|
574
|
-
🎱 Other:
|
|
575
|
-
|
|
576
|
-
* Deprecated `puppeteerCoverage` plugin in favor of `coverage` plugin.
|
|
577
|
-
|
|
578
|
-
## 3.1.1
|
|
579
|
-
|
|
580
|
-
* **[Appium]** Fixed [#2759](https://github.com/codeceptjs/CodeceptJS/issues/2759)
|
|
581
|
-
`grabNumberOfVisibleElements`, `grabAttributeFrom`, `grabAttributeFromAll` to allow id locators.
|
|
582
|
-
|
|
583
|
-
## 3.1.0
|
|
584
|
-
|
|
585
|
-
* **[Plawyright]** Updated to Playwright 1.13
|
|
586
|
-
* **[Playwright]** **Possible breaking change**: `BrowserContext` is initialized before each test and closed after. This behavior matches recommendation from Playwright team to use different contexts for tests.
|
|
587
|
-
* **[Puppeteer]** Updated to Puppeteer 10.2.
|
|
588
|
-
* **[Protractor]** Helper deprecated
|
|
589
|
-
|
|
590
|
-
🛩️ Features:
|
|
591
|
-
|
|
592
|
-
* **[Playwright]** Added recording of [video](https://codecept.io/playwright/#video) and [traces](https://codecept.io/playwright/#trace) by **[davertmik](https://github.com/davertmik)**
|
|
593
|
-
* **[Playwritght]** [Mocking requests](https://codecept.io/playwright/#mocking-network-requests) implemented via `route` API of Playwright by **[davertmik](https://github.com/davertmik)**
|
|
594
|
-
* **[Playwright]** Added **support for [React locators](https://codecept.io/react/#locators)** in [#2912](https://github.com/codeceptjs/CodeceptJS/issues/2912) by **[AAAstorga](https://github.com/AAAstorga)**
|
|
595
|
-
|
|
596
|
-
🐛 Bugfixes:
|
|
597
|
-
|
|
598
|
-
* **[Puppeteer]** Fixed [#2244](https://github.com/codeceptjs/CodeceptJS/issues/2244) `els[0]._clickablePoint is not a function` by **[karunandrii](https://github.com/karunandrii)**.
|
|
599
|
-
* **[Puppeteer]** Fixed `fillField` to check for invisible elements. See [#2916](https://github.com/codeceptjs/CodeceptJS/issues/2916) by **[anne-open-xchange](https://github.com/anne-open-xchange)**
|
|
600
|
-
* **[Playwright]** Reset of dialog event listener before registration of new one. [#2946](https://github.com/codeceptjs/CodeceptJS/issues/2946) by **[nikocanvacom](https://github.com/nikocanvacom)**
|
|
601
|
-
* Fixed running Gherkin features with `run-multiple` using chunks. See [#2900](https://github.com/codeceptjs/CodeceptJS/issues/2900) by **[andrenoberto](https://github.com/andrenoberto)**
|
|
602
|
-
* Fixed [#2937](https://github.com/codeceptjs/CodeceptJS/issues/2937) broken typings for subfolders on Windows by **[jancorvus](https://github.com/jancorvus)**
|
|
603
|
-
* Fixed issue where cucumberJsonReporter not working with fakerTransform plugin. See [#2942](https://github.com/codeceptjs/CodeceptJS/issues/2942) by **[ilangv](https://github.com/ilangv)**
|
|
604
|
-
* Fixed [#2952](https://github.com/codeceptjs/CodeceptJS/issues/2952) finished job with status code 0 when playwright cannot connect to remote wss url. By **[davertmik](https://github.com/davertmik)**
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
## 3.0.7
|
|
608
|
-
|
|
609
|
-
📖 Documentation fixes:
|
|
610
|
-
|
|
611
|
-
* Remove broken link from `Nightmare helper`. See [#2860](https://github.com/codeceptjs/CodeceptJS/issues/2860) by **[Arhell](https://github.com/Arhell)**
|
|
612
|
-
* Fixed broken links in `playwright.md`. See [#2848](https://github.com/codeceptjs/CodeceptJS/issues/2848) by **[johnhoodjr](https://github.com/johnhoodjr)**
|
|
613
|
-
* Fix mocha-multi config example. See [#2881](https://github.com/codeceptjs/CodeceptJS/issues/2881) by **[rimesc](https://github.com/rimesc)**
|
|
614
|
-
* Fix small errors in email documentation file. See [#2884](https://github.com/codeceptjs/CodeceptJS/issues/2884) by **[mkrtchian](https://github.com/mkrtchian)**
|
|
615
|
-
* Improve documentation for `Sharing Data Between Workers` section. See [#2891](https://github.com/codeceptjs/CodeceptJS/issues/2891) by **[ngraf](https://github.com/ngraf)**
|
|
616
|
-
|
|
617
|
-
🛩️ Features:
|
|
618
|
-
|
|
619
|
-
* **[WebDriver]** Shadow DOM Support for `Webdriver`. See [#2741](https://github.com/codeceptjs/CodeceptJS/issues/2741) by **[gkushang](https://github.com/gkushang)**
|
|
620
|
-
* [Release management] Introduce the versioning automatically, it follows the semantics versioning. See [#2883](https://github.com/codeceptjs/CodeceptJS/issues/2883) by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
621
|
-
* Adding opts into `Scenario.skip` that it would be useful for building reports. See [#2867](https://github.com/codeceptjs/CodeceptJS/issues/2867) by **[AlexKo4](https://github.com/AlexKo4)**
|
|
622
|
-
* Added support for attaching screenshots to [cucumberJsonReporter](https://github.com/ktryniszewski-mdsol/codeceptjs-cucumber-json-reporter) See [#2888](https://github.com/codeceptjs/CodeceptJS/issues/2888) by **[fijijavis](https://github.com/fijijavis)**
|
|
623
|
-
* Supported config file for `codeceptjs shell` command. See [#2895](https://github.com/codeceptjs/CodeceptJS/issues/2895) by **[PeterNgTr](https://github.com/PeterNgTr)**:
|
|
624
|
-
|
|
625
|
-
```
|
|
626
|
-
npx codeceptjs shell -c foo.conf.js
|
|
627
|
-
```
|
|
628
|
-
|
|
629
|
-
Bug fixes:
|
|
630
|
-
* **[GraphQL]** Use a helper-specific instance of Axios to avoid contaminating global defaults. See [#2868](https://github.com/codeceptjs/CodeceptJS/issues/2868) by **[vanvoljg](https://github.com/vanvoljg)**
|
|
631
|
-
* A default system color is used when passing non supported system color when using I.say(). See [#2874](https://github.com/codeceptjs/CodeceptJS/issues/2874) by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
632
|
-
* **[Playwright]** Avoid the timout due to calling the click on invisible elements. See [#2875](https://github.com/codeceptjs/CodeceptJS/issues/2875) by cbayer97
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
## 3.0.6
|
|
636
|
-
|
|
637
|
-
* **[Playwright]** Added `electron` as a browser to config. See [#2834](https://github.com/codeceptjs/CodeceptJS/issues/2834) by **[cbayer97](https://github.com/cbayer97)**
|
|
638
|
-
* **[Playwright]** Implemented `launchPersistentContext` to be able to launch persistent remote browsers. See [#2817](https://github.com/codeceptjs/CodeceptJS/issues/2817) by **[brunoqueiros](https://github.com/brunoqueiros)**. Fixes [#2376](https://github.com/codeceptjs/CodeceptJS/issues/2376).
|
|
639
|
-
* Fixed printing logs and stack traces for `run-workers`. See [#2857](https://github.com/codeceptjs/CodeceptJS/issues/2857) by **[haveac1gar](https://github.com/haveac1gar)**. Fixes [#2621](https://github.com/codeceptjs/CodeceptJS/issues/2621), [#2852](https://github.com/codeceptjs/CodeceptJS/issues/2852)
|
|
640
|
-
* Emit custom messages from worker to the main thread. See [#2824](https://github.com/codeceptjs/CodeceptJS/issues/2824) by **[jccguimaraes](https://github.com/jccguimaraes)**
|
|
641
|
-
* Improved workers processes output. See [#2804](https://github.com/codeceptjs/CodeceptJS/issues/2804) by **[drfiresign](https://github.com/drfiresign)**
|
|
642
|
-
* BDD. Added ability to use an array of feature files inside config in `gherkin.features`. See [#2814](https://github.com/codeceptjs/CodeceptJS/issues/2814) by **[jbergeronjr](https://github.com/jbergeronjr)**
|
|
643
|
-
|
|
644
|
-
```js
|
|
645
|
-
"features": [
|
|
646
|
-
"./features/*.feature",
|
|
647
|
-
"./features/api_features/*.feature"
|
|
648
|
-
],
|
|
649
|
-
```
|
|
650
|
-
* Added `getQueueId` to reporter to rerun a specific promise. See [#2837](https://github.com/codeceptjs/CodeceptJS/issues/2837) by **[jonatask](https://github.com/jonatask)**
|
|
651
|
-
* **Added `fakerTransform` plugin** to use faker data in Gherkin scenarios. See [#2854](https://github.com/codeceptjs/CodeceptJS/issues/2854) by **[adrielcodeco](https://github.com/adrielcodeco)**
|
|
652
|
-
|
|
653
|
-
```feature
|
|
654
|
-
Scenario Outline: ...
|
|
655
|
-
Given ...
|
|
656
|
-
When ...
|
|
657
|
-
Then ...
|
|
658
|
-
|
|
659
|
-
Examples:
|
|
660
|
-
| productName | customer | email | anythingMore |
|
|
661
|
-
| {{commerce.product}} | Dr. {{name.findName}} | {{internet.email}} | staticData |
|
|
662
|
-
```
|
|
663
|
-
* **[REST]** Use class instance of axios, not the global instance, to avoid contaminating global configuration. [#2846](https://github.com/codeceptjs/CodeceptJS/issues/2846) by **[vanvoljg](https://github.com/vanvoljg)**
|
|
664
|
-
* **[Appium]** Added `tunnelIdentifier` config option to provide tunnel for SauceLabs. See [#2832](https://github.com/codeceptjs/CodeceptJS/issues/2832) by **[gurjeetbains](https://github.com/gurjeetbains)**
|
|
665
|
-
|
|
666
|
-
## 3.0.5
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
Features:
|
|
670
|
-
|
|
671
|
-
* **[Official Docker image for CodeceptJS v3](https://hub.docker.com/r/codeceptjs/codeceptjs)**. New Docker image is based on official Playwright image and supports Playwright, Puppeteer, WebDriver engines. Thanks **[VikentyShevyrin](https://github.com/VikentyShevyrin)**
|
|
672
|
-
* Better support for Typescript `codecept.conf.ts` configuration files. See [#2750](https://github.com/codeceptjs/CodeceptJS/issues/2750) by **[elaichenkov](https://github.com/elaichenkov)**
|
|
673
|
-
* Propagate more events for custom parallel script. See [#2796](https://github.com/codeceptjs/CodeceptJS/issues/2796) by **[jccguimaraes](https://github.com/jccguimaraes)**
|
|
674
|
-
* [mocha-junit-reporter] Now supports attachments, see documentation for details. See [#2675](https://github.com/codeceptjs/CodeceptJS/issues/2675) by **[Shard](https://github.com/Shard)**
|
|
675
|
-
* CustomLocators interface for TypeScript to extend from LocatorOrString. See [#2798](https://github.com/codeceptjs/CodeceptJS/issues/2798) by **[danielrentz](https://github.com/danielrentz)**
|
|
676
|
-
* **[REST]** Mask sensitive data from log messages.
|
|
677
|
-
```js
|
|
678
|
-
I.sendPatchRequest('/api/users.json', secret({ "email": "user@user.com" }));
|
|
679
|
-
```
|
|
680
|
-
See [#2786](https://github.com/codeceptjs/CodeceptJS/issues/2786) by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
681
|
-
|
|
682
|
-
Bug fixes:
|
|
683
|
-
* Fixed reporting of nested steps with PageObjects and BDD scenarios. See [#2800](https://github.com/codeceptjs/CodeceptJS/issues/2800) by **[davertmik](https://github.com/davertmik)**. Fixes [#2720](https://github.com/codeceptjs/CodeceptJS/issues/2720) [#2682](https://github.com/codeceptjs/CodeceptJS/issues/2682)
|
|
684
|
-
* Fixed issue with `codeceptjs shell` which was broken since 3.0.0. See [#2743](https://github.com/codeceptjs/CodeceptJS/issues/2743) by **[stedman](https://github.com/stedman)**
|
|
685
|
-
* **[Gherkin]** Fixed issue suppressed or hidden errors in tests. See [#2745](https://github.com/codeceptjs/CodeceptJS/issues/2745) by **[ktryniszewski-mdsol](https://github.com/ktryniszewski-mdsol)**
|
|
686
|
-
* **[Playwright]** fix grabCssPropertyFromAll serialization by using property names. See [#2757](https://github.com/codeceptjs/CodeceptJS/issues/2757) by **[elaichenkov](https://github.com/elaichenkov)**
|
|
687
|
-
* **[Allure]** fix report for multi sessions. See [#2771](https://github.com/codeceptjs/CodeceptJS/issues/2771) by **[cbayer97](https://github.com/cbayer97)**
|
|
688
|
-
* **[WebDriver]** Fix locator object debug log messages in smart wait. See 2748 by **[elaichenkov](https://github.com/elaichenkov)**
|
|
689
|
-
|
|
690
|
-
Documentation fixes:
|
|
691
|
-
* Fixed some broken examples. See [#2756](https://github.com/codeceptjs/CodeceptJS/issues/2756) by **[danielrentz](https://github.com/danielrentz)**
|
|
692
|
-
* Fixed Typescript typings. See [#2747](https://github.com/codeceptjs/CodeceptJS/issues/2747), [#2758](https://github.com/codeceptjs/CodeceptJS/issues/2758) and [#2769](https://github.com/codeceptjs/CodeceptJS/issues/2769) by **[elaichenkov](https://github.com/elaichenkov)**
|
|
693
|
-
* Added missing type for xFeature. See [#2754](https://github.com/codeceptjs/CodeceptJS/issues/2754) by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
694
|
-
* Fixed code example in Page Object documentation. See [#2793](https://github.com/codeceptjs/CodeceptJS/issues/2793) by **[mkrtchian](https://github.com/mkrtchian)**
|
|
695
|
-
|
|
696
|
-
Library updates:
|
|
697
|
-
* Updated Axios to 0.21.1. See by **[sseide](https://github.com/sseide)**
|
|
698
|
-
* Updated **[pollyjs](https://github.com/pollyjs)**/core **[pollyjs](https://github.com/pollyjs)**/adapter-puppeteer. See [#2760](https://github.com/codeceptjs/CodeceptJS/issues/2760) by **[Anikethana](https://github.com/Anikethana)**
|
|
699
|
-
|
|
700
|
-
## 3.0.4
|
|
701
|
-
|
|
702
|
-
* **Hotfix** Fixed `init` script by adding `cross-spawn` package. By **[vipulgupta2048](https://github.com/vipulgupta2048)**
|
|
703
|
-
* Fixed handling error during initialization of `run-multiple`. See [#2730](https://github.com/codeceptjs/CodeceptJS/issues/2730) by **[wagoid](https://github.com/wagoid)**
|
|
704
|
-
|
|
705
|
-
## 3.0.3
|
|
706
|
-
|
|
707
|
-
* **Playwright 1.7 support**
|
|
708
|
-
* **[Playwright]** Fixed handling null context in click. See [#2667](https://github.com/codeceptjs/CodeceptJS/issues/2667) by **[matthewjf](https://github.com/matthewjf)**
|
|
709
|
-
* **[Playwright]** Fixed `Cannot read property '$$' of null` when locating elements. See [#2713](https://github.com/codeceptjs/CodeceptJS/issues/2713) by **[matthewjf](https://github.com/matthewjf)**
|
|
710
|
-
* Command `npx codeceptjs init` improved
|
|
711
|
-
* auto-installing required packages
|
|
712
|
-
* better error messages
|
|
713
|
-
* fixed generating type definitions
|
|
714
|
-
* Data Driven Tests improvements: instead of having one skipped test for data driven scenarios when using xData you get a skipped test for each entry in the data table. See [#2698](https://github.com/codeceptjs/CodeceptJS/issues/2698) by **[Georgegriff](https://github.com/Georgegriff)**
|
|
715
|
-
* **[Puppeteer]** Fixed that `waitForFunction` was not working with number values. See [#2703](https://github.com/codeceptjs/CodeceptJS/issues/2703) by **[MumblesNZ](https://github.com/MumblesNZ)**
|
|
716
|
-
* Enabled autocompletion for custom helpers. [#2695](https://github.com/codeceptjs/CodeceptJS/issues/2695) by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
717
|
-
* Emit test.after on workers. Fix [#2693](https://github.com/codeceptjs/CodeceptJS/issues/2693) by **[jccguimaraes](https://github.com/jccguimaraes)**
|
|
718
|
-
* TypeScript: Allow .ts config files. See [#2708](https://github.com/codeceptjs/CodeceptJS/issues/2708) by **[elukoyanov](https://github.com/elukoyanov)**
|
|
719
|
-
* Fixed definitions generation errors by **[elukoyanov](https://github.com/elukoyanov)**. See [#2707](https://github.com/codeceptjs/CodeceptJS/issues/2707) and [#2718](https://github.com/codeceptjs/CodeceptJS/issues/2718)
|
|
720
|
-
* Fixed handing error in _after function; for example, browser is closed during test and tests executions is stopped, but error was not logged. See [#2715](https://github.com/codeceptjs/CodeceptJS/issues/2715) by **[elukoyanov](https://github.com/elukoyanov)**
|
|
721
|
-
* Emit hook.failed in workers. Fix [#2723](https://github.com/codeceptjs/CodeceptJS/issues/2723) by **[jccguimaraes](https://github.com/jccguimaraes)**
|
|
722
|
-
* [wdio plugin] Added `seleniumArgs` and `seleniumInstallArgs` config options for plugin. See [#2687](https://github.com/codeceptjs/CodeceptJS/issues/2687) by **[andrerleao](https://github.com/andrerleao)**
|
|
723
|
-
* [allure plugin] Added `addParameter` method in [#2717](https://github.com/codeceptjs/CodeceptJS/issues/2717) by **[jancorvus](https://github.com/jancorvus)**. Fixes [#2716](https://github.com/codeceptjs/CodeceptJS/issues/2716)
|
|
724
|
-
* Added mocha-based `--reporter-options` and `--reporter <name>` commands to `run-workers` command by in [#2691](https://github.com/codeceptjs/CodeceptJS/issues/2691) **[Ameterezu](https://github.com/Ameterezu)**
|
|
725
|
-
* Fixed infinite loop for junit reports. See [#2691](https://github.com/codeceptjs/CodeceptJS/issues/2691) **[Ameterezu](https://github.com/Ameterezu)**
|
|
726
|
-
* Added status, start/end time, and match line for BDD steps. See [#2678](https://github.com/codeceptjs/CodeceptJS/issues/2678) by **[ktryniszewski-mdsol](https://github.com/ktryniszewski-mdsol)**
|
|
727
|
-
* [stepByStepReport plugin] Fixed "helper.saveScreenshot is not a function". Fix [#2688](https://github.com/codeceptjs/CodeceptJS/issues/2688) by **[andrerleao](https://github.com/andrerleao)**
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
## 3.0.2
|
|
732
|
-
|
|
733
|
-
* **[Playwright]** Fix connection close with remote browser. See [#2629](https://github.com/codeceptjs/CodeceptJS/issues/2629) by **[dipiash](https://github.com/dipiash)**
|
|
734
|
-
* **[REST]** set maxUploadFileSize when performing api calls. See [#2611](https://github.com/codeceptjs/CodeceptJS/issues/2611) by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
735
|
-
* Duplicate Scenario names (combined with Feature name) are now detected via a warning message.
|
|
736
|
-
Duplicate test names can cause `codeceptjs run-workers` to not function. See [#2656](https://github.com/codeceptjs/CodeceptJS/issues/2656) by **[Georgegriff](https://github.com/Georgegriff)**
|
|
737
|
-
* Documentation fixes
|
|
738
|
-
|
|
739
|
-
Bug Fixes:
|
|
740
|
-
* --suites flag now should function correctly for `codeceptjs run-workers`. See [#2655](https://github.com/codeceptjs/CodeceptJS/issues/2655) by **[Georgegriff](https://github.com/Georgegriff)**
|
|
741
|
-
* [autoLogin plugin] Login methods should now function as expected with `codeceptjs run-workers`. See [#2658](https://github.com/codeceptjs/CodeceptJS/issues/2658) by **[Georgegriff](https://github.com/Georgegriff)**, resolves [#2620](https://github.com/codeceptjs/CodeceptJS/issues/2620)
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
## 3.0.1
|
|
746
|
-
|
|
747
|
-
♨️ Hot fix:
|
|
748
|
-
* Lock the mocha version to avoid the errors. See [#2624](https://github.com/codeceptjs/CodeceptJS/issues/2624) by PeterNgTr
|
|
749
|
-
|
|
750
|
-
🐛 Bug Fix:
|
|
751
|
-
* Fixed error handling in Scenario.js. See [#2607](https://github.com/codeceptjs/CodeceptJS/issues/2607) by haveac1gar
|
|
752
|
-
* Changing type definition in order to allow the use of functions with any number of any arguments. See [#2616](https://github.com/codeceptjs/CodeceptJS/issues/2616) by akoltun
|
|
753
|
-
|
|
754
|
-
* Some updates/changes on documentations
|
|
755
|
-
|
|
756
|
-
## 3.0.0
|
|
757
|
-
> [ 👌 **LEARN HOW TO UPGRADE TO CODECEPTJS 3 ➡**](https://bit.ly/codecept3Up)
|
|
758
|
-
|
|
759
|
-
* Playwright set to be a default engine.
|
|
760
|
-
* **NodeJS 12+ required**
|
|
761
|
-
* **BREAKING CHANGE:** Syntax for tests has changed.
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
```js
|
|
765
|
-
// Previous
|
|
766
|
-
Scenario('title', (I, loginPage) => {});
|
|
767
|
-
|
|
768
|
-
// Current
|
|
769
|
-
Scenario('title', ({ I, loginPage }) => {});
|
|
770
|
-
```
|
|
771
|
-
|
|
772
|
-
* **BREAKING** Replaced bootstrap/teardown scripts to accept only functions or async functions. Async function with callback (with done parameter) should be replaced with async/await. [See our upgrade guide](https://bit.ly/codecept3Up).
|
|
773
|
-
* **[TypeScript guide](/typescript)** and [boilerplate project](https://github.com/codeceptjs/typescript-boilerplate)
|
|
774
|
-
* [tryTo](/plugins/#tryto) and [pauseOnFail](/plugins/#pauseOnFail) plugins installed by default
|
|
775
|
-
* Introduced one-line installer:
|
|
776
|
-
|
|
777
|
-
```
|
|
778
|
-
npx create-codeceptjs .
|
|
779
|
-
```
|
|
780
|
-
|
|
781
|
-
Read changelog to learn more about version 👇
|
|
782
|
-
|
|
783
|
-
## 3.0.0-rc
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
* Moved [Helper class into its own package](https://github.com/codeceptjs/helper) to simplify publishing standalone helpers.
|
|
788
|
-
* Fixed typings for `I.say` and `I.retry` by **[Vorobeyko](https://github.com/Vorobeyko)**
|
|
789
|
-
* Updated documentation:
|
|
790
|
-
* [Quickstart](https://github.com/codeceptjs/CodeceptJS/blob/codeceptjs-v3.0/docs/quickstart.md#quickstart)
|
|
791
|
-
* [Best Practices](https://github.com/codeceptjs/CodeceptJS/blob/codeceptjs-v3.0/docs/best.md)
|
|
792
|
-
* [Custom Helpers](https://github.com/codeceptjs/CodeceptJS/blob/codeceptjs-v3.0/docs/custom-helpers.md)
|
|
793
|
-
* [TypeScript](https://github.com/codeceptjs/CodeceptJS/blob/codeceptjs-v3.0/docs/typescript.md)
|
|
794
|
-
|
|
795
|
-
## 3.0.0-beta.4
|
|
796
|
-
|
|
797
|
-
🐛 Bug Fix:
|
|
798
|
-
* PageObject was broken when using "this" inside a simple object.
|
|
799
|
-
* The typings for all WebDriver methods work correctly.
|
|
800
|
-
* The typings for "this.helper" and helper constructor work correctly, too.
|
|
801
|
-
|
|
802
|
-
🧤 Internal:
|
|
803
|
-
* Our TS Typings will be tested now! We strarted using [dtslint](https://github.com/microsoft/dtslint) to check all typings and all rules for linter.
|
|
804
|
-
Example:
|
|
805
|
-
```ts
|
|
806
|
-
const psp = wd.grabPageScrollPosition() // $ExpectType Promise<PageScrollPosition>
|
|
807
|
-
psp.then(
|
|
808
|
-
result => {
|
|
809
|
-
result.x // $ExpectType number
|
|
810
|
-
result.y // $ExpectType number
|
|
811
|
-
}
|
|
812
|
-
)
|
|
813
|
-
```
|
|
814
|
-
* And last: Reducing package size from 3.3Mb to 2.0Mb
|
|
815
|
-
|
|
816
|
-
## 3.0.0-beta-3
|
|
817
|
-
|
|
818
|
-
* **BREAKING** Replaced bootstrap/teardown scripts to accept only functions or async functions. Async function with callback (with done parameter) should be replaced with async/await. [See our upgrde guide](https://bit.ly/codecept3Up).
|
|
819
|
-
* Test artifacts introduced. Each test object has `artifacts` property, to keep attachment files. For instance, a screenshot of a failed test is attached to a test as artifact.
|
|
820
|
-
* Improved output for test execution
|
|
821
|
-
* Changed colors for steps output, simplified
|
|
822
|
-
* Added stack trace for test failures
|
|
823
|
-
* Removed `Event emitted` from log in `--verbose` mode
|
|
824
|
-
* List artifacts of a failed tests
|
|
825
|
-
|
|
826
|
-

|
|
827
|
-
|
|
828
|
-
* Steps & metasteps refactored by **[Vorobeyko](https://github.com/Vorobeyko)**. Logs to arguments passed to page objects:
|
|
829
|
-
|
|
830
|
-
```js
|
|
831
|
-
// TEST:
|
|
832
|
-
MyPage.hasFiles('first arg', 'second arg');
|
|
833
|
-
|
|
834
|
-
// OUTPUT:
|
|
835
|
-
MyPage: hasFile "First arg", "Second arg"
|
|
836
|
-
I see file "codecept.js"
|
|
837
|
-
I see file "codecept.po.json"
|
|
838
|
-
```
|
|
839
|
-
* Introduced official [TypeScript boilerplate](https://github.com/codeceptjs/typescript-boilerplate). Started by **[Vorobeyko](https://github.com/Vorobeyko)**.
|
|
840
|
-
|
|
841
|
-
## 3.0.0-beta
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
* **NodeJS 12+ required**
|
|
845
|
-
* **BREAKING CHANGE:** Syntax for tests has changed.
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
```js
|
|
849
|
-
// Previous
|
|
850
|
-
Scenario('title', (I, loginPage) => {});
|
|
851
|
-
|
|
852
|
-
// Current
|
|
853
|
-
Scenario('title', ({ I, loginPage }) => {});
|
|
854
|
-
```
|
|
855
|
-
|
|
856
|
-
* **BREAKING CHANGE:** [WebDriver][Protractor][Puppeteer][Playwright][Nightmare] `grab*` functions unified:
|
|
857
|
-
* `grab*From` => **returns single value** from element or throws error when no matchng elements found
|
|
858
|
-
* `grab*FromAll` => returns array of values, or empty array when no matching elements
|
|
859
|
-
* Public API for workers introduced by **[koushikmohan1996](https://github.com/koushikmohan1996)**. [Customize parallel execution](https://github.com/Codeception/CodeceptJS/blob/codeceptjs-v3.0/docs/parallel.md#custom-parallel-execution) with workers by building custom scripts.
|
|
860
|
-
|
|
861
|
-
* **[Playwright]** Added `usePlaywrightTo` method to access Playwright API in tests directly:
|
|
862
|
-
|
|
863
|
-
```js
|
|
864
|
-
I.usePlaywrightTo('do something special', async ({ page }) => {
|
|
865
|
-
// use page or browser objects here
|
|
866
|
-
});
|
|
867
|
-
```
|
|
868
|
-
|
|
869
|
-
* **[Puppeteer]** Introduced `usePuppeteerTo` method to access Puppeteer API:
|
|
870
|
-
|
|
871
|
-
```js
|
|
872
|
-
I.usePuppeteerTo('do something special', async ({ page, browser }) => {
|
|
873
|
-
// use page or browser objects here
|
|
874
|
-
});
|
|
875
|
-
```
|
|
876
|
-
|
|
877
|
-
* **[WebDriver]** Introduced `useWebDriverTo` method to access webdriverio API:
|
|
878
|
-
|
|
879
|
-
```js
|
|
880
|
-
I.useWebDriverTo('do something special', async ({ browser }) => {
|
|
881
|
-
// use browser object here
|
|
882
|
-
});
|
|
883
|
-
```
|
|
884
|
-
|
|
885
|
-
* **[Protractor]** Introduced `useProtractorTo` method to access protractor API
|
|
886
|
-
* `tryTo` plugin introduced. Allows conditional action execution:
|
|
887
|
-
|
|
888
|
-
```js
|
|
889
|
-
const isSeen = await tryTo(() => {
|
|
890
|
-
I.see('Some text');
|
|
891
|
-
});
|
|
892
|
-
// we are not sure if cookie bar is displayed, but if so - accept cookies
|
|
893
|
-
tryTo(() => I.click('Accept', '.cookies'));
|
|
894
|
-
```
|
|
895
|
-
|
|
896
|
-
* **Possible breaking change** In semantic locators `[` char indicates CSS selector.
|
|
897
|
-
## 2.6.11
|
|
898
|
-
|
|
899
|
-
* **[Playwright]** Playwright 1.4 compatibility
|
|
900
|
-
* **[Playwright]** Added `ignoreHTTPSErrors` config option (default: false). See [#2566](https://github.com/codeceptjs/CodeceptJS/issues/2566) by gurjeetbains
|
|
901
|
-
* Added French translation by **[vimar](https://github.com/vimar)**
|
|
902
|
-
* **[WebDriver]** Updated `dragSlider` to work in WebDriver W3C protocol. Fixes [#2557](https://github.com/codeceptjs/CodeceptJS/issues/2557) by suniljaiswal01
|
|
903
|
-
|
|
904
|
-
## 2.6.10
|
|
905
|
-
|
|
906
|
-
* Fixed saving options for suite via `Feature('title', {key: value})` by **[Diokuz](https://github.com/Diokuz)**. See [#2553](https://github.com/codeceptjs/CodeceptJS/issues/2553) and [Docs](https://codecept.io/advanced/#dynamic-configuration)
|
|
907
|
-
|
|
908
|
-
## 2.6.9
|
|
909
|
-
|
|
910
|
-
* [Puppeteer][Playwright] SessionStorage is now cleared in after hook. See [#2524](https://github.com/codeceptjs/CodeceptJS/issues/2524)
|
|
911
|
-
* When helper load failed the error stack is now logged by **[SkReD](https://github.com/SkReD)**. See [#2541](https://github.com/codeceptjs/CodeceptJS/issues/2541)
|
|
912
|
-
* Small documentation fixes.
|
|
913
|
-
|
|
914
|
-
## 2.6.8
|
|
915
|
-
|
|
916
|
-
* [WebDriver][Protractor][Playwright][Puppeteer][Nightmare] `saveElementScreenshot` method added to make screenshot of an element. By **[suniljaiswal01](https://github.com/suniljaiswal01)**
|
|
917
|
-
* [Playwright][Puppeteer] Added `type` method to type a text using keyboard with an optional delay.
|
|
918
|
-
* **[WebDriver]** Added optional `delay` argument to `type` method to slow down typing.
|
|
919
|
-
* **[Puppeteer]** Fixed `amOnPage` freeze when `getPageTimeout` is 0"; set 30 sec as default timeout by **[Vorobeyko](https://github.com/Vorobeyko)**.
|
|
920
|
-
* Fixed printing step with null argument in custom helper by **[sjana-aj](https://github.com/sjana-aj)**. See [#2494](https://github.com/codeceptjs/CodeceptJS/issues/2494)
|
|
921
|
-
* Fix missing screenshot on failure when REST helper is in use [#2513](https://github.com/codeceptjs/CodeceptJS/issues/2513) by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
922
|
-
* Improve error logging in the `screenshotOnFail` plugin [#2512](https://github.com/codeceptjs/CodeceptJS/issues/2512) by **[pablopaul](https://github.com/pablopaul)**
|
|
923
|
-
|
|
924
|
-
## 2.6.7
|
|
925
|
-
|
|
926
|
-
* Add REST helper into `standardActingHelpers` array [#2474](https://github.com/codeceptjs/CodeceptJS/issues/2474) by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
927
|
-
* Add missing `--invert` option for `run-workers` command [#2504](https://github.com/codeceptjs/CodeceptJS/issues/2504) by **[pablopaul](https://github.com/pablopaul)**
|
|
928
|
-
* **[WebDriver]** Introduce `forceRightClick` method [#2485](https://github.com/codeceptjs/CodeceptJS/issues/2485) bylsuniljaiswal01
|
|
929
|
-
* **[Playwright]** Fix `setCookie` method [#2491](https://github.com/codeceptjs/CodeceptJS/issues/2491) by **[bmbarker90](https://github.com/bmbarker90)**
|
|
930
|
-
* **[TypeScript]** Update compilerOptions.target to es2017 [#2483](https://github.com/codeceptjs/CodeceptJS/issues/2483) by **[shanplourde](https://github.com/shanplourde)**
|
|
931
|
-
* **[Mocha]** Honor reporter configuration [#2465](https://github.com/codeceptjs/CodeceptJS/issues/2465) by **[trinhpham](https://github.com/trinhpham)**
|
|
932
|
-
|
|
933
|
-
## 2.6.6
|
|
934
|
-
|
|
935
|
-
* Puppeteer 4.0 support. Important: MockRequest helper won't work with Puppeter > 3.3
|
|
936
|
-
* Added `xFeature` and `Feature.skip` to skip all tests in a suite. By **[Georgegriff](https://github.com/Georgegriff)**
|
|
937
|
-
* **[Appium]** Fixed [#2428](https://github.com/codeceptjs/CodeceptJS/issues/2428) Android native locator support by **[idxn](https://github.com/idxn)**
|
|
938
|
-
* **[WebDriver]** Fixed `waitNumberOfVisibleElements` to actually filter visible elements. By **[ilangv](https://github.com/ilangv)**
|
|
939
|
-
* **[Puppeteer]** Fixed handling error which is not an Error object. Fixes `cannot read property indexOf of undefined` error. Fix [#2436](https://github.com/codeceptjs/CodeceptJS/issues/2436) by **[Georgegriff](https://github.com/Georgegriff)**
|
|
940
|
-
* **[Puppeteer]** Print error on page crash by **[Georgegriff](https://github.com/Georgegriff)**
|
|
941
|
-
|
|
942
|
-
## 2.6.5
|
|
943
|
-
|
|
944
|
-
* Added `test.skipped` event to run-workers, fixing allure reports with skipped tests in workers [#2391](https://github.com/codeceptjs/CodeceptJS/issues/2391). Fix [#2387](https://github.com/codeceptjs/CodeceptJS/issues/2387) by **[koushikmohan1996](https://github.com/koushikmohan1996)**
|
|
945
|
-
* **[Playwright]** Fixed calling `waitFor*` methods with custom locators [#2314](https://github.com/codeceptjs/CodeceptJS/issues/2314). Fix [#2389](https://github.com/codeceptjs/CodeceptJS/issues/2389) by **[Georgegriff](https://github.com/Georgegriff)**
|
|
946
|
-
|
|
947
|
-
## 2.6.4
|
|
948
|
-
|
|
949
|
-
* **[Playwright]** **Playwright 1.0 support** by **[Georgegriff](https://github.com/Georgegriff)**.
|
|
950
|
-
|
|
951
|
-
## 2.6.3
|
|
952
|
-
|
|
953
|
-
* [stepByStepReport plugin] Fixed when using plugin with BeforeSuite. Fixes [#2337](https://github.com/codeceptjs/CodeceptJS/issues/2337) by **[mirao](https://github.com/mirao)**
|
|
954
|
-
* [allure plugin] Fixed reporting of tests skipped by failure in before hook. Refer to [#2349](https://github.com/codeceptjs/CodeceptJS/issues/2349) & [#2354](https://github.com/codeceptjs/CodeceptJS/issues/2354). Fix by **[koushikmohan1996](https://github.com/koushikmohan1996)**
|
|
955
|
-
|
|
956
|
-
## 2.6.2
|
|
957
|
-
|
|
958
|
-
* [WebDriver][Puppeteer] Added `forceClick` method to emulate click event instead of using native events.
|
|
959
|
-
* **[Playwright]** Updated to 0.14
|
|
960
|
-
* **[Puppeteer]** Updated to Puppeteer v3.0
|
|
961
|
-
* **[wdio]** Fixed undefined output directory for wdio plugns. Fix By **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
962
|
-
* **[Playwright]** Introduced `handleDownloads` method to download file. Please note, this method has slightly different API than the same one in Puppeteer.
|
|
963
|
-
* **[allure]** Fixed undefined output directory for allure plugin on using custom runner. Fix by **[charliepradeep](https://github.com/charliepradeep)**
|
|
964
|
-
* **[WebDriver]** Fixed `waitForEnabled` fix for webdriver 6. Fix by **[dsharapkou](https://github.com/dsharapkou)**
|
|
965
|
-
* Workers: Fixed negative failure result if use scenario with the same names. Fix by **[Vorobeyko](https://github.com/Vorobeyko)**
|
|
966
|
-
* **[MockRequest]** Updated documentation to match new helper version
|
|
967
|
-
* Fixed: skipped tests are not reported if a suite failed in `before`. Refer [#2349](https://github.com/codeceptjs/CodeceptJS/issues/2349) & [#2354](https://github.com/codeceptjs/CodeceptJS/issues/2354). Fix by **[koushikmohan1996](https://github.com/koushikmohan1996)**
|
|
968
|
-
|
|
969
|
-
## 2.6.1
|
|
970
|
-
|
|
971
|
-
* [screenshotOnFail plugin] Fixed saving screenshot of active session.
|
|
972
|
-
* [screenshotOnFail plugin] Fix issue [#2301](https://github.com/codeceptjs/CodeceptJS/issues/2301) when having the flag `uniqueScreenshotNames`=true results in `undefined` in screenshot file name by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
973
|
-
* **[WebDriver]** Fixed `waitForElement` not applying the optional second argument to override the default timeout in webdriverio 6. Fix by **[Mooksc](https://github.com/Mooksc)**
|
|
974
|
-
* **[WebDriver]** Updated `waitUntil` method which is used by all of the wait* functions. This updates the `waitForElement` by the same convention used to update `waitForVisible` and `waitInUrl` to be compatible with both WebDriverIO v5 & v6. See [#2313](https://github.com/codeceptjs/CodeceptJS/issues/2313) by **[Mooksc](https://github.com/Mooksc)**
|
|
975
|
-
|
|
976
|
-
## 2.6.0
|
|
977
|
-
|
|
978
|
-
* **[Playwright] Updated to Playwright 0.12** by **[Georgegriff](https://github.com/Georgegriff)**.
|
|
979
|
-
|
|
980
|
-
Upgrade playwright to ^0.12:
|
|
981
|
-
|
|
982
|
-
```
|
|
983
|
-
npm i playwright@^0.12 --save
|
|
984
|
-
```
|
|
985
|
-
|
|
986
|
-
[Notable changes](https://github.com/microsoft/playwright/releases/tag/v0.12.0):
|
|
987
|
-
* Fixed opening two browsers on start
|
|
988
|
-
* `executeScript` - passed function now accepts only one argument. Pass in objects or arrays if you need multtple arguments:
|
|
989
|
-
```js
|
|
990
|
-
// Old style, does not work anymore:
|
|
991
|
-
I.executeScript((x, y) => x + y, x, y);
|
|
992
|
-
// New style, passing an object:
|
|
993
|
-
I.executeScript(({x, y}) => x + y, {x, y});
|
|
994
|
-
```
|
|
995
|
-
* `click` - automatically waits for element to become clickable (visible, not animated) and waits for navigation.
|
|
996
|
-
* `clickLink` - deprecated
|
|
997
|
-
* `waitForClickable` - deprecated
|
|
998
|
-
* `forceClick` - added
|
|
999
|
-
* Added support for custom locators. See [#2277](https://github.com/codeceptjs/CodeceptJS/issues/2277)
|
|
1000
|
-
* Introduced [device emulation](/playwright/#device-emulation):
|
|
1001
|
-
* globally via `emulate` config option
|
|
1002
|
-
* per session
|
|
1003
|
-
|
|
1004
|
-
**[WebDriver] Updated to webdriverio v6** by **[PeterNgTr](https://github.com/PeterNgTr)**.
|
|
1005
|
-
|
|
1006
|
-
Read [release notes](https://webdriver.io/blog/2020/03/26/webdriverio-v6-released.html), then
|
|
1007
|
-
upgrade webdriverio to ^6.0:
|
|
1008
|
-
|
|
1009
|
-
```
|
|
1010
|
-
npm i webdriverio@^6.0 --save
|
|
1011
|
-
```
|
|
1012
|
-
*(webdriverio v5 support is deprecated and will be removed in CodeceptJS 3.0)*
|
|
1013
|
-
**[WebDriver]** Introduced [Shadow DOM support](/shadow) by **[gkushang](https://github.com/gkushang)**
|
|
1014
|
-
|
|
1015
|
-
```js
|
|
1016
|
-
I.click({ shadow: ['my-app', 'recipe-hello', 'button'] });
|
|
1017
|
-
```
|
|
1018
|
-
|
|
1019
|
-
* **Fixed parallel execution of `run-workers` for Gherkin** scenarios by **[koushikmohan1996](https://github.com/koushikmohan1996)**
|
|
1020
|
-
* **[MockRequest]** Updated and **moved to [standalone package](https://github.com/codeceptjs/mock-request)**:
|
|
1021
|
-
* full support for record/replay mode for Puppeteer
|
|
1022
|
-
* added `mockServer` method to use flexible PollyJS API to define mocks
|
|
1023
|
-
* fixed stale browser screen in record mode.
|
|
1024
|
-
* **[Playwright]** Added support on for `screenshotOnFail` plugin by **[amonkc](https://github.com/amonkc)**
|
|
1025
|
-
* Gherkin improvement: setting different tags per examples. See [#2208](https://github.com/codeceptjs/CodeceptJS/issues/2208) by **[acuper](https://github.com/acuper)**
|
|
1026
|
-
* **[TestCafe]** Updated `click` to take first visible element. Fixes [#2226](https://github.com/codeceptjs/CodeceptJS/issues/2226) by **[theTainted](https://github.com/theTainted)**
|
|
1027
|
-
* [Puppeteer][WebDriver] Updated `waitForClickable` method to check for element overlapping. See [#2261](https://github.com/codeceptjs/CodeceptJS/issues/2261) by **[PiQx](https://github.com/PiQx)**
|
|
1028
|
-
* **[Puppeteer]** Dropped `puppeteer-firefox` support, as Puppeteer supports Firefox natively.
|
|
1029
|
-
* **[REST]** Rrespect Content-Type header. See [#2262](https://github.com/codeceptjs/CodeceptJS/issues/2262) by **[pmarshall-legacy](https://github.com/pmarshall-legacy)**
|
|
1030
|
-
* [allure plugin] Fixes BeforeSuite failures in allure reports. See [#2248](https://github.com/codeceptjs/CodeceptJS/issues/2248) by **[Georgegriff](https://github.com/Georgegriff)**
|
|
1031
|
-
* [WebDriver][Puppeteer][Playwright] A screenshot of for an active session is saved in multi-session mode. See [#2253](https://github.com/codeceptjs/CodeceptJS/issues/2253) by **[ChexWarrior](https://github.com/ChexWarrior)**
|
|
1032
|
-
* Fixed `--profile` option by **[pablopaul](https://github.com/pablopaul)**. Profile value to be passed into `run-multiple` and `run-workers`:
|
|
1033
|
-
|
|
1034
|
-
```
|
|
1035
|
-
npx codecept run-workers 2 --profile firefox
|
|
1036
|
-
```
|
|
1037
|
-
|
|
1038
|
-
Value is available at `process.env.profile` (previously `process.profile`). See [#2302](https://github.com/codeceptjs/CodeceptJS/issues/2302). Fixes [#1968](https://github.com/codeceptjs/CodeceptJS/issues/1968) [#1315](https://github.com/codeceptjs/CodeceptJS/issues/1315)
|
|
1039
|
-
|
|
1040
|
-
* [commentStep Plugin introduced](/plugins#commentstep). Allows to annotate logical parts of a test:
|
|
1041
|
-
|
|
1042
|
-
```js
|
|
1043
|
-
__`Given`;
|
|
1044
|
-
I.amOnPage('/profile')
|
|
1045
|
-
|
|
1046
|
-
__`When`;
|
|
1047
|
-
I.click('Logout');
|
|
1048
|
-
|
|
1049
|
-
__`Then`;
|
|
1050
|
-
I.see('You are logged out');
|
|
1051
|
-
```
|
|
1052
|
-
|
|
1053
|
-
## 2.5.0
|
|
1054
|
-
|
|
1055
|
-
* **Experimental: [Playwright](/playwright) helper introduced**.
|
|
1056
|
-
|
|
1057
|
-
> [Playwright](https://github.com/microsoft/playwright/) is an alternative to Puppeteer which works very similarly to it but adds cross-browser support with Firefox and Webkit. Until v1.0 Playwright API is not stable but we introduce it to CodeceptJS so you could try it.
|
|
1058
|
-
|
|
1059
|
-
* **[Puppeteer]** Fixed basic auth support when running in multiple sessions. See [#2178](https://github.com/codeceptjs/CodeceptJS/issues/2178) by **[ian-bartholomew](https://github.com/ian-bartholomew)**
|
|
1060
|
-
* **[Puppeteer]** Fixed `waitForText` when there is no `body` element on page (redirect). See [#2181](https://github.com/codeceptjs/CodeceptJS/issues/2181) by **[Vorobeyko](https://github.com/Vorobeyko)**
|
|
1061
|
-
* [Selenoid plugin] Fixed overriding current capabilities by adding deepMerge. Fixes [#2183](https://github.com/codeceptjs/CodeceptJS/issues/2183) by **[koushikmohan1996](https://github.com/koushikmohan1996)**
|
|
1062
|
-
* Added types for `Scenario.todo` by **[Vorobeyko](https://github.com/Vorobeyko)**
|
|
1063
|
-
* Added types for Mocha by **[Vorobeyko](https://github.com/Vorobeyko)**. Fixed typing conflicts with Jest
|
|
1064
|
-
* **[FileSystem]** Added methods by **[nitschSB](https://github.com/nitschSB)**
|
|
1065
|
-
* `waitForFile`
|
|
1066
|
-
* `seeFileContentsEqualReferenceFile`
|
|
1067
|
-
* Added `--colors` option to `run` and `run-multiple` so you force colored output in dockerized environment. See [#2189](https://github.com/codeceptjs/CodeceptJS/issues/2189) by **[mirao](https://github.com/mirao)**
|
|
1068
|
-
* **[WebDriver]** Added `type` command to enter value without focusing on a field. See [#2198](https://github.com/codeceptjs/CodeceptJS/issues/2198) by **[xMutaGenx](https://github.com/xMutaGenx)**
|
|
1069
|
-
* Fixed `codeceptjs gt` command to respect config pattern for tests. See [#2200](https://github.com/codeceptjs/CodeceptJS/issues/2200) and [#2204](https://github.com/codeceptjs/CodeceptJS/issues/2204) by **[matheo](https://github.com/matheo)**
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
## 2.4.3
|
|
1073
|
-
|
|
1074
|
-
* Hotfix for interactive pause
|
|
1075
|
-
|
|
1076
|
-
## 2.4.2
|
|
1077
|
-
|
|
1078
|
-
* **Interactive pause improvements** by **[koushikmohan1996](https://github.com/koushikmohan1996)**
|
|
1079
|
-
* allows using in page objects and variables: `pause({ loginPage, a })`
|
|
1080
|
-
* enables custom commands inside pause with `=>` prefix: `=> loginPage.open()`
|
|
1081
|
-
* [Selenoid plugin](/plugins#selenoid) added by by **[koushikmohan1996](https://github.com/koushikmohan1996)**
|
|
1082
|
-
* uses Selenoid to launch browsers inside Docker containers
|
|
1083
|
-
* automatically **records videos** and attaches them to allure reports
|
|
1084
|
-
* can delete videos for successful tests
|
|
1085
|
-
* can automatically pull in and start Selenoid containers
|
|
1086
|
-
* works with WebDriver helper
|
|
1087
|
-
* Avoid failiure report on successful retry in worker by **[koushikmohan1996](https://github.com/koushikmohan1996)**
|
|
1088
|
-
* Added translation ability to Scenario, Feature and other context methods by **[koushikmohan1996](https://github.com/koushikmohan1996)**
|
|
1089
|
-
* 📢 Please help us translate context methods to your language! See [italian translation](https://github.com/codeceptjs/CodeceptJS/blob/master/translations/it-IT.js#L3) as an example and send [patches to vocabularies](https://github.com/codeceptjs/CodeceptJS/tree/master/translations).
|
|
1090
|
-
* allurePlugin: Added `say` comments to allure reports by **[PeterNgTr](https://github.com/PeterNgTr)**.
|
|
1091
|
-
* Fixed no custom output folder created when executed with run-worker. Fix by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
1092
|
-
* **[Puppeteer]** Fixed error description for context element not found. See [#2065](https://github.com/codeceptjs/CodeceptJS/issues/2065). Fix by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
1093
|
-
* **[WebDriver]** Fixed `waitForClickable` to wait for exact number of seconds by **[mirao](https://github.com/mirao)**. Resolves [#2166](https://github.com/codeceptjs/CodeceptJS/issues/2166)
|
|
1094
|
-
* Fixed setting `compilerOptions` in `jsconfig.json` file on init by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
1095
|
-
* **[Filesystem]** Added method by **[nitschSB](https://github.com/nitschSB)**
|
|
1096
|
-
* `seeFileContentsEqualReferenceFile`
|
|
1097
|
-
* `waitForFile`
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
## 2.4.1
|
|
1101
|
-
|
|
1102
|
-
* **[Hotfix]** - Add missing lib that prevents codeceptjs from initializing.
|
|
1103
|
-
|
|
1104
|
-
## 2.4.0
|
|
1105
|
-
|
|
1106
|
-
* Improved setup wizard with `npx codecept init`:
|
|
1107
|
-
* **enabled [retryFailedStep](/plugins/#retryfailedstep) plugin for new setups**.
|
|
1108
|
-
* enabled [@codeceptjs/configure](/configuration/#common-configuration-patterns) to toggle headless/window mode via env variable
|
|
1109
|
-
* creates a new test on init
|
|
1110
|
-
* removed question on "steps file", create it by default.
|
|
1111
|
-
* Added [pauseOnFail plugin](/plugins/#pauseonfail). *Sponsored by Paul Vincent Beigang and his book "[Practical End 2 End Testing with CodeceptJS](https://leanpub.com/codeceptjs/)"*.
|
|
1112
|
-
* Added [`run-rerun` command](/commands/#run-rerun) to run tests multiple times to detect and fix flaky tests. By **[Ilrilan](https://github.com/Ilrilan)** and **[Vorobeyko](https://github.com/Vorobeyko)**.
|
|
1113
|
-
* Added [`Scenario.todo()` to declare tests as pending](/basics#todotest). See [#2100](https://github.com/codeceptjs/CodeceptJS/issues/2100) by **[Vorobeyko](https://github.com/Vorobeyko)**
|
|
1114
|
-
* Added support for absolute path for `output` dir. See [#2049](https://github.com/codeceptjs/CodeceptJS/issues/2049) by **[elukoyanov](https://github.com/elukoyanov)**
|
|
1115
|
-
* Fixed error in `npx codecept init` caused by calling `console.print`. See [#2071](https://github.com/codeceptjs/CodeceptJS/issues/2071) by **[Atinux](https://github.com/Atinux)**.
|
|
1116
|
-
* **[Filesystem]** Methods added by **[aefluke](https://github.com/aefluke)**:
|
|
1117
|
-
* `seeFileNameMatching`
|
|
1118
|
-
* `grabFileNames`
|
|
1119
|
-
* **[Puppeteer]** Fixed grabbing attributes with hyphen by **[Holorium](https://github.com/Holorium)**
|
|
1120
|
-
* **[TestCafe]** Fixed `grabAttributeFrom` method by **[elukoyanov](https://github.com/elukoyanov)**
|
|
1121
|
-
* **[MockRequest]** Added support for [Polly config options](https://netflix.github.io/pollyjs/#/configuration?id=configuration) by **[ecrmnn](https://github.com/ecrmnn)**
|
|
1122
|
-
* **[TestCafe]** Fixes exiting with zero code on failure. Fixed [#2090](https://github.com/codeceptjs/CodeceptJS/issues/2090) with [#2106](https://github.com/codeceptjs/CodeceptJS/issues/2106) by **[koushikmohan1996](https://github.com/koushikmohan1996)**
|
|
1123
|
-
* [WebDriver][Puppeteer] Added basicAuth support via config. Example: `basicAuth: {username: 'username', password: 'password'}`. See [#1962](https://github.com/codeceptjs/CodeceptJS/issues/1962) by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
1124
|
-
* [WebDriver][Appium] Added `scrollIntoView` by **[pablopaul](https://github.com/pablopaul)**
|
|
1125
|
-
* Fixed [#2118](https://github.com/codeceptjs/CodeceptJS/issues/2118): No error stack trace for syntax error by **[senthillkumar](https://github.com/senthillkumar)**
|
|
1126
|
-
* Added `parse()` method to data table inside Cucumber tests. Use it to obtain rows and hashes for test data. See [#2082](https://github.com/codeceptjs/CodeceptJS/issues/2082) by **[Sraime](https://github.com/Sraime)**
|
|
1127
|
-
|
|
1128
|
-
## 2.3.6
|
|
1129
|
-
|
|
1130
|
-
* Create better Typescript definition file through JSDoc. By **[lemnis](https://github.com/lemnis)**
|
|
1131
|
-
* `run-workers` now can use glob pattern. By **[Ilrilan](https://github.com/Ilrilan)**
|
|
1132
|
-
```js
|
|
1133
|
-
// Example:
|
|
1134
|
-
exports.config = {
|
|
1135
|
-
tests: '{./workers/base_test.workers.js,./workers/test_grep.workers.js}',
|
|
1136
|
-
}
|
|
1137
|
-
```
|
|
1138
|
-
* Added new command `npx codeceptjs info` which print information about your environment and CodeceptJS configs. By **[jamesgeorge007](https://github.com/jamesgeorge007)**
|
|
1139
|
-
* Fixed some typos in documantation. By **[pablopaul](https://github.com/pablopaul)** **[atomicpages](https://github.com/atomicpages)** **[EricTendian](https://github.com/EricTendian)**
|
|
1140
|
-
* Added PULL_REQUEST template.
|
|
1141
|
-
* [Puppeteer][WebDriver] Added `waitForClickable` for waiting clickable element on page.
|
|
1142
|
-
* **[TestCafe]** Added support for remote connection. By **[jvdieten](https://github.com/jvdieten)**
|
|
1143
|
-
* **[Puppeteer]** Fixed `waitForText` XPath context now works correctly. By **[Heavik](https://github.com/Heavik)**
|
|
1144
|
-
* **[TestCafe]** Fixed `clearField` clear field now awaits TestCafe's promise. By **[orihomie](https://github.com/orihomie)**
|
|
1145
|
-
* **[Puppeteer]** Fixed fails when executing localStorage on services pages. See [#2026](https://github.com/codeceptjs/CodeceptJS/issues/2026)
|
|
1146
|
-
* Fixed empty tags in test name. See [#2038](https://github.com/codeceptjs/CodeceptJS/issues/2038)
|
|
1147
|
-
|
|
1148
|
-
## 2.3.5
|
|
1149
|
-
|
|
1150
|
-
* Set "parse-function" dependency to "5.2.11" to avoid further installation errors.
|
|
1151
|
-
|
|
1152
|
-
## 2.3.4
|
|
1153
|
-
|
|
1154
|
-
* Fixed installation error "Cannot find module '@babel/runtime/helpers/interopRequireDefault'". The issue came from `parse-function` package. Fixed by **[pablopaul](https://github.com/pablopaul)**.
|
|
1155
|
-
* **[Puppeteer]** Fixed switching to iframe without an ID by **[johnyb](https://github.com/johnyb)**. See [#1974](https://github.com/codeceptjs/CodeceptJS/issues/1974)
|
|
1156
|
-
* Added `--profile` option to `run-workers` by **[orihomie](https://github.com/orihomie)**
|
|
1157
|
-
* Added a tag definition to `FeatureConfig` and `ScenarioConfig` by **[sseliverstov](https://github.com/sseliverstov)**
|
|
1158
|
-
|
|
1159
|
-
## 2.3.3
|
|
1160
|
-
|
|
1161
|
-
* **[customLocator plugin](#customlocator) introduced**. Adds a locator strategy for special test attributes on elements.
|
|
1162
|
-
|
|
1163
|
-
```js
|
|
1164
|
-
// when data-test-id is a special test attribute
|
|
1165
|
-
// enable and configure plugin to replace this
|
|
1166
|
-
I.click({ css: '[data-test-id=register_button]');
|
|
1167
|
-
// with this
|
|
1168
|
-
I.click('$register_button');
|
|
1169
|
-
```
|
|
1170
|
-
* [Puppeteer][WebDriver] `pressKey` improvements by **[martomo](https://github.com/martomo)**:
|
|
1171
|
-
Changed pressKey method to resolve issues and extend functionality.
|
|
1172
|
-
* Did not properly recognize 'Meta' (or 'Command') as modifier key.
|
|
1173
|
-
* Right modifier keys did not work in WebDriver using JsonWireProtocol.
|
|
1174
|
-
* 'Shift' + 'key' combination would not reflect actual keyboard behavior.
|
|
1175
|
-
* Respect sequence with multiple modifier keys passed to pressKey.
|
|
1176
|
-
* Added support to automatic change operation modifier key based on operating system.
|
|
1177
|
-
* [Puppeteer][WebDriver] Added `pressKeyUp` and `pressKeyDown` to press and release modifier keys like `Control` or `Shift`. By **[martomo](https://github.com/martomo)**.
|
|
1178
|
-
* [Puppeteer][WebDriver] Added `grabElementBoundingRect` by **[PeterNgTr](https://github.com/PeterNgTr)**.
|
|
1179
|
-
* **[Puppeteer]** Fixed speed degradation introduced in [#1306](https://github.com/codeceptjs/CodeceptJS/issues/1306) with accessibility locators support. See [#1953](https://github.com/codeceptjs/CodeceptJS/issues/1953).
|
|
1180
|
-
* Added `Config.addHook` to add a function that will update configuration on load.
|
|
1181
|
-
* Started [`@codeceptjs/configure`](https://github.com/codeceptjs/configure) package with a collection of common configuration patterns.
|
|
1182
|
-
* **[TestCafe]** port's management removed (left on TestCafe itself) by **[orihomie](https://github.com/orihomie)**. Fixes [#1934](https://github.com/codeceptjs/CodeceptJS/issues/1934).
|
|
1183
|
-
* **[REST]** Headers are no more declared as singleton variable. Fixes [#1959](https://github.com/codeceptjs/CodeceptJS/issues/1959)
|
|
1184
|
-
* Updated Docker image to include run tests in workers with `NUMBER_OF_WORKERS` env variable. By **[PeterNgTr](https://github.com/PeterNgTr)**.
|
|
1185
|
-
|
|
1186
|
-
## 2.3.2
|
|
1187
|
-
|
|
1188
|
-
* **[Puppeteer]** Fixed Puppeteer 1.20 support by **[davertmik](https://github.com/davertmik)**
|
|
1189
|
-
* Fixed `run-workers` to run with complex configs. See [#1887](https://github.com/codeceptjs/CodeceptJS/issues/1887) by **[nitschSB](https://github.com/nitschSB)**
|
|
1190
|
-
* Added `--suites` option to `run-workers` to split suites by workers (tests of the same suite goes to teh same worker). Thanks **[nitschSB](https://github.com/nitschSB)**.
|
|
1191
|
-
* Added a guide on [Email Testing](https://codecept.io/email).
|
|
1192
|
-
* **[retryFailedStepPlugin]** Improved to ignore wait* steps and others. Also added option to ignore this plugin per test bases. See [updated documentation](https://codecept.io/plugins#retryfailedstep). By **[davertmik](https://github.com/davertmik)**
|
|
1193
|
-
* Fixed using PageObjects as classes by **[Vorobeyko](https://github.com/Vorobeyko)**. See [#1896](https://github.com/codeceptjs/CodeceptJS/issues/1896)
|
|
1194
|
-
* **[WebDriver]** Fixed opening more than one tab. See [#1875](https://github.com/codeceptjs/CodeceptJS/issues/1875) by **[jplegoff](https://github.com/jplegoff)**. Fixes [#1874](https://github.com/codeceptjs/CodeceptJS/issues/1874)
|
|
1195
|
-
* Fixed [#1891](https://github.com/codeceptjs/CodeceptJS/issues/1891) when `I.retry()` affected retries of next steps. By **[davertmik](https://github.com/davertmik)**
|
|
1196
|
-
|
|
1197
|
-
## 2.3.1
|
|
1198
|
-
|
|
1199
|
-
* **[MockRequest]** Polly helper was renamed to MockRequest.
|
|
1200
|
-
* [MockRequest][WebDriver] [Mocking requests](https://codecept.io/webdriver#mocking-requests) is now available in WebDriver. Thanks **[radhey1851](https://github.com/radhey1851)**
|
|
1201
|
-
* **[Puppeteer]** Ensure configured user agent and/or window size is applied to all pages. See [#1862](https://github.com/codeceptjs/CodeceptJS/issues/1862) by **[martomo](https://github.com/martomo)**
|
|
1202
|
-
* Improve handling of xpath locators with round brackets by **[nitschSB](https://github.com/nitschSB)**. See [#1870](https://github.com/codeceptjs/CodeceptJS/issues/1870)
|
|
1203
|
-
* Use WebDriver capabilities config in wdio plugin. [#1869](https://github.com/codeceptjs/CodeceptJS/issues/1869) by **[quekshuy](https://github.com/quekshuy)**
|
|
1204
|
-
|
|
1205
|
-
## 2.3.0
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
* **[Parallel testing by workers](https://codecept.io/parallel#parallel-execution-by-workers) introduced** by **[VikalpP](https://github.com/VikalpP)** and **[davertmik](https://github.com/davertmik)**. Use `run-workers` command as faster and simpler alternative to `run-multiple`. Requires NodeJS v12
|
|
1209
|
-
|
|
1210
|
-
```
|
|
1211
|
-
# run all tests in parallel using 3 workers
|
|
1212
|
-
npx codeceptjs run-workers 3
|
|
1213
|
-
```
|
|
1214
|
-
* [GraphQL][GraphQLDataFactory] **Helpers for data management over GraphQL** APIs added. By **[radhey1851](https://github.com/radhey1851)**.
|
|
1215
|
-
* Learn how to [use GraphQL helper](https://codecept.io/data#graphql) to access GarphQL API
|
|
1216
|
-
* And how to combine it with [GraphQLDataFactory](https://codecept.io/data#graphql-data-factory) to generate and persist test data.
|
|
1217
|
-
* **Updated to use Mocha 6**. See [#1802](https://github.com/codeceptjs/CodeceptJS/issues/1802) by **[elukoyanov](https://github.com/elukoyanov)**
|
|
1218
|
-
* Added `dry-run` command to print steps of test scenarios without running them. Fails to execute scenarios with `grab*` methods or custom code. See [#1825](https://github.com/codeceptjs/CodeceptJS/issues/1825) for more details.
|
|
1219
|
-
|
|
1220
|
-
```
|
|
1221
|
-
npx codeceptjs dry-run
|
|
1222
|
-
```
|
|
1223
|
-
|
|
1224
|
-
* **[Appium]** Optimization when clicking, searching for fields by accessibility id. See [#1777](https://github.com/codeceptjs/CodeceptJS/issues/1777) by **[gagandeepsingh26](https://github.com/gagandeepsingh26)**
|
|
1225
|
-
* **[TestCafe]** Fixed `switchTo` by **[KadoBOT](https://github.com/KadoBOT)**
|
|
1226
|
-
* **[WebDriver]** Added geolocation actions by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
1227
|
-
* `grabGeoLocation()`
|
|
1228
|
-
* `setGeoLocation()`
|
|
1229
|
-
* **[Polly]** Check typeof arguments for mock requests by **[VikalpP](https://github.com/VikalpP)**. Fixes [#1815](https://github.com/codeceptjs/CodeceptJS/issues/1815)
|
|
1230
|
-
* CLI improvements by **[jamesgeorge007](https://github.com/jamesgeorge007)**
|
|
1231
|
-
* `codeceptjs` command prints list of all available commands
|
|
1232
|
-
* added `codeceptjs -V` flag to print version information
|
|
1233
|
-
* warns on unknown command
|
|
1234
|
-
* Added TypeScript files support to `run-multiple` by **[z4o4z](https://github.com/z4o4z)**
|
|
1235
|
-
* Fixed element position bug in locator builder. See [#1829](https://github.com/codeceptjs/CodeceptJS/issues/1829) by **[AnotherAnkor](https://github.com/AnotherAnkor)**
|
|
1236
|
-
* Various TypeScript typings updates by **[elukoyanov](https://github.com/elukoyanov)** and **[Vorobeyko](https://github.com/Vorobeyko)**
|
|
1237
|
-
* Added `event.step.comment` event for all comment steps like `I.say` or gherking steps.
|
|
1238
|
-
|
|
1239
|
-
## 2.2.1
|
|
1240
|
-
|
|
1241
|
-
* **[WebDriver]** A [dedicated guide](https://codecept.io/webdriver) written.
|
|
1242
|
-
* **[TestCafe]** A [dedicated guide](https://codecept.io/testcafe) written.
|
|
1243
|
-
* **[Puppeteer]** A [chapter on mocking](https://codecept.io/puppeteer#mocking-requests) written
|
|
1244
|
-
* [Puppeteer][Nightmare][TestCafe] Window mode is enabled by default on `codeceptjs init`.
|
|
1245
|
-
* **[TestCafe]** Actions implemented by **[hubidu](https://github.com/hubidu)**
|
|
1246
|
-
* `grabPageScrollPosition`
|
|
1247
|
-
* `scrollPageToTop`
|
|
1248
|
-
* `scrollPageToBottom`
|
|
1249
|
-
* `scrollTo`
|
|
1250
|
-
* `switchTo`
|
|
1251
|
-
* Intellisense improvements. Renamed `tsconfig.json` to `jsconfig.json` on init. Fixed autocompletion for Visual Studio Code.
|
|
1252
|
-
* **[Polly]** Take configuration values from Puppeteer. Fix [#1766](https://github.com/codeceptjs/CodeceptJS/issues/1766) by **[VikalpP](https://github.com/VikalpP)**
|
|
1253
|
-
* **[Polly]** Add preconditions to check for puppeteer page availability by **[VikalpP](https://github.com/VikalpP)**. Fixes [#1767](https://github.com/codeceptjs/CodeceptJS/issues/1767)
|
|
1254
|
-
* **[WebDriver]** Use filename for `uploadFile` by **[VikalpP](https://github.com/VikalpP)**. See [#1797](https://github.com/codeceptjs/CodeceptJS/issues/1797)
|
|
1255
|
-
* **[Puppeteer]** Configure speed of input with `pressKeyDelay` option. By **[hubidu](https://github.com/hubidu)**
|
|
1256
|
-
* Fixed recursive loading of support objects by **[davertmik](https://github.com/davertmik)**.
|
|
1257
|
-
* Fixed support object definitions in steps.d.ts by **[johnyb](https://github.com/johnyb)**. Fixes [#1795](https://github.com/codeceptjs/CodeceptJS/issues/1795)
|
|
1258
|
-
* Fixed `Data().Scenario().injectDependencies()` is not a function by **[andrerleao](https://github.com/andrerleao)**
|
|
1259
|
-
* Fixed crash when using xScenario & Scenario.skip with tag by **[VikalpP](https://github.com/VikalpP)**. Fixes [#1751](https://github.com/codeceptjs/CodeceptJS/issues/1751)
|
|
1260
|
-
* Dynamic configuration of helpers can be performed with async function. See [#1786](https://github.com/codeceptjs/CodeceptJS/issues/1786) by **[cviejo](https://github.com/cviejo)**
|
|
1261
|
-
* Added TS definitions for internal objects by **[Vorobeyko](https://github.com/Vorobeyko)**
|
|
1262
|
-
* BDD improvements:
|
|
1263
|
-
* Fix for snippets command with a .feature file that has special characters by **[asselin](https://github.com/asselin)**
|
|
1264
|
-
* Fix `--path` option on `gherkin:snippets` command by **[asselin](https://github.com/asselin)**. See [#1790](https://github.com/codeceptjs/CodeceptJS/issues/1790)
|
|
1265
|
-
* Added `--feature` option to `gherkin:snippets` to enable creating snippets for a subset of .feature files. See [#1803](https://github.com/codeceptjs/CodeceptJS/issues/1803) by **[asselin](https://github.com/asselin)**.
|
|
1266
|
-
* Fixed: dynamic configs not reset after test. Fixes [#1776](https://github.com/codeceptjs/CodeceptJS/issues/1776) by **[cviejo](https://github.com/cviejo)**.
|
|
1267
|
-
|
|
1268
|
-
## 2.2.0
|
|
1269
|
-
|
|
1270
|
-
* **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.
|
|
1271
|
-
* **[Puppeteer]** Mocking requests enabled by introducing [Polly.js helper](https://codecept.io/helpers/Polly). Thanks **[VikalpP](https://github.com/VikalpP)**
|
|
1272
|
-
|
|
1273
|
-
```js
|
|
1274
|
-
// use Polly & Puppeteer helpers
|
|
1275
|
-
I.mockRequest('GET', '/api/users', 200);
|
|
1276
|
-
I.mockRequest('POST', '/users', { user: { name: 'fake' }});
|
|
1277
|
-
```
|
|
1278
|
-
|
|
1279
|
-
* **EXPERIMENTAL** **[Puppeteer]** [Firefox support](https://codecept.io/helpers/Puppeteer-firefox) introduced by **[ngadiyak](https://github.com/ngadiyak)**, see [#1740](https://github.com/codeceptjs/CodeceptJS/issues/1740)
|
|
1280
|
-
* **[stepByStepReportPlugin]** use md5 hash to generate reports into unique folder. Fix [#1744](https://github.com/codeceptjs/CodeceptJS/issues/1744) by **[chimurai](https://github.com/chimurai)**
|
|
1281
|
-
* Interactive pause improvements:
|
|
1282
|
-
* print result of `grab` commands
|
|
1283
|
-
* print message for successful assertions
|
|
1284
|
-
* `run-multiple` (parallel execution) improvements:
|
|
1285
|
-
* `bootstrapAll` must be called before creating chunks. [#1741](https://github.com/codeceptjs/CodeceptJS/issues/1741) by **[Vorobeyko](https://github.com/Vorobeyko)**
|
|
1286
|
-
* Bugfix: If value in config has falsy value then multiple config does not overwrite original value. [#1756](https://github.com/codeceptjs/CodeceptJS/issues/1756) by **[LukoyanovE](https://github.com/LukoyanovE)**
|
|
1287
|
-
* Fixed hooks broken in 2.1.5 by **[Vorobeyko](https://github.com/Vorobeyko)**
|
|
1288
|
-
* Fix references to support objects when using Dependency Injection. Fix by **[johnyb](https://github.com/johnyb)**. See [#1701](https://github.com/codeceptjs/CodeceptJS/issues/1701)
|
|
1289
|
-
* Fix dynamic config applied for multiple helpers by **[VikalpP](https://github.com/VikalpP)** [#1743](https://github.com/codeceptjs/CodeceptJS/issues/1743)
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
## 2.1.5
|
|
1293
|
-
|
|
1294
|
-
* **EXPERIMENTAL** [Wix Detox support](https://github.com/codeceptjs/detox-helper) introduced as standalone helper. Provides a faster alternative to Appium for mobile testing.
|
|
1295
|
-
* Saving successful commands inside interactive pause into `_output/cli-history` file. By **[hubidu](https://github.com/hubidu)**
|
|
1296
|
-
* Fixed hanging error handler inside scenario. See [#1721](https://github.com/codeceptjs/CodeceptJS/issues/1721) by **[haily-lgc](https://github.com/haily-lgc)**.
|
|
1297
|
-
* Fixed by **[Vorobeyko](https://github.com/Vorobeyko)**: tests did not fail when an exception was raised in async bootstrap.
|
|
1298
|
-
* **[WebDriver]** Added window control methods by **[emmonspired](https://github.com/emmonspired)**
|
|
1299
|
-
* `grabAllWindowHandles` returns all window handles
|
|
1300
|
-
* `grabCurrentWindowHandle` returns current window handle
|
|
1301
|
-
* `switchToWindow` switched to window by its handle
|
|
1302
|
-
* **[Appium]** Fixed using `host` as configuration by **[trinhpham](https://github.com/trinhpham)**
|
|
1303
|
-
* Fixed `run-multiple` command when `tests` config option is undefined (in Gherkin scenarios). By **[gkushang](https://github.com/gkushang)**.
|
|
1304
|
-
* German translation introduced by **[hubidu](https://github.com/hubidu)**
|
|
1305
|
-
|
|
1306
|
-
## 2.1.4
|
|
1307
|
-
|
|
1308
|
-
* [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:
|
|
1309
|
-
* `aria-label`
|
|
1310
|
-
* `title`
|
|
1311
|
-
* `aria-labelledby`
|
|
1312
|
-
* **[Puppeteer]** Added support for React locators.
|
|
1313
|
-
* New [React Guide](https://codecept.io/react) added.
|
|
1314
|
-
* **[Puppeteer]** Deprecated `downloadFile`
|
|
1315
|
-
* **[Puppeteer]** Introduced `handleDownloads` replacing `downloadFile`
|
|
1316
|
-
* [puppeteerCoverage plugin] Fixed path already exists error by **[seta-tuha](https://github.com/seta-tuha)**.
|
|
1317
|
-
* Fixed 'ERROR: ENAMETOOLONG' creating directory names in `run-multiple` with long config. By **[artvinn](https://github.com/artvinn)**
|
|
1318
|
-
* **[REST]** Fixed url autocompletion combining base and relative paths by **[LukoyanovE](https://github.com/LukoyanovE)**
|
|
1319
|
-
* [Nightmare][Protractor] `uncheckOption` method introduced by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
1320
|
-
* [autoLogin plugin] Enable to use without `await` by **[tsuemura](https://github.com/tsuemura)**
|
|
1321
|
-
* **[Puppeteer]** Fixed `UnhandledPromiseRejectionWarning: "Execution context was destroyed...` by **[adrielcodeco](https://github.com/adrielcodeco)**
|
|
1322
|
-
* **[WebDriver]** Keep browser window dimensions when starting a new session by **[spiroid](https://github.com/spiroid)**
|
|
1323
|
-
* Replace Ghekrin plceholders with values in files that combine a scenerio outline and table by **[medtoure18](https://github.com/medtoure18)**.
|
|
1324
|
-
* Added Documentation to [locate elements in React Native](https://codecept.io/mobile-react-native-locators) apps. By **[DimGun](https://github.com/DimGun)**.
|
|
1325
|
-
* Adding optional `path` parameter to `bdd:snippets` command to append snippets to a specific file. By **[cthorsen31](https://github.com/cthorsen31)**.
|
|
1326
|
-
* Added optional `output` parameter to `def` command by **[LukoyanovE](https://github.com/LukoyanovE)**.
|
|
1327
|
-
* **[Puppeteer]** Added `grabDataFromPerformanceTiming` by **[PeterNgTr](https://github.com/PeterNgTr)**.
|
|
1328
|
-
* axios updated to `0.19.0` by **[SteveShaffer](https://github.com/SteveShaffer)**
|
|
1329
|
-
* TypeScript defitions updated by **[LukoyanovE](https://github.com/LukoyanovE)**. Added `secret` and `inject` function.
|
|
1330
|
-
|
|
1331
|
-
## 2.1.3
|
|
1332
|
-
|
|
1333
|
-
* Fixed autoLogin plugin to inject `login` function
|
|
1334
|
-
* Fixed using `toString()` in DataTablewhen it is defined by **[tsuemura](https://github.com/tsuemura)**
|
|
1335
|
-
|
|
1336
|
-
## 2.1.2
|
|
1337
|
-
|
|
1338
|
-
* Fixed `inject` to load objects recursively.
|
|
1339
|
-
* Fixed TypeScript definitions for locators by **[LukoyanovE](https://github.com/LukoyanovE)**
|
|
1340
|
-
* **EXPERIMENTAL** **[WebDriver]** ReactJS locators support with webdriverio v5.8+:
|
|
1341
|
-
|
|
1342
|
-
```js
|
|
1343
|
-
// locating React element by name, prop, state
|
|
1344
|
-
I.click({ react: 'component-name', props: {}, state: {} });
|
|
1345
|
-
I.seeElement({ react: 'component-name', props: {}, state: {} });
|
|
1346
|
-
```
|
|
1347
|
-
|
|
1348
|
-
## 2.1.1
|
|
1349
|
-
|
|
1350
|
-
* Do not retry `within` and `session` calls inside `retryFailedStep` plugin. Fix by **[tsuemura](https://github.com/tsuemura)**
|
|
1351
|
-
|
|
1352
|
-
## 2.1.0
|
|
1353
|
-
|
|
1354
|
-
* Added global `inject()` function to require actor and page objects using dependency injection. Recommended to use in page objects, step definition files, support objects:
|
|
1355
|
-
|
|
1356
|
-
```js
|
|
1357
|
-
// old way
|
|
1358
|
-
const I = actor();
|
|
1359
|
-
const myPage = require('../page/myPage');
|
|
1360
|
-
|
|
1361
|
-
// new way
|
|
1362
|
-
const { I, myPage } = inject();
|
|
1363
|
-
```
|
|
1364
|
-
|
|
1365
|
-
* Added global `secret` function to fill in sensitive data. By **[RohanHart](https://github.com/RohanHart)**:
|
|
1366
|
-
|
|
1367
|
-
```js
|
|
1368
|
-
I.fillField('password', secret('123456'));
|
|
1369
|
-
```
|
|
1370
|
-
|
|
1371
|
-
* [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)****
|
|
1372
|
-
* **[Appium]** Fixed `swipe*` methods by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
1373
|
-
* BDD Gherkin Improvements:
|
|
1374
|
-
* Implemented `run-multiple` for feature files. **Sponsored by **[GSasu](https://github.com/GSasu)****
|
|
1375
|
-
* Added `--features` and `--tests` options to `run-multiple`. **Sponsored by **[GSasu](https://github.com/GSasu)****
|
|
1376
|
-
* Implemented `Before` and `After` hooks in [step definitions](https://codecept.io/bdd#before)
|
|
1377
|
-
* Fixed running tests by absolute path. By **[batalov](https://github.com/batalov)**.
|
|
1378
|
-
* Enabled the adding screenshot to failed test for moch-junit-reporter by **[PeterNgTr](https://github.com/PeterNgTr)**.
|
|
1379
|
-
* **[Puppeteer]** Implemented `uncheckOption` and fixed behavior of `checkOption` by **[aml2610](https://github.com/aml2610)**
|
|
1380
|
-
* **[WebDriver]** Fixed `seeTextEquals` on empty strings by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
1381
|
-
* **[Puppeteer]** Fixed launch with `browserWSEndpoint` config by **[ngadiyak](https://github.com/ngadiyak)**.
|
|
1382
|
-
* **[Puppeteer]** Fixed switching back to main window in multi-session mode by **[davertmik](https://github.com/davertmik)**.
|
|
1383
|
-
* **[autoLoginPlugin]** Fixed using async functions for auto login by **[nitschSB](https://github.com/nitschSB)**
|
|
1384
|
-
|
|
1385
|
-
> This release was partly sponsored by **[GSasu](https://github.com/GSasu)**. Thanks for the support!
|
|
1386
|
-
Do you want to improve this project? [Learn more about sponsorin CodeceptJS
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
## 2.0.8
|
|
1390
|
-
|
|
1391
|
-
* **[Puppeteer]** Added `downloadFile` action by **[PeterNgTr](https://github.com/PeterNgTr)**.
|
|
1392
|
-
|
|
1393
|
-
Use it with `FileSystem` helper to test availability of a file:
|
|
1394
|
-
```js
|
|
1395
|
-
const fileName = await I.downloadFile('a.file-link');
|
|
1396
|
-
I.amInPath('output');
|
|
1397
|
-
I.seeFile(fileName);
|
|
1398
|
-
```
|
|
1399
|
-
> Actions `amInPath` and `seeFile` are taken from [FileSystem](https://codecept.io/helpers/FileSystem) helper
|
|
1400
|
-
|
|
1401
|
-
* **[Puppeteer]** Fixed `autoLogin` plugin with Puppeteer by **[davertmik](https://github.com/davertmik)**
|
|
1402
|
-
* **[WebDriver]** `seeInField` should throw error if element has no value attrubite. By **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
1403
|
-
* **[WebDriver]** Fixed `seeTextEquals` passes for any string if element is empty by **[PeterNgTr](https://github.com/PeterNgTr)**.
|
|
1404
|
-
* **[WebDriver]** Internal refctoring to use `el.isDisplayed` to match latest webdriverio implementation. Thanks to **[LukoyanovE](https://github.com/LukoyanovE)**
|
|
1405
|
-
* [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)**
|
|
1406
|
-
* **[Appium]** Fixed `locator.stringify` call by **[LukoyanovE](https://github.com/LukoyanovE)**
|
|
1407
|
-
|
|
1408
|
-
## 2.0.7
|
|
1409
|
-
|
|
1410
|
-
* [WebDriver][Protractor][Nightmare] `rightClick` method implemented (fixed) in a standard way. By **[davertmik](https://github.com/davertmik)**
|
|
1411
|
-
* **[WebDriver]** Updated WebDriver API calls in helper. By **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
1412
|
-
* **[stepByStepReportPlugin]** Added `screenshotsForAllureReport` config options to automatically attach screenshots to allure reports. By **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
1413
|
-
* **[allurePlugin]** Added `addLabel` method by **[Vorobeyko](https://github.com/Vorobeyko)**
|
|
1414
|
-
* Locator Builder: fixed `withChild` and `withDescendant` to match deep nested siblings by **[Vorobeyko](https://github.com/Vorobeyko)**.
|
|
1415
|
-
|
|
1416
|
-
## 2.0.6
|
|
1417
|
-
|
|
1418
|
-
* Introduced [Custom Locator Strategies](https://codecept.io/locators#custom-locators).
|
|
1419
|
-
* Added [Visual Testing Guide](https://codecept.io/visual) by **[puneet0191](https://github.com/puneet0191)** and **[MitkoTschimev](https://github.com/MitkoTschimev)**.
|
|
1420
|
-
* **[Puppeteer]** [`puppeteerCoverage`](https://codecept.io/plugins#puppeteercoverage) plugin added to collect code coverage in JS. By **[dvillarama](https://github.com/dvillarama)**
|
|
1421
|
-
* Make override option in `run-multiple` to respect the generated overridden config by **[kinyat](https://github.com/kinyat)**
|
|
1422
|
-
* Fixed deep merge for `container.append()`. Introduced `lodash.merge()`. By **[Vorobeyko](https://github.com/Vorobeyko)**
|
|
1423
|
-
* Fixed saving screenshot on Windows by
|
|
1424
|
-
* Fix errors on using interactive shell with Allure plugin by tsuemura
|
|
1425
|
-
* Fixed using dynamic injections with `Scenario().injectDependencies` by **[tsemura](https://github.com/tsemura)**
|
|
1426
|
-
* [WebDriver][Puppeteer][Nightmare][Protractor] Fixed url protocol detection for non-http urls by **[LukoyanovE](https://github.com/LukoyanovE)**
|
|
1427
|
-
* **[WebDriver]** Enabled compatibility with `stepByStepReport` by **[tsuemura](https://github.com/tsuemura)**
|
|
1428
|
-
* **[WebDriver]** Fixed `grabHTMLFrom` to return innerHTML value by **[Holorium](https://github.com/Holorium)**. Fixed compatibility with WebDriverIO.
|
|
1429
|
-
* **[WebDriver]** `grabHTMLFrom` to return one HTML vlaue for one element matched, array if multiple elements found by **[davertmik](https://github.com/davertmik)**.
|
|
1430
|
-
* **[Nightmare]** Added `grabHTMLFrom` by **[davertmik](https://github.com/davertmik)**
|
|
1431
|
-
* Fixed `bootstrapAll` and `teardownAll` launch with path as argument by **[LukoyanovE](https://github.com/LukoyanovE)**
|
|
1432
|
-
* Fixed `bootstrapAll` and `teardownAll` calls from exported object by **[LukoyanovE](https://github.com/LukoyanovE)**
|
|
1433
|
-
* **[WebDriver]** Added possibility to define conditional checks interval for `waitUntil` by **[LukoyanovE](https://github.com/LukoyanovE)**
|
|
1434
|
-
* Fixed storing current data in data driven tests in a test object. By **[Vorobeyko](https://github.com/Vorobeyko)**
|
|
1435
|
-
* **[WebDriver]** Fixed `hostname` config option overwrite when setting a cloud provider. By **[LukoyanovE](https://github.com/LukoyanovE)**
|
|
1436
|
-
* **[WebDriver]** `dragSlider` method implemented by **[DavertMik](https://github.com/DavertMik)**
|
|
1437
|
-
* **[WebDrover]** Fixed `scrollTo` to use new webdriverio API by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
1438
|
-
* Added Japanese translation file by **[tsemura](https://github.com/tsemura)**
|
|
1439
|
-
* Added `Locator.withDescendant()` method to find an element which contains a descendant (child, grandchild) by **[Vorobeyko](https://github.com/Vorobeyko)**
|
|
1440
|
-
* **[WebDriver]** Fixed configuring capabilities for Selenoid and IE by **[Vorobeyko](https://github.com/Vorobeyko)**
|
|
1441
|
-
* **[WebDriver]** Restore original window size when taking full size screenshot by **[tsuemura](https://github.com/tsuemura)**
|
|
1442
|
-
* Enabled `throws()`,` fails()`, `retry()`, `timeout()`, `config()` functions for data driven tests. By **[jjm409](https://github.com/jjm409)**
|
|
1443
|
-
|
|
1444
|
-
## 2.0.5
|
|
1445
|
-
|
|
1446
|
-
[Broken Release]
|
|
1447
|
-
|
|
1448
|
-
## 2.0.4
|
|
1449
|
-
|
|
1450
|
-
* [WebDriver][Protractor][Nightmare][Puppeteer] `grabAttributeFrom` returns an array when multiple elements matched. By **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
1451
|
-
* [autoLogin plugin] Fixed merging users config by **[nealfennimore](https://github.com/nealfennimore)**
|
|
1452
|
-
* [autoDelay plugin] Added WebDriver to list of supported helpers by **[mattin4d](https://github.com/mattin4d)**
|
|
1453
|
-
* **[Appium]** Fixed using locators in `waitForElement`, `waitForVisible`, `waitForInvisible`. By **[eduardofinotti](https://github.com/eduardofinotti)**
|
|
1454
|
-
* [allure plugin] Add tags to allure reports by **[Vorobeyko](https://github.com/Vorobeyko)**
|
|
1455
|
-
* [allure plugin] Add skipped tests to allure reports by **[Vorobeyko](https://github.com/Vorobeyko)**
|
|
1456
|
-
* Fixed `Logged Test name | [object Object]` when used Data().Scenario(). By **[Vorobeyko](https://github.com/Vorobeyko)**
|
|
1457
|
-
* Fixed Data().only.Scenario() to run for all datasets. By **[Vorobeyko](https://github.com/Vorobeyko)**
|
|
1458
|
-
* **[WebDriver]** `attachFile` to work with hidden elements. Fixed in [#1460](https://github.com/codeceptjs/CodeceptJS/issues/1460) by **[tsuemura](https://github.com/tsuemura)**
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
## 2.0.3
|
|
1463
|
-
|
|
1464
|
-
* [**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.
|
|
1465
|
-
* Fixed `Maximum stack trace` issue in `retryFailedStep` plugin.
|
|
1466
|
-
* Added `locate()` function into the interactive shell.
|
|
1467
|
-
* **[WebDriver]** Disabled smartWait for interactive shell.
|
|
1468
|
-
* **[Appium]** Updated methods to use for mobile locators
|
|
1469
|
-
* `waitForElement`
|
|
1470
|
-
* `waitForVisible`
|
|
1471
|
-
* `waitForInvisible`
|
|
1472
|
-
* Helper and page object generators no longer update config automatically. Please add your page objects and helpers manually.
|
|
1473
|
-
|
|
1474
|
-
## 2.0.2
|
|
1475
|
-
|
|
1476
|
-
* **[Puppeteer]** Improved handling of connection with remote browser using Puppeteer by **[martomo](https://github.com/martomo)**
|
|
1477
|
-
* **[WebDriver]** Updated to webdriverio 5.2.2 by **[martomo](https://github.com/martomo)**
|
|
1478
|
-
* Interactive pause improvements by **[davertmik](https://github.com/davertmik)**
|
|
1479
|
-
* Disable retryFailedStep plugin in in interactive mode
|
|
1480
|
-
* Removes `Interface: parseInput` while in interactive pause
|
|
1481
|
-
* **[ApiDataFactory]** Improvements
|
|
1482
|
-
* added `fetchId` config option to override id retrieval from payload
|
|
1483
|
-
* added `onRequest` config option to update request in realtime
|
|
1484
|
-
* added `returnId` config option to return ids of created items instead of items themvelves
|
|
1485
|
-
* added `headers` config option to override default headers.
|
|
1486
|
-
* added a new chapter into [DataManagement](https://codecept.io/data#api-requests-using-browser-session)
|
|
1487
|
-
* **[REST]** Added `onRequest` config option
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
## 2.0.1
|
|
1491
|
-
|
|
1492
|
-
* Fixed creating project with `codecept init`.
|
|
1493
|
-
* Fixed error while installing webdriverio@5.
|
|
1494
|
-
* Added code beautifier for generated configs.
|
|
1495
|
-
* **[WebDriver]** Updated to webdriverio 5.1.0
|
|
1496
|
-
|
|
1497
|
-
## 2.0.0
|
|
1498
|
-
|
|
1499
|
-
* **[WebDriver]** **Breaking Change.** Updated to webdriverio v5. New helper **WebDriver** helper introduced.
|
|
1500
|
-
|
|
1501
|
-
* **Upgrade plan**:
|
|
1502
|
-
|
|
1503
|
-
1. Install latest webdriverio
|
|
1504
|
-
```
|
|
1505
|
-
npm install webdriverio@5 --save
|
|
1506
|
-
```
|
|
1507
|
-
|
|
1508
|
-
2. Replace `WebDriverIO` => `WebDriver` helper name in config.
|
|
1509
|
-
3. Read [webdriverio changelog](https://github.com/webdriverio/webdriverio/blob/master/CHANGELOG.md). If you were using webdriver API in your helpers, upgrade accordingly.
|
|
1510
|
-
4. We made WebDriver helper to be compatible with old API so no additional changes required.
|
|
1511
|
-
|
|
1512
|
-
> If you face issues using webdriverio v5 you can still use webdriverio 4.x and WebDriverIO helper. Make sure you have `webdriverio: ^4.0` installed.
|
|
1513
|
-
|
|
1514
|
-
* Known issues: `attachFile` doesn't work with proxy server.
|
|
1515
|
-
|
|
1516
|
-
* **[Appium]** **Breaking Change.** Updated to use webdriverio v5 as well. See upgrade plan ↑
|
|
1517
|
-
* **[REST]** **Breaking Change.** Replaced `unirest` library with `axios`.
|
|
1518
|
-
|
|
1519
|
-
* **Upgrade plan**:
|
|
1520
|
-
|
|
1521
|
-
1. Refer to [axios API](https://github.com/axios/axios).
|
|
1522
|
-
2. If you were using `unirest` requests/responses in your tests change them to axios format.
|
|
1523
|
-
* **Breaking Change.** Generators support in tests removed. Use `async/await` in your tests
|
|
1524
|
-
* **Using `codecept.conf.js` as default configuration format**
|
|
1525
|
-
* Fixed "enametoolong" error when saving screenshots for data driven tests by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
1526
|
-
* Updated NodeJS to 10 in Docker image
|
|
1527
|
-
* **[Pupeteer]** Add support to use WSEndpoint. Allows to execute tests remotely. [See [#1350](https://github.com/codeceptjs/CodeceptJS/issues/1350)] by **[gabrielcaires](https://github.com/gabrielcaires)** (https://github.com/codeceptjs/CodeceptJS/pull/1350)
|
|
1528
|
-
* In interactive shell **[Enter]** goes to next step. Improvement by **[PeterNgTr](https://github.com/PeterNgTr)**.
|
|
1529
|
-
* `I.say` accepts second parameter as color to print colorful comments. Improvement by **[PeterNgTr](https://github.com/PeterNgTr)**.
|
|
1530
|
-
|
|
1531
|
-
```js
|
|
1532
|
-
I.say('This is red', 'red'); //red is used
|
|
1533
|
-
I.say('This is blue', 'blue'); //blue is used
|
|
1534
|
-
I.say('This is by default'); //cyan is used
|
|
1535
|
-
```
|
|
1536
|
-
* Fixed allure reports for multi session testing by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
1537
|
-
* Fixed allure reports for hooks by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
1538
|
-
|
|
1539
|
-
## 1.4.6
|
|
1540
|
-
|
|
1541
|
-
* **[Puppeteer]** `dragSlider` action added by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
1542
|
-
* **[Puppeteer]** Fixed opening browser in shell mode by **[allenhwkim](https://github.com/allenhwkim)**
|
|
1543
|
-
* **[Puppeteer]** Fixed making screenshot on additional sessions by **[PeterNgTr](https://github.com/PeterNgTr)**. Fixes [#1266](https://github.com/codeceptjs/CodeceptJS/issues/1266)
|
|
1544
|
-
* Added `--invert` option to `run-multiple` command by **[LukoyanovE](https://github.com/LukoyanovE)**
|
|
1545
|
-
* Fixed steps in Allure reports by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
1546
|
-
* Add option `output` to customize output directory in [stepByStepReport plugin](https://codecept.io/plugins/#stepbystepreport). By **[fpsthirty](https://github.com/fpsthirty)**
|
|
1547
|
-
* Changed type definition of PageObjects to get auto completion by **[rhicu](https://github.com/rhicu)**
|
|
1548
|
-
* Fixed steps output for async/arrow functions in CLI by **[LukoyanovE](https://github.com/LukoyanovE)**. See [#1329](https://github.com/codeceptjs/CodeceptJS/issues/1329)
|
|
1549
|
-
|
|
1550
|
-
## 1.4.5
|
|
1551
|
-
|
|
1552
|
-
* Add **require** param to main config. Allows to require Node modules before executing tests. By **[LukoyanovE](https://github.com/LukoyanovE)**. For example:
|
|
1553
|
-
* Use `ts-node/register` to register TypeScript parser
|
|
1554
|
-
* Use `should` to register should-style assertions
|
|
1555
|
-
|
|
1556
|
-
```js
|
|
1557
|
-
"require": ["ts-node/register", "should"]
|
|
1558
|
-
```
|
|
1559
|
-
|
|
1560
|
-
* **[WebDriverIO]** Fix timeouts definition to be compatible with W3C drivers. By **[LukoyanovE](https://github.com/LukoyanovE)**
|
|
1561
|
-
* Fixed: exception in Before block w/ Mocha causes test not to report failure. See [#1292](https://github.com/codeceptjs/CodeceptJS/issues/1292) by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
1562
|
-
* Command `run-parallel` now accepts `--override` flag. Thanks to **[ClemCB](https://github.com/ClemCB)**
|
|
1563
|
-
* Fixed Allure report with Before/BeforeSuite/After/AfterSuite steps. By **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
1564
|
-
* 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)**
|
|
1565
|
-
* **[Mochawesome]** Fixed showing screenshot on failure. Fix by **[PeterNgTr](https://github.com/PeterNgTr)**
|
|
1566
|
-
* Fixed running tests filtering by tag names defined via `Scenario.tag()`
|
|
1567
|
-
|
|
1568
|
-
## 1.4.4
|
|
1569
|
-
|
|
1570
|
-
* [autoDelay plugin](https://codecept.io/plugins/#autoDelay) added. Adds tiny delay before and after an action so the page could react to actions performed.
|
|
1571
|
-
* **[Puppeteer]** improvements by **[luismanuel001](https://github.com/luismanuel001)**
|
|
1572
|
-
* `click` no longer waits for navigation
|
|
1573
|
-
* `clickLink` method added. Performs a click and waits for navigation.
|
|
1574
|
-
* Bootstrap scripts to be started only for `run` command and ignored on `list`, `def`, etc. Fix by **[LukoyanovE](https://github.com/LukoyanovE)**
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
## 1.4.3
|
|
1578
|
-
|
|
1579
|
-
* Groups renamed to Tags for compatibility with BDD layer
|
|
1580
|
-
* Test and suite objects to contain tags property which can be accessed from internal API
|
|
1581
|
-
* Fixed adding tags for Scenario Outline in BDD
|
|
1582
|
-
* Added `tag()` method to ScenarioConfig and FeatureConfig:
|
|
1583
|
-
|
|
1584
|
-
```js
|
|
1585
|
-
Scenario('update user profile', () => {
|
|
1586
|
-
// test goes here
|
|
1587
|
-
}).tag('@slow');
|
|
1588
|
-
```
|
|
1589
|
-
|
|
1590
|
-
* Fixed attaching Allure screenshot on exception. Fix by **[DevinWatson](https://github.com/DevinWatson)**
|
|
1591
|
-
* Improved type definitions for custom steps. By **[Akxe](https://github.com/Akxe)**
|
|
1592
|
-
* Fixed setting `multiple.parallel.chunks` as environment variable in config. See [#1238](https://github.com/codeceptjs/CodeceptJS/issues/1238) by **[ngadiyak](https://github.com/ngadiyak)**
|
|
1593
|
-
|
|
1594
|
-
## 1.4.2
|
|
1595
|
-
|
|
1596
|
-
* Fixed setting config for plugins (inclunding setting `outputDir` for allure) by **[jplegoff](https://github.com/jplegoff)**
|
|
1597
|
-
|
|
1598
|
-
## 1.4.1
|
|
1599
|
-
|
|
1600
|
-
* Added `plugins` option to `run-multiple`
|
|
1601
|
-
* Minor output fixes
|
|
1602
|
-
* Added Type Definition for Helper class by **[Akxe](https://github.com/Akxe)**
|
|
1603
|
-
* Fixed extracing devault extension in generators by **[Akxe](https://github.com/Akxe)**
|
|
1604
|
-
|
|
1605
|
-
## 1.4.0
|
|
1606
|
-
|
|
1607
|
-
* [**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.
|
|
1608
|
-
* [Plugins API introduced](https://codecept.io/hooks/#plugins). Create custom plugins for CodeceptJS by hooking into event dispatcher, and using promise recorder.
|
|
1609
|
-
* **Official [CodeceptJS plugins](https://codecept.io/plugins) added**:
|
|
1610
|
-
* **`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.
|
|
1611
|
-
* `allure` - Allure reporter added as plugin.
|
|
1612
|
-
* `screenshotOnFail` - saves screenshot on fail. Replaces similar functionality from helpers.
|
|
1613
|
-
* `retryFailedStep` - to rerun each failed step.
|
|
1614
|
-
* **[Puppeteer]** Fix `executeAsyncScript` unexpected token by **[jonathanz](https://github.com/jonathanz)**
|
|
1615
|
-
* Added `override` option to `run-multiple` command by **[svarlet](https://github.com/svarlet)**
|
|
1616
|
-
|
|
1617
|
-
## 1.3.3
|
|
1618
|
-
|
|
1619
|
-
* Added `initGlobals()` function to API of [custom runner](https://codecept.io/hooks/#custom-runner).
|
|
1620
|
-
|
|
1621
|
-
## 1.3.2
|
|
1622
|
-
|
|
1623
|
-
* Interactve Shell improvements for `pause()`
|
|
1624
|
-
* Added `next` command for **step-by-step debug** when using `pause()`.
|
|
1625
|
-
* Use `After(pause);` in a to start interactive console after last step.
|
|
1626
|
-
* **[Puppeteer]** Updated to Puppeteer 1.6.0
|
|
1627
|
-
* Added `waitForRequest` to wait for network request.
|
|
1628
|
-
* Added `waitForResponse` to wait for network response.
|
|
1629
|
-
* Improved TypeScript definitions to support custom steps and page objects. By **[xt1](https://github.com/xt1)**
|
|
1630
|
-
* Fixed XPath detection to accept XPath which starts with `./` by **[BenoitZugmeyer](https://github.com/BenoitZugmeyer)**
|
|
1631
|
-
|
|
1632
|
-
## 1.3.1
|
|
1633
|
-
|
|
1634
|
-
* BDD-Gherkin: Fixed running async steps.
|
|
1635
|
-
* **[Puppeteer]** Fixed process hanging for 30 seconds. Page loading timeout default via `getPageTimeout` set 0 seconds.
|
|
1636
|
-
* **[Puppeteer]** Improved displaying client-side console messages in debug mode.
|
|
1637
|
-
* **[Puppeteer]** Fixed closing sessions in `restart:false` mode for multi-session mode.
|
|
1638
|
-
* **[Protractor]** Fixed `grabPopupText` to not throw error popup is not opened.
|
|
1639
|
-
* **[Protractor]** Added info on using 'direct' Protractor driver to helper documentation by **[xt1](https://github.com/xt1)**.
|
|
1640
|
-
* **[WebDriverIO]** Added a list of all special keys to WebDriverIO helper by **[davertmik](https://github.com/davertmik)** and **[xt1](https://github.com/xt1)**.
|
|
1641
|
-
* Improved TypeScript definitions generator by **[xt1](https://github.com/xt1)**
|
|
1642
|
-
|
|
1643
|
-
## 1.3.0
|
|
1644
|
-
|
|
1645
|
-
* **Cucumber-style BDD. Introduced [Gherkin support](https://codecept.io/bdd). Thanks to [David Vins](https://github.com/dvins) and [Omedym](https://www.omedym.com) for sponsoring this feature**.
|
|
1646
|
-
|
|
1647
|
-
Basic feature file:
|
|
1648
|
-
|
|
1649
|
-
```gherkin
|
|
1650
|
-
Feature: Business rules
|
|
1651
|
-
In order to achieve my goals
|
|
1652
|
-
As a persona
|
|
1653
|
-
I want to be able to interact with a system
|
|
1654
|
-
|
|
1655
|
-
Scenario: do anything in my life
|
|
1656
|
-
Given I need to open Google
|
|
1657
|
-
```
|
|
1658
|
-
|
|
1659
|
-
Step definition:
|
|
1660
|
-
|
|
1661
|
-
```js
|
|
1662
|
-
const I = actor();
|
|
1663
|
-
|
|
1664
|
-
Given('I need to open Google', () => {
|
|
1665
|
-
I.amOnPage('https://google.com');
|
|
1666
|
-
});
|
|
1667
|
-
```
|
|
1668
|
-
|
|
1669
|
-
Run it with `--features --steps` flag:
|
|
1670
|
-
|
|
1671
|
-
```
|
|
1672
|
-
codeceptjs run --steps --features
|
|
1673
|
-
```
|
|
1674
|
-
|
|
1675
|
-
---
|
|
1676
|
-
|
|
1677
|
-
* **Brekaing Chnage** `run` command now uses relative path + test name to run exactly one test file.
|
|
1678
|
-
|
|
1679
|
-
Previous behavior (removed):
|
|
1680
|
-
```
|
|
1681
|
-
codeceptjs run basic_test.js
|
|
1682
|
-
```
|
|
1683
|
-
Current behavior (relative path to config + a test name)
|
|
1684
|
-
|
|
1685
|
-
```
|
|
1686
|
-
codeceptjs run tests/basic_test.js
|
|
1687
|
-
```
|
|
1688
|
-
This change allows using auto-completion when running a specific test.
|
|
1689
|
-
|
|
1690
|
-
---
|
|
1691
|
-
|
|
1692
|
-
* Nested steps output enabled for page objects.
|
|
1693
|
-
* to see high-level steps only run tests with `--steps` flag.
|
|
1694
|
-
* to see PageObjects implementation run tests with `--debug`.
|
|
1695
|
-
* PageObjects simplified to remove `_init()` extra method. Try updated generators and see [updated guide](https://codecept.io/pageobjects/#pageobject).
|
|
1696
|
-
* **[Puppeteer]** [Multiple sessions](https://codecept.io/acceptance/#multiple-sessions) enabled. Requires Puppeteer >= 1.5
|
|
1697
|
-
* **[Puppeteer]** Stability improvement. Waits for for `load` event on page load. This strategy can be changed in config:
|
|
1698
|
-
* `waitForNavigation` config option introduced. Possible options: `load`, `domcontentloaded`, `networkidle0`, `networkidle2`. See [Puppeteer API](https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pagewaitfornavigationoptions)
|
|
1699
|
-
* `getPageTimeout` config option to set maximum navigation time in milliseconds. Default is 30 seconds.
|
|
1700
|
-
* `waitForNavigation` method added. Explicitly waits for navigation to be finished.
|
|
1701
|
-
* [WebDriverIO][Protractor][Puppeteer][Nightmare] **Possible BC** `grabTextFrom` unified. Return a text for single matched element and an array of texts for multiple elements.
|
|
1702
|
-
* [Puppeteer]Fixed `resizeWindow` by **[sergejkaravajnij](https://github.com/sergejkaravajnij)**
|
|
1703
|
-
* [WebDriverIO][Protractor][Puppeteer][Nightmare] `waitForFunction` added. Waits for client-side JavaScript function to return true by **[GREENpoint](https://github.com/GREENpoint)**.
|
|
1704
|
-
* **[Puppeteer]** `waitUntil` deprecated in favor of `waitForFunction`.
|
|
1705
|
-
* Added `filter` function to DataTable.
|
|
1706
|
-
* Send non-nested array of files to custom parallel execution chunking by **[mikecbrant](https://github.com/mikecbrant)**.
|
|
1707
|
-
* Fixed invalid output directory path for run-multiple by **[mikecbrant](https://github.com/mikecbrant)**.
|
|
1708
|
-
* **[WebDriverIO]** `waitUntil` timeout accepts time in seconds (as all other wait* functions). Fix by **[truesrc](https://github.com/truesrc)**.
|
|
1709
|
-
* **[Nightmare]** Fixed `grabNumberOfVisibleElements` to work similarly to `seeElement`. Thx to **[stefanschenk](https://github.com/stefanschenk)** and Jinbo Jinboson.
|
|
1710
|
-
* **[Protractor]** Fixed alert handling error with message 'no such alert' by **[truesrc](https://github.com/truesrc)**.
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
## 1.2.1
|
|
1714
|
-
|
|
1715
|
-
* Fixed running `I.retry()` on multiple steps.
|
|
1716
|
-
* Fixed parallel execution wih chunks.
|
|
1717
|
-
* **[Puppeteer]** Fixed `grabNumberOfVisibleElements` to return `0` instead of throwing error if no elements are found.
|
|
1718
|
-
|
|
1719
|
-
## 1.2.0
|
|
1720
|
-
|
|
1721
|
-
* [WebDriverIO][Protractor][Multiple Sessions](https://codecept.io/acceptance/#multiple-sessions). Run several browser sessions in one test. Introduced `session` command, which opens additional browser window and closes it after a test.
|
|
1722
|
-
|
|
1723
|
-
```js
|
|
1724
|
-
Scenario('run in different browsers', (I) => {
|
|
1725
|
-
I.amOnPage('/hello');
|
|
1726
|
-
I.see('Hello!');
|
|
1727
|
-
session('john', () => {
|
|
1728
|
-
I.amOnPage('/bye');
|
|
1729
|
-
I.dontSee('Hello');
|
|
1730
|
-
I.see('Bye');
|
|
1731
|
-
});
|
|
1732
|
-
I.see('Hello');
|
|
1733
|
-
});
|
|
1734
|
-
```
|
|
1735
|
-
|
|
1736
|
-
* [Parallel Execution](https://codecept.io/advanced/#parallel-execution) by **[sveneisenschmidt](https://github.com/sveneisenschmidt)**. Run tests in parallel specifying number of chunks:
|
|
1737
|
-
|
|
1738
|
-
```js
|
|
1739
|
-
"multiple": {
|
|
1740
|
-
"parallel": {
|
|
1741
|
-
// run in 2 processes
|
|
1742
|
-
"chunks": 2,
|
|
1743
|
-
// run all tests in chrome
|
|
1744
|
-
"browsers": ["chrome"]
|
|
1745
|
-
},
|
|
1746
|
-
}
|
|
1747
|
-
```
|
|
1748
|
-
|
|
1749
|
-
* [Locator Builder](https://codecept.io/locators). Write complex locators with simplest API combining CSS and XPath:
|
|
1750
|
-
|
|
1751
|
-
```js
|
|
1752
|
-
// select 'Edit' link inside 2nd row of a table
|
|
1753
|
-
locate('//table')
|
|
1754
|
-
.find('tr')
|
|
1755
|
-
.at(2)
|
|
1756
|
-
.find('a')
|
|
1757
|
-
.withText('Edit');
|
|
1758
|
-
```
|
|
1759
|
-
|
|
1760
|
-
* [Dynamic configuration](https://codecept.io/advanced/#dynamic-configuration) to update helpers config per test or per suite.
|
|
1761
|
-
* Added `event.test.finished` which fires synchronously for both failed and passed tests.
|
|
1762
|
-
* [WebDriverIO][Protractor][Nightmare][Puppeteer] Full page screenshots on failure disabled by default. See [issue[#1600](https://github.com/codeceptjs/CodeceptJS/issues/1600). You can enabled them with `fullPageScreenshots: true`, however they may work unstable in Selenium.
|
|
1763
|
-
* `within` blocks can return values. See [updated documentation](https://codecept.io/basics/#within).
|
|
1764
|
-
* Removed doublt call to `_init` in helpers. Fixes issue [#1036](https://github.com/codeceptjs/CodeceptJS/issues/1036)
|
|
1765
|
-
* Added scenario and feature configuration via fluent API:
|
|
1766
|
-
|
|
1767
|
-
```js
|
|
1768
|
-
Feature('checkout')
|
|
1769
|
-
.timeout(3000)
|
|
1770
|
-
.retry(2);
|
|
1771
|
-
|
|
1772
|
-
Scenario('user can order in firefox', (I) => {
|
|
1773
|
-
// see dynamic configuration
|
|
1774
|
-
}).config({ browser: 'firefox' })
|
|
1775
|
-
.timeout(20000);
|
|
1776
|
-
|
|
1777
|
-
Scenario('this test should throw error', (I) => {
|
|
1778
|
-
// I.amOnPage
|
|
1779
|
-
}).throws(new Error);
|
|
1780
|
-
```
|
|
1781
|
-
|
|
1782
|
-
## 1.1.8
|
|
1783
|
-
|
|
1784
|
-
* Fixed generating TypeScript definitions with `codeceptjs def`.
|
|
1785
|
-
* Added Chinese translation ("zh-CN" and "zh-TW") by **[TechQuery](https://github.com/TechQuery)**.
|
|
1786
|
-
* Fixed running tests from a different folder specified by `-c` option.
|
|
1787
|
-
* **[Puppeteer]** Added support for hash handling in URL by **[gavoja](https://github.com/gavoja)**.
|
|
1788
|
-
* **[Puppeteer]** Fixed setting viewport size by **[gavoja](https://github.com/gavoja)**. See [Puppeteer issue](https://github.com/GoogleChrome/puppeteer/issues/1183)
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
## 1.1.7
|
|
1792
|
-
|
|
1793
|
-
* Docker Image updateed. [See updated reference](https://codecept.io/docker/):
|
|
1794
|
-
* codeceptjs package is mounted as `/codecept` insde container
|
|
1795
|
-
* tests directory is expected to be mounted as `/tests`
|
|
1796
|
-
* `codeceptjs` global runner added (symlink to `/codecept/bin/codecept.js`)
|
|
1797
|
-
* **[Protractor]** Functions added by **[reubenmiller](https://github.com/reubenmiller)**:
|
|
1798
|
-
* `_locateCheckable (only available from other helpers)`
|
|
1799
|
-
* `_locateClickable (only available from other helpers)`
|
|
1800
|
-
* `_locateFields (only available from other helpers)`
|
|
1801
|
-
* `acceptPopup`
|
|
1802
|
-
* `cancelPopup`
|
|
1803
|
-
* `dragAndDrop`
|
|
1804
|
-
* `grabBrowserLogs`
|
|
1805
|
-
* `grabCssPropertyFrom`
|
|
1806
|
-
* `grabHTMLFrom`
|
|
1807
|
-
* `grabNumberOfVisibleElements`
|
|
1808
|
-
* `grabPageScrollPosition (new)`
|
|
1809
|
-
* `rightClick`
|
|
1810
|
-
* `scrollPageToBottom`
|
|
1811
|
-
* `scrollPageToTop`
|
|
1812
|
-
* `scrollTo`
|
|
1813
|
-
* `seeAttributesOnElements`
|
|
1814
|
-
* `seeCssPropertiesOnElements`
|
|
1815
|
-
* `seeInPopup`
|
|
1816
|
-
* `seeNumberOfVisibleElements`
|
|
1817
|
-
* `switchTo`
|
|
1818
|
-
* `waitForEnabled`
|
|
1819
|
-
* `waitForValue`
|
|
1820
|
-
* `waitInUrl`
|
|
1821
|
-
* `waitNumberOfVisibleElements`
|
|
1822
|
-
* `waitToHide`
|
|
1823
|
-
* `waitUntil`
|
|
1824
|
-
* `waitUrlEquals`
|
|
1825
|
-
* **[Nightmare]** added:
|
|
1826
|
-
* `grabPageScrollPosition` (new)
|
|
1827
|
-
* `seeNumberOfVisibleElements`
|
|
1828
|
-
* `waitToHide`
|
|
1829
|
-
* **[Puppeteer]** added:
|
|
1830
|
-
* `grabPageScrollPosition` (new)
|
|
1831
|
-
* **[WebDriverIO]** added"
|
|
1832
|
-
* `grabPageScrollPosition` (new)
|
|
1833
|
-
* **[Puppeteer]** Fixed running wait* functions without setting `sec` parameter.
|
|
1834
|
-
* [Puppeteer][Protractor] Fixed bug with I.click when using an object selector with the xpath property. By **[reubenmiller](https://github.com/reubenmiller)**
|
|
1835
|
-
* [WebDriverIO][Protractor][Nightmare][Puppeteer] Fixed I.switchTo(0) and I.scrollTo(100, 100) api inconsistencies between helpers.
|
|
1836
|
-
* **[Protractor]** Fixing bug when `seeAttributesOnElements` and `seeCssPropertiesOnElement` were incorrectly passing when the attributes/properties did not match by **[reubenmiller](https://github.com/reubenmiller)**
|
|
1837
|
-
* **[WebDriverIO]** Use inbuilt dragAndDrop function (still doesn't work in Firefox). By **[reubenmiller](https://github.com/reubenmiller)**
|
|
1838
|
-
* Support for Nightmare 3.0
|
|
1839
|
-
* Enable glob patterns in `config.test` / `Codecept.loadTests` by **[sveneisenschmidt](https://github.com/sveneisenschmidt)**
|
|
1840
|
-
* Enable overriding of `config.tests` for `run-multiple` by **[sveneisenschmidt](https://github.com/sveneisenschmidt)**
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
## 1.1.6
|
|
1844
|
-
|
|
1845
|
-
* Added support for `async I =>` functions syntax in Scenario by **[APshenkin](https://github.com/APshenkin)**
|
|
1846
|
-
* [WebDriverIO][Protractor][Puppeteer][Nightmare] `waitForInvisible` waits for element to hide or to be removed from page. By **[reubenmiller](https://github.com/reubenmiller)**
|
|
1847
|
-
* [Protractor][Puppeteer][Nightmare] Added `grabCurrentUrl` function. By **[reubenmiller](https://github.com/reubenmiller)**
|
|
1848
|
-
* **[WebDriverIO]** `grabBrowserUrl` deprecated in favor of `grabCurrentUrl` to unify the API.
|
|
1849
|
-
* **[Nightmare]** Improved element visibility detection by **[reubenmiller](https://github.com/reubenmiller)**
|
|
1850
|
-
* **[Puppeteer]** Fixing function calls when clearing the cookies and localstorage. By **[reubenmiller](https://github.com/reubenmiller)**
|
|
1851
|
-
* **[Puppeteer]** Added `waitForEnabled`, `waitForValue` and `waitNumberOfVisibleElements` methods by **[reubenmiller](https://github.com/reubenmiller)**
|
|
1852
|
-
* **[WebDriverIO]** Fixed `grabNumberOfVisibleElements` to return 0 when no visible elements are on page. By **[michaltrunek](https://github.com/michaltrunek)**
|
|
1853
|
-
* Helpers API improvements (by **[reubenmiller](https://github.com/reubenmiller)**)
|
|
1854
|
-
* `_passed` hook runs after a test passed successfully
|
|
1855
|
-
* `_failed` hook runs on a failed test
|
|
1856
|
-
* Hooks API. New events added by **[reubenmiller](https://github.com/reubenmiller)**:
|
|
1857
|
-
* `event.all.before` - executed before all tests
|
|
1858
|
-
* `event.all.after` - executed after all tests
|
|
1859
|
-
* `event.multiple.before` - executed before all processes in run-multiple
|
|
1860
|
-
* `event.multiple.after` - executed after all processes in run-multiple
|
|
1861
|
-
* Multiple execution
|
|
1862
|
-
* Allow `AfterSuite` and `After` test hooks to be defined after the first Scenario. By **[reubenmiller](https://github.com/reubenmiller)**
|
|
1863
|
-
* **[Nightmare]** Prevent `I.amOnpage` navigation if the browser is already at the given url
|
|
1864
|
-
* Multiple-Run: Added new `bootstrapAll` and `teardownAll` hooks to be executed before and after all processes
|
|
1865
|
-
* `codeceptjs def` command accepts `--config` option. By **[reubenmiller](https://github.com/reubenmiller)**
|
|
1866
|
-
|
|
1867
|
-
## 1.1.5
|
|
1868
|
-
|
|
1869
|
-
* **[Puppeteer]** Rerun steps failed due to "Cannot find context with specified id" Error.
|
|
1870
|
-
* Added syntax to retry a single step:
|
|
1871
|
-
|
|
1872
|
-
```js
|
|
1873
|
-
// retry action once on failure
|
|
1874
|
-
I.retry().see('Hello');
|
|
1875
|
-
|
|
1876
|
-
// retry action 3 times on failure
|
|
1877
|
-
I.retry(3).see('Hello');
|
|
1878
|
-
|
|
1879
|
-
// retry action 3 times waiting for 0.1 second before next try
|
|
1880
|
-
I.retry({ retries: 3, minTimeout: 100 }).see('Hello');
|
|
1881
|
-
|
|
1882
|
-
// retry action 3 times waiting no more than 3 seconds for last retry
|
|
1883
|
-
I.retry({ retries: 3, maxTimeout: 3000 }).see('Hello');
|
|
1884
|
-
|
|
1885
|
-
// retry 2 times if error with message 'Node not visible' happens
|
|
1886
|
-
I.retry({
|
|
1887
|
-
retries: 2,
|
|
1888
|
-
when: err => err.message === 'Node not visible'
|
|
1889
|
-
}).seeElement('#user');
|
|
1890
|
-
```
|
|
1891
|
-
|
|
1892
|
-
* `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).
|
|
1893
|
-
* Fixed using async/await functions inside `within`
|
|
1894
|
-
* [WebDriverIO][Protractor][Puppeteer][Nightmare] **`waitUntilExists` deprecated** in favor of `waitForElement`
|
|
1895
|
-
* [WebDriverIO][Protractor] **`waitForStalenessOf` deprecated** in favor of `waitForDetached`
|
|
1896
|
-
* [WebDriverIO][Protractor][Puppeteer][Nightmare] `waitForDetached` added
|
|
1897
|
-
* **[Nightmare]** Added `I.seeNumberOfElements()` by **[pmoncadaisla](https://github.com/pmoncadaisla)**
|
|
1898
|
-
* **[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)**
|
|
1899
|
-
* Fixed using plain arrays for data driven tests by **[reubenmiller](https://github.com/reubenmiller)**
|
|
1900
|
-
* **[Puppeteer]** Use default tab instead of opening a new tab when starting the browser by **[reubenmiller](https://github.com/reubenmiller)**
|
|
1901
|
-
* **[Puppeteer]** Added `grabNumberOfTabs` function by **[reubenmiller](https://github.com/reubenmiller)**
|
|
1902
|
-
* **[Puppeteer]** Add ability to set user-agent by **[abidhahmed](https://github.com/abidhahmed)**
|
|
1903
|
-
* **[Puppeteer]** Add keepCookies and keepBrowserState **[abidhahmed](https://github.com/abidhahmed)**
|
|
1904
|
-
* **[Puppeteer]** Clear value attribute instead of innerhtml for TEXTAREA by **[reubenmiller](https://github.com/reubenmiller)**
|
|
1905
|
-
* **[REST]** fixed sending string payload by **[michaltrunek](https://github.com/michaltrunek)**
|
|
1906
|
-
* Fixed unhandled rejection in async/await tests by **[APshenkin](https://github.com/APshenkin)**
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
## 1.1.4
|
|
1910
|
-
|
|
1911
|
-
* Removed `yarn` call in package.json
|
|
1912
|
-
* Fixed `console.log` in Puppeteer by **[othree](https://github.com/othree)**
|
|
1913
|
-
* **[Appium]** `runOnAndroid` and `runOnIOS` can receive a function to check capabilities dynamically:
|
|
1914
|
-
|
|
1915
|
-
```js
|
|
1916
|
-
I.runOnAndroid(caps => caps.platformVersion >= 7, () => {
|
|
1917
|
-
// run code only on Android 7+
|
|
1918
|
-
});
|
|
1919
|
-
```
|
|
1920
|
-
|
|
1921
|
-
## 1.1.3
|
|
1922
|
-
|
|
1923
|
-
* **[Puppeteer]** +25 Functions added by **[reubenmiller](https://github.com/reubenmiller)**
|
|
1924
|
-
* `_locateCheckable`
|
|
1925
|
-
* `_locateClickable`
|
|
1926
|
-
* `_locateFields`
|
|
1927
|
-
* `closeOtherTabs`
|
|
1928
|
-
* `dragAndDrop`
|
|
1929
|
-
* `grabBrowserLogs`
|
|
1930
|
-
* `grabCssPropertyFrom`
|
|
1931
|
-
* `grabHTMLFrom`
|
|
1932
|
-
* `grabNumberOfVisibleElements`
|
|
1933
|
-
* `grabSource`
|
|
1934
|
-
* `rightClick`
|
|
1935
|
-
* `scrollPageToBottom`
|
|
1936
|
-
* `scrollPageToTop`
|
|
1937
|
-
* `scrollTo`
|
|
1938
|
-
* `seeAttributesOnElements`
|
|
1939
|
-
* `seeCssPropertiesOnElements`
|
|
1940
|
-
* `seeInField`
|
|
1941
|
-
* `seeNumberOfElements`
|
|
1942
|
-
* `seeNumberOfVisibleElements`
|
|
1943
|
-
* `seeTextEquals`
|
|
1944
|
-
* `seeTitleEquals`
|
|
1945
|
-
* `switchTo`
|
|
1946
|
-
* `waitForInvisible`
|
|
1947
|
-
* `waitInUrl`
|
|
1948
|
-
* `waitUrlEquals`
|
|
1949
|
-
* **[Protractor]** +8 functions added by **[reubenmiller](https://github.com/reubenmiller)**
|
|
1950
|
-
* `closeCurrentTab`
|
|
1951
|
-
* `grabSource`
|
|
1952
|
-
* `openNewTab`
|
|
1953
|
-
* `seeNumberOfElements`
|
|
1954
|
-
* `seeTextEquals`
|
|
1955
|
-
* `seeTitleEquals`
|
|
1956
|
-
* `switchToNextTab`
|
|
1957
|
-
* `switchToPreviousTab`
|
|
1958
|
-
* **[Nightmare]** `waitForInvisible` added by **[reubenmiller](https://github.com/reubenmiller)**
|
|
1959
|
-
* **[Puppeteer]** Printing console.log information in debug mode.
|
|
1960
|
-
* **[Nightmare]** Integrated with `nightmare-har-plugin` by mingfang. Added `enableHAR` option. Added HAR functions:
|
|
1961
|
-
* `grabHAR`
|
|
1962
|
-
* `saveHAR`
|
|
1963
|
-
* `resetHAR`
|
|
1964
|
-
* **[WebDriverIO]** Fixed execution stability for parallel requests with Chromedriver
|
|
1965
|
-
* **[WebDriverIO]** Fixed resizeWindow when resizing to 'maximize' by **[reubenmiller](https://github.com/reubenmiller)**
|
|
1966
|
-
* **[WebDriverIO]** Fixing resizing window to full screen when taking a screenshot by **[reubenmiller](https://github.com/reubenmiller)**
|
|
1967
|
-
|
|
1968
|
-
## 1.1.2
|
|
1969
|
-
|
|
1970
|
-
* **[Puppeteer]** Upgraded to Puppeteer 1.0
|
|
1971
|
-
* Added `grep` option to config to set default matching pattern for tests.
|
|
1972
|
-
* **[Puppeteer]** Added `acceptPopup`, `cancelPopup`, `seeInPopup` and `grabPopupText` functions by **[reubenmiller](https://github.com/reubenmiller)**
|
|
1973
|
-
* **[Puppeteer]** `within` iframe and nested iframe support added by **[reubenmiller](https://github.com/reubenmiller)**
|
|
1974
|
-
* **[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)**
|
|
1975
|
-
* **[REST]** Added `resetRequestHeaders` method by **[Kalostrinho](https://github.com/Kalostrinho)**
|
|
1976
|
-
* **[REST]** Added `followRedirect` option and `amFollowingRequestRedirects`/`amNotFollowingRequestRedirects` methods by **[Kalostrinho](https://github.com/Kalostrinho)**
|
|
1977
|
-
* **[WebDriverIO]** `uncheckOption` implemented by **[brunobg](https://github.com/brunobg)**
|
|
1978
|
-
* **[WebDriverIO]** Added `grabBrowserUrl` by **[Kalostrinho](https://github.com/Kalostrinho)**
|
|
1979
|
-
* Add ability to require helpers from node_modules by **[APshenkin](https://github.com/APshenkin)**
|
|
1980
|
-
* Added `--profile` option to `run-multiple` command by **[jamie-beck](https://github.com/jamie-beck)**
|
|
1981
|
-
* Custom output name for multiple browser run by **[tfiwm](https://github.com/tfiwm)**
|
|
1982
|
-
* Fixed passing data to scenarios by **[KennyRules](https://github.com/KennyRules)**
|
|
1983
|
-
|
|
1984
|
-
## 1.1.1
|
|
1985
|
-
|
|
1986
|
-
* **[WebDriverIO]** fixed `waitForInvisible` by **[Kporal](https://github.com/Kporal)**
|
|
1987
|
-
|
|
1988
|
-
## 1.1.0
|
|
1989
|
-
|
|
1990
|
-
Major update to CodeceptJS. **NodeJS v 8.9.1** is now minimal Node version required.
|
|
1991
|
-
This brings native async-await support to CodeceptJS. It is recommended to start using await for tests instead of generators:
|
|
1992
|
-
|
|
1993
|
-
```js
|
|
1994
|
-
async () => {
|
|
1995
|
-
I.amOnPage('/page');
|
|
1996
|
-
const url = await I.grabTextFrom('.nextPage');
|
|
1997
|
-
I.amOnPage(url);
|
|
1998
|
-
}
|
|
1999
|
-
```
|
|
2000
|
-
|
|
2001
|
-
Thanks to [@Apshenkin](https://github.com/apshenkin) for implementation. Also, most helpers were refactored to use async-await. This made our code simpler. We hope that this encourages more users to send pull requests!
|
|
2002
|
-
|
|
2003
|
-
We also introduced strict ESLint policies for our codebase. Thanks to [@Galkin](https://github.com/galkin) for that.
|
|
2004
|
-
|
|
2005
|
-
* **[Puppeteer] Helper introduced**. [Learn how to run tests headlessly with Google Chrome's Puppeteer](http://codecept.io/puppeteer/).
|
|
2006
|
-
* **[SeleniumWebdriver]** Helper is deprecated, it is recommended to use Protractor with config option `angular: false` instead.
|
|
2007
|
-
* **[WebDriverIO]** nested iframe support in the within block by **[reubenmiller](https://github.com/reubenmiller)**. Example:
|
|
2008
|
-
|
|
2009
|
-
```js
|
|
2010
|
-
within({frame: ['#wrapperId', '[name=content]']}, () => {
|
|
2011
|
-
I.click('Sign in!');
|
|
2012
|
-
I.see('Email Address');
|
|
2013
|
-
});
|
|
2014
|
-
I.see('Nested Iframe test');
|
|
2015
|
-
I.dontSee('Email Address');
|
|
2016
|
-
});
|
|
2017
|
-
```
|
|
2018
|
-
* **[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:
|
|
2019
|
-
|
|
2020
|
-
```html
|
|
2021
|
-
<Text accessibilityLabel="foobar">
|
|
2022
|
-
CodeceptJS is awesome
|
|
2023
|
-
</Text>
|
|
2024
|
-
```
|
|
2025
|
-
↑ This element can be located with `~foobar` in WebDriverIO and Appium helpers. Thanks to **[flyskywhy](https://github.com/flyskywhy)**
|
|
2026
|
-
|
|
2027
|
-
* Allow providing arbitrary objects in config includes by **[rlewan](https://github.com/rlewan)**
|
|
2028
|
-
* **[REST]** Prevent from mutating default headers by **[alexashley](https://github.com/alexashley)**. See [#789](https://github.com/codeceptjs/CodeceptJS/issues/789)
|
|
2029
|
-
* **[REST]** Fixed sending empty helpers with `haveRequestHeaders` in `sendPostRequest`. By **[petrisorionel](https://github.com/petrisorionel)**
|
|
2030
|
-
* Fixed displaying undefined args in output by **[APshenkin](https://github.com/APshenkin)**
|
|
2031
|
-
* Fixed NaN instead of seconds in output by **[APshenkin](https://github.com/APshenkin)**
|
|
2032
|
-
* Add browser name to report file for `multiple-run` by **[trollr](https://github.com/trollr)**
|
|
2033
|
-
* Mocha updated to 4.x
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
|
-
## 1.0.3
|
|
2038
|
-
|
|
2039
|
-
* [WebDriverIO][Protractor][Nightmare] method `waitUntilExists` implemented by **[sabau](https://github.com/sabau)**
|
|
2040
|
-
* Absolute path can be set for `output` dir by **[APshenkin](https://github.com/APshenkin)**. Fix [#571](https://github.com/codeceptjs/CodeceptJS/issues/571)* Data table rows can be ignored by using `xadd`. By **[APhenkin](https://github.com/APhenkin)**
|
|
2041
|
-
* Added `Data(table).only.Scenario` to give ability to launch only Data tests. By **[APhenkin](https://github.com/APhenkin)**
|
|
2042
|
-
* Implemented `ElementNotFound` error by **[BorisOsipov](https://github.com/BorisOsipov)**.
|
|
2043
|
-
* Added TypeScript compiler / configs to check the JavaScript by **[KennyRules](https://github.com/KennyRules)**
|
|
2044
|
-
* **[Nightmare]** fix executeScript return value by **[jploskonka](https://github.com/jploskonka)**
|
|
2045
|
-
* **[Nightmare]** fixed: err.indexOf not a function when waitForText times out in nightmare by **[joeypedicini92](https://github.com/joeypedicini92)**
|
|
2046
|
-
* Fixed: Retries not working when using .only. By **[APhenkin](https://github.com/APhenkin)**
|
|
2047
|
-
|
|
2048
|
-
|
|
2049
|
-
## 1.0.2
|
|
2050
|
-
|
|
2051
|
-
* Introduced generators support in scenario hooks for `BeforeSuite`/`Before`/`AfterSuite`/`After`
|
|
2052
|
-
* **[ApiDataFactory]** Fixed loading helper; `requireg` package included.
|
|
2053
|
-
* Fix [#485](https://github.com/codeceptjs/CodeceptJS/issues/485)`run-multiple`: the first browser-resolution combination was be used in all configurations
|
|
2054
|
-
* Fixed unique test names:
|
|
2055
|
-
* Fixed [#447](https://github.com/codeceptjs/CodeceptJS/issues/447) tests failed silently if they have the same name as other tests.
|
|
2056
|
-
* Use uuid in screenshot names when `uniqueScreenshotNames: true`
|
|
2057
|
-
* **[Protractor]** Fixed testing non-angular application. `amOutsideAngularApp` is executed before each step. Fixes [#458](https://github.com/codeceptjs/CodeceptJS/issues/458)* Added output for steps in hooks when they fail
|
|
2058
|
-
|
|
2059
|
-
## 1.0.1
|
|
2060
|
-
|
|
2061
|
-
* Reporters improvements:
|
|
2062
|
-
* Allows to execute [multiple reporters](http://codecept.io/advanced/#Multi-Reports)
|
|
2063
|
-
* Added [Mochawesome](http://codecept.io/helpers/Mochawesome/) helper
|
|
2064
|
-
* `addMochawesomeContext` method to add custom data to mochawesome reports
|
|
2065
|
-
* Fixed Mochawesome context for failed screenshots.
|
|
2066
|
-
* **[WebDriverIO]** improved click on context to match clickable element with a text inside. Fixes [#647](https://github.com/codeceptjs/CodeceptJS/issues/647)* **[Nightmare]** Added `refresh` function by **[awhanks](https://github.com/awhanks)**
|
|
2067
|
-
* fixed `Unhandled promise rejection (rejection id: 1): Error: Unknown wait type: pageLoad`
|
|
2068
|
-
* support for tests with retries in html report
|
|
2069
|
-
* be sure that change window size and timeouts completes before test
|
|
2070
|
-
* **[Nightmare]** Fixed `[Wrapped Error] "codeceptjs is not defined"`; Reinjectiing client scripts to a webpage on changes.
|
|
2071
|
-
* **[Nightmare]** Added more detailed error messages for `Wait*` methods
|
|
2072
|
-
* **[Nightmare]** Fixed adding screenshots to Mochawesome
|
|
2073
|
-
* **[Nightmare]** Fix unique screenshots names in Nightmare
|
|
2074
|
-
* Fixed CodeceptJS work with hooks in helpers to finish codeceptJS correctly if errors appears in helpers hooks
|
|
2075
|
-
* Create a new session for next test If selenium grid error received
|
|
2076
|
-
* Create screenshots for failed hooks from a Feature file
|
|
2077
|
-
* Fixed `retries` option
|
|
2078
|
-
|
|
2079
|
-
## 1.0
|
|
2080
|
-
|
|
2081
|
-
CodeceptJS hits first stable release. CodeceptJS provides a unified API for [web testing for Webdriverio](http://codecept.io/acceptance/), [Protractor](http://codecept.io/angular/), and [NightmareJS](http://codecept.io/nightmare/). Since 1.0 you can also **test mobile applications** in the similar manner with Appium.
|
|
2082
|
-
|
|
2083
|
-
Sample test:
|
|
2084
|
-
|
|
2085
|
-
```js
|
|
2086
|
-
I.seeAppIsInstalled("io.super.app");
|
|
2087
|
-
I.click('~startUserRegistrationCD');
|
|
2088
|
-
I.fillField('~email of the customer', 'Nothing special'));
|
|
2089
|
-
I.see('davert@codecept.io', '~email of the customer'));
|
|
2090
|
-
I.clearField('~email of the customer'));
|
|
2091
|
-
I.dontSee('Nothing special', '~email of the customer'));
|
|
2092
|
-
```
|
|
2093
|
-
|
|
2094
|
-
* Read [the Mobile Testing guide](http://codecept.io/mobile).
|
|
2095
|
-
* Discover [Appium Helper](http://codecept.io/helpers/Appium/)
|
|
2096
|
-
|
|
2097
|
-
---
|
|
2098
|
-
|
|
2099
|
-
We also introduced two new **helpers for data management**.
|
|
2100
|
-
Using them you can easily prepare and cleanup data for your tests using public REST API.
|
|
2101
|
-
|
|
2102
|
-
Sample test
|
|
2103
|
-
|
|
2104
|
-
```js
|
|
2105
|
-
// create a user using data factories and REST API
|
|
2106
|
-
I.have('user', { name: 'davert', password: '123456' });
|
|
2107
|
-
// use it to login
|
|
2108
|
-
I.amOnPage('/login');
|
|
2109
|
-
I.fillField('login', 'davert');
|
|
2110
|
-
I.fillField('password', '123456');
|
|
2111
|
-
I.click('Login');
|
|
2112
|
-
I.see('Hello, davert');
|
|
2113
|
-
// user will be removed after the test
|
|
2114
|
-
```
|
|
2115
|
-
|
|
2116
|
-
* Read [Data Management guide](http://codecept.io/data)
|
|
2117
|
-
* [REST Helper](http://codecept.io/helpers/REST)
|
|
2118
|
-
* [ApiDataFactory](http://codecept.io/helpers/ApiDataFactory/)
|
|
2119
|
-
|
|
2120
|
-
---
|
|
2121
|
-
|
|
2122
|
-
Next notable feature is **[SmartWait](http://codecept.io/acceptance/#smartwait)** for WebDriverIO, Protractor, SeleniumWebdriver. When `smartwait` option is set, script will wait for extra milliseconds to locate an element before failing. This feature uses implicit waits of Selenium but turns them on only in applicable pieces. For instance, implicit waits are enabled for `seeElement` but disabled for `dontSeeElement`
|
|
2123
|
-
|
|
2124
|
-
* Read more about [SmartWait](http://codecept.io/acceptance/#smartwait)
|
|
2125
|
-
|
|
2126
|
-
##### Changelog
|
|
2127
|
-
|
|
2128
|
-
* Minimal NodeJS version is 6.11.1 LTS
|
|
2129
|
-
* Use `within` command with generators.
|
|
2130
|
-
* [Data Driven Tests](http://codecept.io/advanced/#data-driven-tests) introduced.
|
|
2131
|
-
* Print execution time per step in `--debug` mode. [#591](https://github.com/codeceptjs/CodeceptJS/issues/591) by **[APshenkin](https://github.com/APshenkin)**
|
|
2132
|
-
* [WebDriverIO][Protractor][Nightmare] Added `disableScreenshots` option to disable screenshots on fail by **[Apshenkin](https://github.com/Apshenkin)**
|
|
2133
|
-
* [WebDriverIO][Protractor][Nightmare] Added `uniqueScreenshotNames` option to generate unique names for screenshots on failure by **[Apshenkin](https://github.com/Apshenkin)**
|
|
2134
|
-
* [WebDriverIO][Nightmare] Fixed click on context; `click('text', '#el')` will throw exception if text is not found inside `#el`.
|
|
2135
|
-
* [WebDriverIO][Protractor][SeleniumWebdriver] [SmartWait introduced](http://codecept.io/acceptance/#smartwait).
|
|
2136
|
-
* [WebDriverIO][Protractor][Nightmare]Fixed `saveScreenshot` for PhantomJS, `fullPageScreenshots` option introduced by **[HughZurname](https://github.com/HughZurname)** [#549](https://github.com/codeceptjs/CodeceptJS/issues/549)
|
|
2137
|
-
* **[Appium]** helper introduced by **[APshenkin](https://github.com/APshenkin)**
|
|
2138
|
-
* **[REST]** helper introduced by **[atrevino](https://github.com/atrevino)** in [#504](https://github.com/codeceptjs/CodeceptJS/issues/504)
|
|
2139
|
-
* [WebDriverIO][SeleniumWebdriver] Fixed "windowSize": "maximize" for Chrome 59+ version [#560](https://github.com/codeceptjs/CodeceptJS/issues/560) by **[APshenkin](https://github.com/APshenkin)**
|
|
2140
|
-
* **[Nightmare]** Fixed restarting by **[APshenkin](https://github.com/APshenkin)** [#581](https://github.com/codeceptjs/CodeceptJS/issues/581)
|
|
2141
|
-
* **[WebDriverIO]** Methods added by **[APshenkin](https://github.com/APshenkin)**:
|
|
2142
|
-
* [grabCssPropertyFrom](http://codecept.io/helpers/WebDriverIO/#grabcsspropertyfrom)
|
|
2143
|
-
* [seeTitleEquals](http://codecept.io/helpers/WebDriverIO/#seetitleequals)
|
|
2144
|
-
* [seeTextEquals](http://codecept.io/helpers/WebDriverIO/#seetextequals)
|
|
2145
|
-
* [seeCssPropertiesOnElements](http://codecept.io/helpers/WebDriverIO/#seecsspropertiesonelements)
|
|
2146
|
-
* [seeAttributesOnElements](http://codecept.io/helpers/WebDriverIO/#seeattributesonelements)
|
|
2147
|
-
* [grabNumberOfVisibleElements](http://codecept.io/helpers/WebDriverIO/#grabnumberofvisibleelements)
|
|
2148
|
-
* [waitInUrl](http://codecept.io/helpers/WebDriverIO/#waitinurl)
|
|
2149
|
-
* [waitUrlEquals](http://codecept.io/helpers/WebDriverIO/#waiturlequals)
|
|
2150
|
-
* [waitForValue](http://codecept.io/helpers/WebDriverIO/#waitforvalue)
|
|
2151
|
-
* [waitNumberOfVisibleElements](http://codecept.io/helpers/WebDriverIO/#waitnumberofvisibleelements)
|
|
2152
|
-
* [switchToNextTab](http://codecept.io/helpers/WebDriverIO/#switchtonexttab)
|
|
2153
|
-
* [switchToPreviousTab](http://codecept.io/helpers/WebDriverIO/#switchtoprevioustab)
|
|
2154
|
-
* [closeCurrentTab](http://codecept.io/helpers/WebDriverIO/#closecurrenttab)
|
|
2155
|
-
* [openNewTab](http://codecept.io/helpers/WebDriverIO/#opennewtab)
|
|
2156
|
-
* [refreshPage](http://codecept.io/helpers/WebDriverIO/#refreshpage)
|
|
2157
|
-
* [scrollPageToBottom](http://codecept.io/helpers/WebDriverIO/#scrollpagetobottom)
|
|
2158
|
-
* [scrollPageToTop](http://codecept.io/helpers/WebDriverIO/#scrollpagetotop)
|
|
2159
|
-
* [grabBrowserLogs](http://codecept.io/helpers/WebDriverIO/#grabbrowserlogs)
|
|
2160
|
-
* Use mkdirp to create output directory. [#592](https://github.com/codeceptjs/CodeceptJS/issues/592) by **[vkramskikh](https://github.com/vkramskikh)**
|
|
2161
|
-
* **[WebDriverIO]** Fixed `seeNumberOfVisibleElements` by **[BorisOsipov](https://github.com/BorisOsipov)** [#574](https://github.com/codeceptjs/CodeceptJS/issues/574)
|
|
2162
|
-
* Lots of fixes for promise chain by **[APshenkin](https://github.com/APshenkin)** [#568](https://github.com/codeceptjs/CodeceptJS/issues/568)
|
|
2163
|
-
* Fix [#543](https://github.com/codeceptjs/CodeceptJS/issues/543)- After block not properly executed if Scenario fails
|
|
2164
|
-
* 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.
|
|
2165
|
-
* if during test we got errors from any hook (in test or in helper) - stop complete this suite and go to another
|
|
2166
|
-
* if during test we got error from Selenium server - stop complete this suite and go to another
|
|
2167
|
-
* [WebDriverIO][Protractor] if `restart` option is false - close all tabs expect one in `_after`.
|
|
2168
|
-
* Complete `_after`, `_afterSuite` hooks even After/AfterSuite from test was failed
|
|
2169
|
-
* 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.
|
|
2170
|
-
* Close tabs and clear local storage, if `keepCookies` flag is enabled
|
|
2171
|
-
* Fix TypeError when using babel-node or ts-node on node.js 7+ [#586](https://github.com/codeceptjs/CodeceptJS/issues/586) by **[vkramskikh](https://github.com/vkramskikh)**
|
|
2172
|
-
* **[Nightmare]** fixed usage of `_locate`
|
|
2173
|
-
|
|
2174
|
-
Special thanks to **Andrey Pshenkin** for his work on this release and the major improvements.
|
|
2175
|
-
|
|
2176
|
-
## 0.6.3
|
|
2177
|
-
|
|
2178
|
-
* Errors are printed in non-verbose mode. Shows "Selenium not started" and other important errors.
|
|
2179
|
-
* Allowed to set custom test options:
|
|
2180
|
-
|
|
2181
|
-
```js
|
|
2182
|
-
Scenario('My scenario', { build_id: 123, type: 'slow' }, function (I)
|
|
2183
|
-
```
|
|
2184
|
-
those options can be accessed as `opts` property inside a `test` object. Can be used in custom listeners.
|
|
2185
|
-
|
|
2186
|
-
* Added `docs` directory to a package.
|
|
2187
|
-
* [WebDriverIO][Protractor][SeleniumWebdriver] Bugfix: cleaning session when `restart: false` by **[tfiwm](https://github.com/tfiwm)** [#519](https://github.com/codeceptjs/CodeceptJS/issues/519)
|
|
2188
|
-
* [WebDriverIO][Protractor][Nightmare] Added second parameter to `saveScreenshot` to allow a full page screenshot. By **[HughZurname](https://github.com/HughZurname)**
|
|
2189
|
-
* Added suite object to `suite.before` and `suite.after` events by **[implico](https://github.com/implico)**. [#496](https://github.com/codeceptjs/CodeceptJS/issues/496)
|
|
2190
|
-
|
|
2191
|
-
## 0.6.2
|
|
2192
|
-
|
|
2193
|
-
* Added `config` object to [public API](http://codecept.io/hooks/#api)
|
|
2194
|
-
* Extended `index.js` to include `actor` and `helpers`, so they could be required:
|
|
2195
|
-
|
|
2196
|
-
```js
|
|
2197
|
-
const actor = require('codeceptjs').actor;
|
|
2198
|
-
```
|
|
2199
|
-
|
|
2200
|
-
* Added [example for creating custom runner](http://codecept.io/hooks/#custom-runner) with public API.
|
|
2201
|
-
* run command to create `output` directory if it doesn't exist
|
|
2202
|
-
* **[Protractor]** fixed loading globally installed Protractor
|
|
2203
|
-
* run-multiple command improvements:
|
|
2204
|
-
* create output directories for each process
|
|
2205
|
-
* print process ids in output
|
|
2206
|
-
|
|
2207
|
-
## 0.6.1
|
|
2208
|
-
|
|
2209
|
-
* Fixed loading hooks
|
|
2210
|
-
|
|
2211
|
-
## 0.6.0
|
|
2212
|
-
|
|
2213
|
-
Major release with extension API and parallel execution.
|
|
2214
|
-
|
|
2215
|
-
* **Breaking** Removed path argument from `run`. To specify path other than current directory use `--config` or `-c` option:
|
|
2216
|
-
|
|
2217
|
-
Instead of: `codeceptjs run tests` use:
|
|
2218
|
-
|
|
2219
|
-
```
|
|
2220
|
-
# load config and run from tests directory
|
|
2221
|
-
codeceptjs run -c tests/
|
|
2222
|
-
|
|
2223
|
-
# or load codecept.json from tests directory
|
|
2224
|
-
codeceptjs run -c tests/codecept.json
|
|
2225
|
-
|
|
2226
|
-
# run users_test.js inside tests directory
|
|
2227
|
-
codeceptjs run users_test.js -c tests
|
|
2228
|
-
```
|
|
2229
|
-
|
|
2230
|
-
* **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).
|
|
2231
|
-
* **Hooks API added to extend CodeceptJS** with custom listeners and plugins. [See documentation](http://codecept.io/hooks/#hooks_1).
|
|
2232
|
-
* [Nightmare][WebDriverIO] `within` can work with iframes by **[imvetri](https://github.com/imvetri)**. [See documentation](http://codecept.io/acceptance/#iframes).
|
|
2233
|
-
* [WebDriverIO][SeleniumWebdriver][Protractor] Default browser changed to `chrome`
|
|
2234
|
-
* **[Nightmare]** Fixed globally locating `nightmare-upload`.
|
|
2235
|
-
* **[WebDriverIO]** added `seeNumberOfVisibleElements` method by **[elarouche](https://github.com/elarouche)**.
|
|
2236
|
-
* Exit with non-zero code if init throws an error by **[rincedd](https://github.com/rincedd)**
|
|
2237
|
-
* New guides published:
|
|
2238
|
-
* [Installation](http://codecept.io/installation/)
|
|
2239
|
-
* [Hooks](http://codecept.io/hooks/)
|
|
2240
|
-
* [Advanced Usage](http://codecept.io/advanced/)
|
|
2241
|
-
* Meta packages published:
|
|
2242
|
-
* [codecept-webdriverio](https://www.npmjs.com/package/codecept-webdriverio)
|
|
2243
|
-
* [codecept-protractor](https://www.npmjs.com/package/codecept-protractor)
|
|
2244
|
-
* [codecept-nightmare](https://www.npmjs.com/package/codecept-nightmare)
|
|
2245
|
-
|
|
2246
|
-
|
|
2247
|
-
## 0.5.1
|
|
2248
|
-
|
|
2249
|
-
* [Polish translation](http://codecept.io/translation/#polish) added by **[limes](https://github.com/limes)**.
|
|
2250
|
-
* Update process exit code so that mocha saves reports before exit by **[romanovma](https://github.com/romanovma)**.
|
|
2251
|
-
* **[Nightmare]** fixed `getAttributeFrom` for custom attributes by **[robrkerr](https://github.com/robrkerr)**
|
|
2252
|
-
* **[Nightmare]** Fixed *UnhandledPromiseRejectionWarning error* when selecting the dropdown using `selectOption` by **[robrkerr](https://github.com/robrkerr)**. [Se PR.
|
|
2253
|
-
* **[Protractor]** fixed `pressKey` method by **[romanovma](https://github.com/romanovma)**
|
|
2254
|
-
|
|
2255
|
-
## 0.5.0
|
|
2256
|
-
|
|
2257
|
-
* Protractor ^5.0.0 support (while keeping ^4.0.9 compatibility)
|
|
2258
|
-
* Fix 'fullTitle() is not a function' in exit.js by **[hubidu](https://github.com/hubidu)**. See [#388](https://github.com/codeceptjs/CodeceptJS/issues/388).
|
|
2259
|
-
* **[Nightmare]** Fix for `waitTimeout` by **[HughZurname](https://github.com/HughZurname)**. See [#391](https://github.com/codeceptjs/CodeceptJS/issues/391). Resolves [#236](https://github.com/codeceptjs/CodeceptJS/issues/236)* Dockerized CodeceptJS setup by **[artiomnist](https://github.com/artiomnist)**. [See reference](https://github.com/codeceptjs/CodeceptJS/blob/master/docker/README.md)
|
|
2260
|
-
|
|
2261
|
-
## 0.4.16
|
|
2262
|
-
|
|
2263
|
-
* Fixed steps output synchronization (regression since 0.4.14).
|
|
2264
|
-
* [WebDriverIO][Protractor][SeleniumWebdriver][Nightmare] added `keepCookies` option to keep cookies between tests with `restart: false`.
|
|
2265
|
-
* **[Protractor]** added `waitForTimeout` config option to set default waiting time for all wait* functions.
|
|
2266
|
-
* Fixed `_test` hook for helpers by **[cjhille](https://github.com/cjhille)**.
|
|
2267
|
-
|
|
2268
|
-
## 0.4.15
|
|
2269
|
-
|
|
2270
|
-
* Fixed regression in recorder sessions: `oldpromise is not defined`.
|
|
2271
|
-
|
|
2272
|
-
## 0.4.14
|
|
2273
|
-
|
|
2274
|
-
* `_beforeStep` and `_afterStep` hooks in helpers are synchronized. Allows to perform additional actions between steps.
|
|
2275
|
-
|
|
2276
|
-
Example: fail if JS error occur in custom helper using WebdriverIO:
|
|
2277
|
-
|
|
2278
|
-
```js
|
|
2279
|
-
_before() {
|
|
2280
|
-
this.err = null;
|
|
2281
|
-
this.helpers['WebDriverIO'].browser.on('error', (e) => this.err = e);
|
|
2282
|
-
}
|
|
2283
|
-
|
|
2284
|
-
_afterStep() {
|
|
2285
|
-
if (this.err) throw new Error('Browser JS error '+this.err);
|
|
2286
|
-
}
|
|
2287
|
-
```
|
|
2288
|
-
|
|
2289
|
-
Example: fail if JS error occur in custom helper using Nightmare:
|
|
2290
|
-
|
|
2291
|
-
```js
|
|
2292
|
-
_before() {
|
|
2293
|
-
this.err = null;
|
|
2294
|
-
this.helpers['Nightmare'].browser.on('page', (type, message, stack) => {
|
|
2295
|
-
this.err = `${message} ${stack}`;
|
|
2296
|
-
});
|
|
2297
|
-
}
|
|
2298
|
-
|
|
2299
|
-
_afterStep() {
|
|
2300
|
-
if (this.err) throw new Error('Browser JS error '+this.err);
|
|
2301
|
-
}
|
|
2302
|
-
```
|
|
2303
|
-
|
|
2304
|
-
* Fixed `codecept list` and `codecept def` commands.
|
|
2305
|
-
* Added `I.say` method to print arbitrary comments.
|
|
2306
|
-
|
|
2307
|
-
```js
|
|
2308
|
-
I.say('I am going to publish post');
|
|
2309
|
-
I.say('I enter title and body');
|
|
2310
|
-
I.say('I expect post is visible on site');
|
|
2311
|
-
```
|
|
2312
|
-
|
|
2313
|
-
* **[Nightmare]** `restart` option added. `restart: false` allows to run all tests in a single window, disabled by default. By **[nairvijays99](https://github.com/nairvijays99)**
|
|
2314
|
-
* **[Nightmare]** Fixed `resizeWindow` command.
|
|
2315
|
-
* [Protractor][SeleniumWebdriver] added `windowSize` config option to resize window on start.
|
|
2316
|
-
* Fixed "Scenario.skip causes 'Cannot read property retries of undefined'" by **[MasterOfPoppets](https://github.com/MasterOfPoppets)**
|
|
2317
|
-
* Fixed providing absolute paths for tests in config by **[lennym](https://github.com/lennym)**
|
|
2318
|
-
|
|
2319
|
-
## 0.4.13
|
|
2320
|
-
|
|
2321
|
-
* Added **retries** option `Feature` and `Scenario` to rerun fragile tests:
|
|
2322
|
-
|
|
2323
|
-
```js
|
|
2324
|
-
Feature('Complex JS Stuff', {retries: 3});
|
|
2325
|
-
|
|
2326
|
-
Scenario('Not that complex', {retries: 1}, (I) => {
|
|
2327
|
-
// test goes here
|
|
2328
|
-
});
|
|
2329
|
-
```
|
|
2330
|
-
|
|
2331
|
-
* Added **timeout** option `Feature` and `Scenario` to specify timeout.
|
|
2332
|
-
|
|
2333
|
-
```js
|
|
2334
|
-
Feature('Complex JS Stuff', {timeout: 5000});
|
|
2335
|
-
|
|
2336
|
-
Scenario('Not that complex', {timeout: 1000}, (I) => {
|
|
2337
|
-
// test goes here
|
|
2338
|
-
});
|
|
2339
|
-
```
|
|
2340
|
-
|
|
2341
|
-
* **[WebDriverIO]** Added `uniqueScreenshotNames` option to set unique screenshot names for failed tests. By **[APshenkin](https://github.com/APshenkin)**. See [#299](https://github.com/codeceptjs/CodeceptJS/issues/299)
|
|
2342
|
-
* **[WebDriverIO]** `clearField` method improved to accept name/label locators and throw errors.
|
|
2343
|
-
* [Nightmare][SeleniumWebdriver][Protractor] `clearField` method added.
|
|
2344
|
-
* **[Nightmare]** Fixed `waitForElement`, and `waitForVisible` methods.
|
|
2345
|
-
* **[Nightmare]** Fixed `resizeWindow` by **[norisk-it](https://github.com/norisk-it)**
|
|
2346
|
-
* Added italian [translation](http://codecept.io/translation/#italian).
|
|
2347
|
-
|
|
2348
|
-
## 0.4.12
|
|
2349
|
-
|
|
2350
|
-
* Bootstrap / Teardown improved with [Hooks](http://codecept.io/configuration/#hooks). Various options for setup/teardown provided.
|
|
2351
|
-
* Added `--override` or `-o` option for runner to dynamically override configs. Valid JSON should be passed:
|
|
2352
|
-
|
|
2353
|
-
```
|
|
2354
|
-
codeceptjs run -o '{ "bootstrap": "bootstrap.js"}'
|
|
2355
|
-
codeceptjs run -o '{ "helpers": {"WebDriverIO": {"browser": "chrome"}}}'
|
|
2356
|
-
```
|
|
2357
|
-
|
|
2358
|
-
* Added [regression tests](https://github.com/codeceptjs/CodeceptJS/tree/master/test/runner) for codeceptjs tests runner.
|
|
2359
|
-
|
|
2360
|
-
## 0.4.11
|
|
2361
|
-
|
|
2362
|
-
* Fixed regression in 0.4.10
|
|
2363
|
-
* 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/codeceptjs/CodeceptJS/issues/319)
|
|
2364
|
-
|
|
2365
|
-
## 0.4.10
|
|
2366
|
-
|
|
2367
|
-
* **[Protractor]** Protrctor 4.0.12+ support.
|
|
2368
|
-
* Enabled async bootstrap file by **[abachar](https://github.com/abachar)**. Use inside `bootstrap.js`:
|
|
2369
|
-
|
|
2370
|
-
```js
|
|
2371
|
-
module.exports = function(done) {
|
|
2372
|
-
// async instructions
|
|
2373
|
-
// call done() to continue execution
|
|
2374
|
-
// otherwise call done('error description')
|
|
2375
|
-
}
|
|
2376
|
-
```
|
|
2377
|
-
|
|
2378
|
-
* Changed 'pending' to 'skipped' in reports by **[timja-kainos](https://github.com/timja-kainos)**. See [#315](https://github.com/codeceptjs/CodeceptJS/issues/315)
|
|
2379
|
-
|
|
2380
|
-
## 0.4.9
|
|
2381
|
-
|
|
2382
|
-
* [SeleniumWebdriver][Protractor][WebDriverIO][Nightmare] fixed `executeScript`, `executeAsyncScript` to work and return values.
|
|
2383
|
-
* [Protractor][SeleniumWebdriver][WebDriverIO] Added `waitForInvisible` and `waitForStalenessOf` methods by **[Nighthawk14](https://github.com/Nighthawk14)**.
|
|
2384
|
-
* Added `--config` option to `codeceptjs run` to manually specify config file by **[cnworks](https://github.com/cnworks)**
|
|
2385
|
-
* **[Protractor]** Simplified behavior of `amOutsideAngularApp` by using `ignoreSynchronization`. Fixes [#278](https://github.com/codeceptjs/CodeceptJS/issues/278)
|
|
2386
|
-
* Set exit code to 1 when test fails at `Before`/`After` hooks. Fixes [#279](https://github.com/codeceptjs/CodeceptJS/issues/279)
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
## 0.4.8
|
|
2390
|
-
|
|
2391
|
-
* [Protractor][SeleniumWebdriver][Nightmare] added `moveCursorTo` method.
|
|
2392
|
-
* [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/codeceptjs/CodeceptJS/issues/250)
|
|
2393
|
-
* Fixed `codeceptjs init` to work with nested directories and file masks.
|
|
2394
|
-
* Fixed `codeceptjs gt` to generate test with proper file name suffix. By **[Zougi](https://github.com/Zougi)**.
|
|
2395
|
-
* **[Nightmare]** Fixed: Error is thrown when clicking on element which can't be locate. By **[davetmik](https://github.com/davetmik)**
|
|
2396
|
-
* **[WebDriverIO]** Fixed `attachFile` for file upload. By **[giuband](https://github.com/giuband)** and **[davetmik](https://github.com/davetmik)**
|
|
2397
|
-
* **[WebDriverIO]** Add support for timeouts in config and with `defineTimeouts` method. By **[easternbloc](https://github.com/easternbloc)** [#258](https://github.com/codeceptjs/CodeceptJS/issues/258) and [#267](https://github.com/codeceptjs/CodeceptJS/issues/267) by **[davetmik](https://github.com/davetmik)**
|
|
2398
|
-
* Fixed hanging of CodeceptJS when error is thrown by event dispatcher. Fix by **[Zougi](https://github.com/Zougi)** and **[davetmik](https://github.com/davetmik)**
|
|
2399
|
-
|
|
2400
|
-
|
|
2401
|
-
## 0.4.7
|
|
2402
|
-
|
|
2403
|
-
* Improved docs for `BeforeSuite`; fixed its usage with `restart: false` option by **[APshenkin](https://github.com/APshenkin)**.
|
|
2404
|
-
* Added `Nightmare` to list of available helpers on `init`.
|
|
2405
|
-
* **[Nightmare]** Removed double `resizeWindow` implementation.
|
|
2406
|
-
|
|
2407
|
-
## 0.4.6
|
|
2408
|
-
|
|
2409
|
-
* Added `BeforeSuite` and `AfterSuite` hooks to scenario by **[APshenkin](https://github.com/APshenkin)**. See [updated documentation](http://codecept.io/basics/#beforesuite)
|
|
2410
|
-
|
|
2411
|
-
## 0.4.5
|
|
2412
|
-
|
|
2413
|
-
* Fixed running `codecept def` command by **[jankaspar](https://github.com/jankaspar)**
|
|
2414
|
-
* [Protractor][SeleniumWebdriver] Added support for special keys in `pressKey` method. Fixes [#216](https://github.com/codeceptjs/CodeceptJS/issues/216)
|
|
2415
|
-
|
|
2416
|
-
## 0.4.4
|
|
2417
|
-
|
|
2418
|
-
* Interactive shell fixed. Start it by running `codeceptjs shell`
|
|
2419
|
-
* Added `--profile` option to `shell` command to use dynamic configuration.
|
|
2420
|
-
* Added `--verbose` option to `shell` command for most complete output.
|
|
2421
|
-
|
|
2422
|
-
## 0.4.3
|
|
2423
|
-
|
|
2424
|
-
* **[Protractor]** Regression fixed to ^4.0.0 support
|
|
2425
|
-
* Translations included into package.
|
|
2426
|
-
* `teardown` option added to config (opposite to `bootstrap`), expects a JS file to be executed after tests stop.
|
|
2427
|
-
* [Configuration](http://codecept.io/configuration/) can be set via JavaScript file `codecept.conf.js` instead of `codecept.json`. It should export `config` object:
|
|
2428
|
-
|
|
2429
|
-
```js
|
|
2430
|
-
// inside codecept.conf.js
|
|
2431
|
-
exports.config = {
|
|
2432
|
-
// contents of codecept.js
|
|
2433
|
-
}
|
|
2434
|
-
```
|
|
2435
|
-
* Added `--profile` option to pass its value to `codecept.conf.js` as `process.profile` for [dynamic configuration](http://codecept.io/configuration#dynamic-configuration).
|
|
2436
|
-
* Documentation for [StepObjects, PageFragments](http://codecept.io/pageobjects#PageFragments) updated.
|
|
2437
|
-
* Documentation for [Configuration](http://codecept.io/configuration/) added.
|
|
2438
|
-
|
|
2439
|
-
## 0.4.2
|
|
2440
|
-
|
|
2441
|
-
* Added ability to localize tests with translation [#189](https://github.com/codeceptjs/CodeceptJS/issues/189). Thanks to **[abner](https://github.com/abner)**
|
|
2442
|
-
* **[Translation]** ru-RU translation added.
|
|
2443
|
-
* **[Translation]** pt-BR translation added.
|
|
2444
|
-
* **[Protractor]** Protractor 4.0.4 compatibility.
|
|
2445
|
-
* [WebDriverIO][SeleniumWebdriver][Protractor] Fixed single browser session mode for `restart: false`
|
|
2446
|
-
* Fixed using of 3rd party reporters (xunit, mocha-junit-reporter, mochawesome). Added guide.
|
|
2447
|
-
* Documentation for [Translation](http://codecept.io/translation/) added.
|
|
2448
|
-
* Documentation for [Reports](http://codecept.io/reports/) added.
|
|
2449
|
-
|
|
2450
|
-
## 0.4.1
|
|
2451
|
-
|
|
2452
|
-
* Added custom steps to step definition list. See [#174](https://github.com/codeceptjs/CodeceptJS/issues/174) by **[jayS-de](https://github.com/jayS-de)**
|
|
2453
|
-
* **[WebDriverIO]** Fixed using `waitForTimeout` option by **[stephane-ruhlmann](https://github.com/stephane-ruhlmann)**. See [#178](https://github.com/codeceptjs/CodeceptJS/issues/178)
|
|
2454
|
-
|
|
2455
|
-
## 0.4.0
|
|
2456
|
-
|
|
2457
|
-
* **[Nightmare](http://codecept.io/nightmare) Helper** added for faster web testing.
|
|
2458
|
-
* [Protractor][SeleniumWebdriver][WebDriverIO] added `restart: false` option to reuse one browser between tests (improves speed).
|
|
2459
|
-
* **Protractor 4.0** compatibility. Please upgrade Protractor library.
|
|
2460
|
-
* Added `--verbose` option for `run` command to log and print global promise and events.
|
|
2461
|
-
* Fixed errors with shutting down and cleanup.
|
|
2462
|
-
* Fixed starting interactive shell with `codeceptjs shell`.
|
|
2463
|
-
* Fixed handling of failures inside within block
|
|
2464
|
-
|
|
2465
|
-
## 0.3.5
|
|
2466
|
-
|
|
2467
|
-
* Introduced IDE autocompletion support for Visual Studio Code and others. Added command for generating TypeScript definitions for `I` object. Use it as
|
|
2468
|
-
|
|
2469
|
-
```
|
|
2470
|
-
codeceptjs def
|
|
2471
|
-
```
|
|
2472
|
-
|
|
2473
|
-
to generate steps definition file and include it into tests by reference. By **[kaflan](https://github.com/kaflan)**
|
|
2474
|
-
|
|
2475
|
-
## 0.3.4
|
|
2476
|
-
|
|
2477
|
-
* **[Protractor]** version 3.3.0 comptaibility, NPM 3 compatibility. Please update Protractor!
|
|
2478
|
-
* allows using absolute path for helpers, output, in config and in command line. By **[denis-sokolov](https://github.com/denis-sokolov)**
|
|
2479
|
-
* Fixes 'Cannot read property '1' of null in generate.js:44' by **[seethislight](https://github.com/seethislight)**
|
|
2480
|
-
|
|
2481
|
-
## 0.3.3
|
|
2482
|
-
|
|
2483
|
-
**Fixed global installation**. CodeceptJS can now locate globally located modules.
|
|
2484
|
-
CodeceptJS is also recommended for local installation.
|
|
2485
|
-
Depending on installation type additional modules (webdriverio, protractor, ...) will be loaded either from local or from global path.
|
|
2486
|
-
|
|
2487
|
-
## 0.3.2
|
|
2488
|
-
|
|
2489
|
-
* Added `codeceptjs list` command which shows all available methods of `I` object.
|
|
2490
|
-
* [Protractor][SeleniumWebdriver] fixed closing browser instances
|
|
2491
|
-
* [Protractor][SeleniumWebdriver] `doubleClick` method added
|
|
2492
|
-
* [WebDriverIO][Protractor][SeleniumWebdriver] `doubleClick` method to locate clickable elements by text, `context` option added.
|
|
2493
|
-
* Fixed using assert in generator without yields [#89](https://github.com/codeceptjs/CodeceptJS/issues/89)
|
|
2494
|
-
|
|
2495
|
-
## 0.3.1
|
|
2496
|
-
|
|
2497
|
-
* Fixed `init` command
|
|
2498
|
-
|
|
2499
|
-
## 0.3.0
|
|
2500
|
-
|
|
2501
|
-
**Breaking Change**: webdriverio package removed from dependencies list. You will need to install it manually after the upgrade.
|
|
2502
|
-
Starting from 0.3.0 webdriverio is not the only backend for running selenium tests, so you are free to choose between Protractor, SeleniumWebdriver, and webdriverio and install them.
|
|
2503
|
-
|
|
2504
|
-
* **[Protractor] helper added**. Now you can test AngularJS applications by using its official library within the unigied CodeceptJS API!
|
|
2505
|
-
* **[SeleniumWebdriver] helper added**. You can switch to official JS bindings for Selenium.
|
|
2506
|
-
* **[WebDriverIO]** **updated to webdriverio v 4.0**
|
|
2507
|
-
* **[WebDriverIO]** `clearField` method added by **[fabioel](https://github.com/fabioel)**
|
|
2508
|
-
* **[WebDriverIO]** added `dragAndDrop` by **[fabioel](https://github.com/fabioel)**
|
|
2509
|
-
* **[WebDriverIO]** fixed `scrollTo` method by **[sensone](https://github.com/sensone)**
|
|
2510
|
-
* **[WebDriverIO]** fixed `windowSize: maximize` option in config
|
|
2511
|
-
* **[WebDriverIO]** `seeElement` and `dontSeeElement` check element for visibility by **[fabioel](https://github.com/fabioel)** and **[davertmik](https://github.com/davertmik)**
|
|
2512
|
-
* **[WebDriverIO]** `seeElementInDOM`, `dontSeeElementInDOM` added to check element exists on page.
|
|
2513
|
-
* **[WebDriverIO]** fixed saving screenshots on failure. Fixes [#70](https://github.com/codeceptjs/CodeceptJS/issues/70)
|
|
2514
|
-
* fixed `within` block doesn't end in output not [#79](https://github.com/codeceptjs/CodeceptJS/issues/79)
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
## 0.2.8
|
|
2518
|
-
|
|
2519
|
-
* **[WebDriverIO]** added `seeNumberOfElements` by **[fabioel](https://github.com/fabioel)**
|
|
2520
|
-
|
|
2521
|
-
## 0.2.7
|
|
2522
|
-
|
|
2523
|
-
* process ends with exit code 1 on error or failure [#49](https://github.com/codeceptjs/CodeceptJS/issues/49)
|
|
2524
|
-
* fixed registereing global Helper [#57](https://github.com/codeceptjs/CodeceptJS/issues/57)
|
|
2525
|
-
* fixed handling error in within block [#50](https://github.com/codeceptjs/CodeceptJS/issues/50)
|
|
2526
|
-
|
|
2527
|
-
## 0.2.6
|
|
2528
|
-
|
|
2529
|
-
* Fixed `done() was called multiple times`
|
|
2530
|
-
* **[WebDriverIO]** added `waitToHide` method by **[fabioel](https://github.com/fabioel)**
|
|
2531
|
-
* Added global `Helper` (alias `codecept_helper)`, object use for writing custom Helpers. Generator updated. Changes to [#48](https://github.com/codeceptjs/CodeceptJS/issues/48)
|
|
2532
|
-
|
|
2533
|
-
## 0.2.5
|
|
2534
|
-
|
|
2535
|
-
* Fixed issues with using yield inside a test [#45](https://github.com/codeceptjs/CodeceptJS/issues/45) [#47](https://github.com/codeceptjs/CodeceptJS/issues/47) [#43](https://github.com/codeceptjs/CodeceptJS/issues/43)
|
|
2536
|
-
* Fixed generating a custom helper. Helper class is now accessible with `codecept_helper` var. Fixes [#48](https://github.com/codeceptjs/CodeceptJS/issues/48)
|
|
2537
|
-
|
|
2538
|
-
## 0.2.4
|
|
2539
|
-
|
|
2540
|
-
* Fixed accessing helpers from custom helper by **[pim](https://github.com/pim)**.
|
|
2541
|
-
|
|
2542
|
-
## 0.2.3
|
|
2543
|
-
|
|
2544
|
-
* **[WebDriverIO]** fixed `seeInField` to work with single value elements like: input[type=text], textareas, and multiple: select, input[type=radio], input[type=checkbox]
|
|
2545
|
-
* **[WebDriverIO]** fixed `pressKey`, key modifeiers (Control, Command, Alt, Shift) are released after the action
|
|
2546
|
-
|
|
2547
|
-
## 0.2.2
|
|
2548
|
-
|
|
2549
|
-
Fixed generation of custom steps file and page objects.
|
|
2550
|
-
Please replace `require('codeceptjs/actor')` to `actor` in your `custom_steps.js`.
|
|
2551
|
-
Whenever you need to create `I` object (in page objects, custom steps, but not in tests) just call `actor()`;
|
|
2552
|
-
|
|
2553
|
-
## 0.2.0
|
|
2554
|
-
|
|
2555
|
-
* **within** context hook added
|
|
2556
|
-
* `--reporter` option supported
|
|
2557
|
-
* **[WebDriverIO]** added features and methods:
|
|
2558
|
-
- elements: `seeElement`, ...
|
|
2559
|
-
- popups: `acceptPopup`, `cancelPopup`, `seeInPopup`,...
|
|
2560
|
-
- navigation: `moveCursorTo`, `scrollTo`
|
|
2561
|
-
- saving screenshots on failure; `saveScreenshot`
|
|
2562
|
-
- cookies: `setCookie`, `seeCookie`, ...
|
|
2563
|
-
- source: `seeInSource`
|
|
2564
|
-
- form: `seeCheckboxIsChecked`, `selectOption` to support multiple selects
|
|
2565
|
-
- keyboard: `appendField`, `pressKey`
|
|
2566
|
-
- mouse: `rightClick`
|
|
2567
|
-
* tests added
|
|
2568
|
-
* **[WebDriverIO]** proxy configuration added by **[petehouston](https://github.com/petehouston)**
|
|
2569
|
-
* **[WebDriverIO]** fixed `waitForText` method by **[roadhump](https://github.com/roadhump)**. Fixes [#11](https://github.com/codeceptjs/CodeceptJS/issues/11)
|
|
2570
|
-
* Fixed creating output dir when it already exists on init by **[alfirin](https://github.com/alfirin)**
|
|
2571
|
-
* Fixed loading of custom helpers
|
|
2572
|
-
|