codeceptjs 3.3.0 → 3.3.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.
Files changed (139) hide show
  1. package/CHANGELOG.md +50 -1
  2. package/README.md +6 -1
  3. package/docs/api.md +1 -1
  4. package/docs/bdd.md +1 -0
  5. package/docs/best.md +1 -1
  6. package/docs/build/ApiDataFactory.js +4 -3
  7. package/docs/build/Appium.js +21 -16
  8. package/docs/build/GraphQL.js +4 -2
  9. package/docs/build/GraphQLDataFactory.js +3 -3
  10. package/docs/build/JSONResponse.js +1 -1
  11. package/docs/build/Nightmare.js +54 -25
  12. package/docs/build/Playwright.js +105 -52
  13. package/docs/build/Protractor.js +72 -34
  14. package/docs/build/Puppeteer.js +80 -37
  15. package/docs/build/REST.js +5 -2
  16. package/docs/build/TestCafe.js +54 -23
  17. package/docs/build/WebDriver.js +115 -67
  18. package/docs/changelog.md +50 -1
  19. package/docs/custom-helpers.md +1 -1
  20. package/docs/data.md +2 -2
  21. package/docs/helpers/ApiDataFactory.md +7 -3
  22. package/docs/helpers/Appium.md +217 -175
  23. package/docs/helpers/GraphQL.md +6 -0
  24. package/docs/helpers/GraphQLDataFactory.md +3 -3
  25. package/docs/helpers/JSONResponse.md +1 -1
  26. package/docs/helpers/Nightmare.md +98 -45
  27. package/docs/helpers/Playwright.md +151 -59
  28. package/docs/helpers/Puppeteer.md +103 -26
  29. package/docs/helpers/REST.md +1 -1
  30. package/docs/helpers/TestCafe.md +77 -22
  31. package/docs/helpers/WebDriver.md +150 -62
  32. package/docs/index.md +1 -1
  33. package/docs/locators.md +1 -1
  34. package/docs/webapi/amOnPage.mustache +2 -1
  35. package/docs/webapi/appendField.mustache +2 -1
  36. package/docs/webapi/attachFile.mustache +2 -1
  37. package/docs/webapi/checkOption.mustache +2 -1
  38. package/docs/webapi/clearCookie.mustache +2 -1
  39. package/docs/webapi/clearField.mustache +1 -0
  40. package/docs/webapi/click.mustache +2 -1
  41. package/docs/webapi/clickLink.mustache +2 -1
  42. package/docs/webapi/closeCurrentTab.mustache +6 -4
  43. package/docs/webapi/closeOtherTabs.mustache +6 -4
  44. package/docs/webapi/dontSee.mustache +1 -0
  45. package/docs/webapi/dontSeeCheckboxIsChecked.mustache +1 -0
  46. package/docs/webapi/dontSeeCookie.mustache +2 -1
  47. package/docs/webapi/dontSeeCurrentUrlEquals.mustache +2 -1
  48. package/docs/webapi/dontSeeElement.mustache +2 -1
  49. package/docs/webapi/dontSeeElementInDOM.mustache +2 -1
  50. package/docs/webapi/dontSeeInCurrentUrl.mustache +2 -1
  51. package/docs/webapi/dontSeeInField.mustache +2 -1
  52. package/docs/webapi/dontSeeInSource.mustache +1 -0
  53. package/docs/webapi/dontSeeInTitle.mustache +2 -1
  54. package/docs/webapi/doubleClick.mustache +1 -0
  55. package/docs/webapi/downloadFile.mustache +2 -1
  56. package/docs/webapi/dragAndDrop.mustache +1 -0
  57. package/docs/webapi/dragSlider.mustache +2 -1
  58. package/docs/webapi/executeAsyncScript.mustache +1 -1
  59. package/docs/webapi/executeScript.mustache +1 -1
  60. package/docs/webapi/fillField.mustache +1 -0
  61. package/docs/webapi/forceClick.mustache +1 -0
  62. package/docs/webapi/forceRightClick.mustache +1 -0
  63. package/docs/webapi/grabDataFromPerformanceTiming.mustache +2 -1
  64. package/docs/webapi/moveCursorTo.mustache +1 -0
  65. package/docs/webapi/openNewTab.mustache +6 -4
  66. package/docs/webapi/pressKey.mustache +2 -1
  67. package/docs/webapi/pressKeyDown.mustache +1 -0
  68. package/docs/webapi/pressKeyUp.mustache +1 -0
  69. package/docs/webapi/pressKeyWithKeyNormalization.mustache +1 -0
  70. package/docs/webapi/refreshPage.mustache +1 -0
  71. package/docs/webapi/resizeWindow.mustache +2 -1
  72. package/docs/webapi/rightClick.mustache +1 -0
  73. package/docs/webapi/saveElementScreenshot.mustache +1 -0
  74. package/docs/webapi/saveScreenshot.mustache +2 -1
  75. package/docs/webapi/say.mustache +2 -1
  76. package/docs/webapi/scrollIntoView.mustache +1 -0
  77. package/docs/webapi/scrollPageToBottom.mustache +1 -0
  78. package/docs/webapi/scrollPageToTop.mustache +1 -0
  79. package/docs/webapi/scrollTo.mustache +2 -1
  80. package/docs/webapi/see.mustache +2 -1
  81. package/docs/webapi/seeAttributesOnElements.mustache +2 -1
  82. package/docs/webapi/seeCheckboxIsChecked.mustache +1 -0
  83. package/docs/webapi/seeCookie.mustache +1 -0
  84. package/docs/webapi/seeCssPropertiesOnElements.mustache +2 -1
  85. package/docs/webapi/seeCurrentUrlEquals.mustache +2 -1
  86. package/docs/webapi/seeElement.mustache +2 -1
  87. package/docs/webapi/seeElementInDOM.mustache +1 -0
  88. package/docs/webapi/seeInCurrentUrl.mustache +2 -1
  89. package/docs/webapi/seeInField.mustache +1 -0
  90. package/docs/webapi/seeInPopup.mustache +1 -0
  91. package/docs/webapi/seeInSource.mustache +2 -1
  92. package/docs/webapi/seeInTitle.mustache +2 -1
  93. package/docs/webapi/seeNumberOfElements.mustache +1 -0
  94. package/docs/webapi/seeNumberOfVisibleElements.mustache +1 -0
  95. package/docs/webapi/seeTextEquals.mustache +2 -1
  96. package/docs/webapi/seeTitleEquals.mustache +6 -5
  97. package/docs/webapi/selectOption.mustache +1 -0
  98. package/docs/webapi/setCookie.mustache +1 -0
  99. package/docs/webapi/setGeoLocation.mustache +1 -0
  100. package/docs/webapi/switchTo.mustache +2 -1
  101. package/docs/webapi/switchToNextTab.mustache +8 -7
  102. package/docs/webapi/switchToPreviousTab.mustache +8 -7
  103. package/docs/webapi/type.mustache +1 -0
  104. package/docs/webapi/uncheckOption.mustache +2 -1
  105. package/docs/webapi/wait.mustache +2 -1
  106. package/docs/webapi/waitForClickable.mustache +2 -1
  107. package/docs/webapi/waitForDetached.mustache +2 -1
  108. package/docs/webapi/waitForElement.mustache +2 -1
  109. package/docs/webapi/waitForEnabled.mustache +2 -1
  110. package/docs/webapi/waitForFunction.mustache +1 -0
  111. package/docs/webapi/waitForInvisible.mustache +2 -1
  112. package/docs/webapi/waitForText.mustache +2 -1
  113. package/docs/webapi/waitForValue.mustache +1 -0
  114. package/docs/webapi/waitForVisible.mustache +1 -0
  115. package/docs/webapi/waitInUrl.mustache +2 -1
  116. package/docs/webapi/waitNumberOfVisibleElements.mustache +2 -1
  117. package/docs/webapi/waitToHide.mustache +2 -1
  118. package/docs/webapi/waitUrlEquals.mustache +2 -1
  119. package/lib/cli.js +1 -1
  120. package/lib/command/definitions.js +9 -0
  121. package/lib/command/run-workers.js +1 -1
  122. package/lib/command/run.js +2 -2
  123. package/lib/command/workers/runTests.js +55 -0
  124. package/lib/helper/ApiDataFactory.js +4 -3
  125. package/lib/helper/Appium.js +2 -7
  126. package/lib/helper/GraphQL.js +4 -2
  127. package/lib/helper/GraphQLDataFactory.js +3 -3
  128. package/lib/helper/JSONResponse.js +1 -1
  129. package/lib/helper/Playwright.js +28 -17
  130. package/lib/helper/REST.js +5 -2
  131. package/lib/helper/WebDriver.js +4 -0
  132. package/lib/interfaces/bdd.js +5 -0
  133. package/lib/listener/steps.js +1 -0
  134. package/lib/output.js +4 -0
  135. package/lib/plugin/fakerTransform.js +1 -1
  136. package/lib/plugin/stepByStepReport.js +8 -6
  137. package/lib/workers.js +12 -0
  138. package/package.json +3 -3
  139. package/typings/types.d.ts +534 -112
package/docs/index.md CHANGED
@@ -86,7 +86,7 @@ Scenario('Checkout test', ({ I }) => {
86
86
  Can we use it for long scenarios? Sure!
87
87
 
88
88
  ```js
89
- const faker = require('faker'); // Use 3rd-party JS code
89
+ const faker = require('@faker-js/faker'); // Use 3rd-party JS code
90
90
 
91
91
  Feature('Store');
92
92
 
package/docs/locators.md CHANGED
@@ -243,7 +243,7 @@ Instead of writing a full CSS locator like `[data-qa-id=user_name]` simplify it
243
243
 
244
244
  ```js
245
245
  // replace this:
246
- I.click({ css: '[data-test-id=register_button]');
246
+ I.click({ css: '[data-test-id=register_button]'});
247
247
  // with this:
248
248
  I.click('$register_button');
249
249
  ```
@@ -7,4 +7,5 @@ I.amOnPage('https://github.com'); // opens github
7
7
  I.amOnPage('/login'); // opens a login page
8
8
  ```
9
9
 
10
- @param {string} url url path or global url.
10
+ @param {string} url url path or global url.
11
+ @return {void} automatically synchronized promise with recorder #!
@@ -5,4 +5,5 @@ Field is located by name, label, CSS or XPath
5
5
  I.appendField('#myTextField', 'appended');
6
6
  ```
7
7
  @param {CodeceptJS.LocatorOrString} field located by label|name|CSS|XPath|strict locator
8
- @param {string} value text value to append.
8
+ @param {string} value text value to append.
9
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -8,4 +8,5 @@ I.attachFile('form input[name=avatar]', 'data/avatar.jpg');
8
8
  ```
9
9
 
10
10
  @param {CodeceptJS.LocatorOrString} locator field located by label|name|CSS|XPath|strict locator.
11
- @param {string} pathToFile local file path relative to codecept.json config file.
11
+ @param {string} pathToFile local file path relative to codecept.json config file.
12
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -9,4 +9,5 @@ I.checkOption('I Agree to Terms and Conditions');
9
9
  I.checkOption('agree', '//form');
10
10
  ```
11
11
  @param {CodeceptJS.LocatorOrString} field checkbox located by label | name | CSS | XPath | strict locator.
12
- @param {?CodeceptJS.LocatorOrString} [context=null] (optional, `null` by default) element located by CSS | XPath | strict locator.
12
+ @param {?CodeceptJS.LocatorOrString} [context=null] (optional, `null` by default) element located by CSS | XPath | strict locator.
13
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -6,4 +6,5 @@ I.clearCookie();
6
6
  I.clearCookie('test');
7
7
  ```
8
8
 
9
- @param {?string} [cookie=null] (optional, `null` by default) cookie name
9
+ @param {?string} [cookie=null] (optional, `null` by default) cookie name
10
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -6,3 +6,4 @@ I.clearField('user[email]');
6
6
  I.clearField('#email');
7
7
  ```
8
8
  @param {LocatorOrString} editable field located by label|name|CSS|XPath|strict locator.
9
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -21,4 +21,5 @@ I.click({css: 'nav a.login'});
21
21
  ```
22
22
 
23
23
  @param {CodeceptJS.LocatorOrString} locator clickable link or button located by text, or any element located by CSS|XPath|strict locator.
24
- @param {?CodeceptJS.LocatorOrString} [context=null] (optional, `null` by default) element to search in CSS|XPath|Strict locator.
24
+ @param {?CodeceptJS.LocatorOrString | null} [context=null] (optional, `null` by default) element to search in CSS|XPath|Strict locator.
25
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -4,4 +4,5 @@ Performs a click on a link and waits for navigation before moving on.
4
4
  I.clickLink('Logout', '#nav');
5
5
  ```
6
6
  @param {CodeceptJS.LocatorOrString} locator clickable link or button located by text, or any element located by CSS|XPath|strict locator
7
- @param {?CodeceptJS.LocatorOrString} [context=null] (optional, `null` by default) element to search in CSS|XPath|Strict locator
7
+ @param {?CodeceptJS.LocatorOrString} [context=null] (optional, `null` by default) element to search in CSS|XPath|Strict locator
8
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -1,5 +1,7 @@
1
- Close current tab.
1
+ Close current tab.
2
2
 
3
- ```js
4
- I.closeCurrentTab();
5
- ```
3
+ ```js
4
+ I.closeCurrentTab();
5
+ ```
6
+
7
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -1,6 +1,8 @@
1
- Close all tabs except for the current one.
1
+ Close all tabs except for the current one.
2
2
 
3
3
 
4
- ```js
5
- I.closeOtherTabs();
6
- ```
4
+ ```js
5
+ I.closeOtherTabs();
6
+ ```
7
+
8
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -8,3 +8,4 @@ I.dontSee('Login', '.nav'); // no login inside .nav element
8
8
 
9
9
  @param {string} text which is not present.
10
10
  @param {CodeceptJS.LocatorOrString} [context] (optional) element located by CSS|XPath|strict locator in which to perfrom search.
11
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -7,3 +7,4 @@ I.dontSeeCheckboxIsChecked('agree'); // located by name
7
7
  ```
8
8
 
9
9
  @param {CodeceptJS.LocatorOrString} field located by label|name|CSS|XPath|strict locator.
10
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -4,4 +4,5 @@ Checks that cookie with given name does not exist.
4
4
  I.dontSeeCookie('auth'); // no auth cookie
5
5
  ```
6
6
 
7
- @param {string} name cookie name.
7
+ @param {string} name cookie name.
8
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -6,4 +6,5 @@ I.dontSeeCurrentUrlEquals('/login'); // relative url are ok
6
6
  I.dontSeeCurrentUrlEquals('http://mysite.com/login'); // absolute urls are also ok
7
7
  ```
8
8
 
9
- @param {string} url value to check.
9
+ @param {string} url value to check.
10
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -4,4 +4,5 @@ Opposite to `seeElement`. Checks that element is not visible (or in DOM)
4
4
  I.dontSeeElement('.modal'); // modal is not shown
5
5
  ```
6
6
 
7
- @param {CodeceptJS.LocatorOrString} locator located by CSS|XPath|Strict locator.
7
+ @param {CodeceptJS.LocatorOrString} locator located by CSS|XPath|Strict locator.
8
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -4,4 +4,5 @@ Opposite to `seeElementInDOM`. Checks that element is not on page.
4
4
  I.dontSeeElementInDOM('.nav'); // checks that element is not on page visible or not
5
5
  ```
6
6
 
7
- @param {CodeceptJS.LocatorOrString} locator located by CSS|XPath|Strict locator.
7
+ @param {CodeceptJS.LocatorOrString} locator located by CSS|XPath|Strict locator.
8
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -1,3 +1,4 @@
1
1
  Checks that current url does not contain a provided fragment.
2
2
 
3
- @param {string} url value to check.
3
+ @param {string} url value to check.
4
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -7,4 +7,5 @@ I.dontSeeInField({ css: 'form input.email' }, 'user@user.com'); // field by CSS
7
7
  ```
8
8
 
9
9
  @param {CodeceptJS.LocatorOrString} field located by label|name|CSS|XPath|strict locator.
10
- @param {string} value value to check.
10
+ @param {string} value value to check.
11
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -5,3 +5,4 @@ I.dontSeeInSource('<!--'); // no comments in source
5
5
  ```
6
6
 
7
7
  @param {string} value to check.
8
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -4,4 +4,5 @@ Checks that title does not contain text.
4
4
  I.dontSeeInTitle('Error');
5
5
  ```
6
6
 
7
- @param {string} text value to check.
7
+ @param {string} text value to check.
8
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -10,3 +10,4 @@ I.doubleClick('.btn.edit');
10
10
 
11
11
  @param {CodeceptJS.LocatorOrString} locator clickable link or button located by text, or any element located by CSS|XPath|strict locator.
12
12
  @param {?CodeceptJS.LocatorOrString} [context=null] (optional, `null` by default) element to search in CSS|XPath|Strict locator.
13
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -8,4 +8,5 @@ I.downloadFile('td[class="text-right file-link"] a', 'thisIsCustomName');
8
8
  ```
9
9
 
10
10
  @param {CodeceptJS.LocatorOrString} locator clickable link or button located by CSS|XPath locator.
11
- @param {string} file custom file name.
11
+ @param {string} file custom file name.
12
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -6,3 +6,4 @@ I.dragAndDrop('#dragHandle', '#container');
6
6
 
7
7
  @param {LocatorOrString} srcElement located by CSS|XPath|strict locator.
8
8
  @param {LocatorOrString} destElement located by CSS|XPath|strict locator.
9
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -7,4 +7,5 @@ I.dragSlider('#slider', -70);
7
7
  ```
8
8
 
9
9
  @param {CodeceptJS.LocatorOrString} locator located by label|name|CSS|XPath|strict locator.
10
- @param {number} offsetX position to drag.
10
+ @param {number} offsetX position to drag.
11
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -21,4 +21,4 @@ let val = await I.executeAsyncScript(function(url, done) {
21
21
 
22
22
  @param {string|function} fn function to be executed in browser context.
23
23
  @param {...any} args to be passed to function.
24
- @return {Promise<any>}
24
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -23,4 +23,4 @@ let date = await I.executeScript(function(el) {
23
23
 
24
24
  @param {string|function} fn function to be executed in browser context.
25
25
  @param {...any} args to be passed to function.
26
- @return {Promise<any>}
26
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -13,3 +13,4 @@ I.fillField({css: 'form#login input[name=username]'}, 'John');
13
13
  ```
14
14
  @param {CodeceptJS.LocatorOrString} field located by label|name|CSS|XPath|strict locator.
15
15
  @param {CodeceptJS.StringOrSecret} value text value to fill.
16
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -25,3 +25,4 @@ I.forceClick({css: 'nav a.login'});
25
25
 
26
26
  @param {CodeceptJS.LocatorOrString} locator clickable link or button located by text, or any element located by CSS|XPath|strict locator.
27
27
  @param {?CodeceptJS.LocatorOrString} [context=null] (optional, `null` by default) element to search in CSS|XPath|Strict locator.
28
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -15,3 +15,4 @@ I.forceRightClick('Menu');
15
15
 
16
16
  @param {CodeceptJS.LocatorOrString} locator clickable link or button located by text, or any element located by CSS|XPath|strict locator.
17
17
  @param {?CodeceptJS.LocatorOrString} [context=null] (optional, `null` by default) element to search in CSS|XPath|Strict locator.
18
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -16,4 +16,5 @@ let data = await I.grabDataFromPerformanceTiming();
16
16
  domContentLoadedEventEnd: 196,
17
17
  loadEventEnd: 241
18
18
  }
19
- ```
19
+ ```
20
+ @return {Promise<any>} automatically synchronized promise through #recorder
@@ -9,3 +9,4 @@ I.moveCursorTo('#submit', 5,5);
9
9
  @param {CodeceptJS.LocatorOrString} locator located by CSS|XPath|strict locator.
10
10
  @param {number} [offsetX=0] (optional, `0` by default) X-axis offset.
11
11
  @param {number} [offsetY=0] (optional, `0` by default) Y-axis offset.
12
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -1,5 +1,7 @@
1
- Open new tab and switch to it.
1
+ Open new tab and switch to it.
2
2
 
3
- ```js
4
- I.openNewTab();
5
- ```
3
+ ```js
4
+ I.openNewTab();
5
+ ```
6
+
7
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -8,4 +8,5 @@ I.pressKey('Enter');
8
8
  I.pressKey(['Control','a']);
9
9
  ```
10
10
 
11
- @param {string|string[]} key key or array of keys to press.
11
+ @param {string|string[]} key key or array of keys to press.
12
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -9,3 +9,4 @@ I.pressKeyUp('Control');
9
9
  ```
10
10
 
11
11
  @param {string} key name of key to press down.
12
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -9,3 +9,4 @@ I.pressKeyUp('Control');
9
9
  ```
10
10
 
11
11
  @param {string} key name of key to release.
12
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -57,3 +57,4 @@ Some of the supported key names are:
57
57
  - `'Tab'`
58
58
 
59
59
  @param {string|string[]} key key or array of keys to press.
60
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -3,3 +3,4 @@ Reload the current page.
3
3
  ```js
4
4
  I.refreshPage();
5
5
  ```
6
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -2,4 +2,5 @@ Resize the current window to provided width and height.
2
2
  First parameter can be set to `maximize`.
3
3
 
4
4
  @param {number} width width in pixels or `maximize`.
5
- @param {number} height height in pixels.
5
+ @param {number} height height in pixels.
6
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -11,3 +11,4 @@ I.rightClick('Click me', '.context');
11
11
 
12
12
  @param {CodeceptJS.LocatorOrString} locator clickable element located by CSS|XPath|strict locator.
13
13
  @param {?CodeceptJS.LocatorOrString} [context=null] (optional, `null` by default) element located by CSS|XPath|strict locator.
14
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -7,3 +7,4 @@ I.saveElementScreenshot(`#submit`,'debug.png');
7
7
 
8
8
  @param {CodeceptJS.LocatorOrString} locator element located by CSS|XPath|strict locator.
9
9
  @param {string} fileName file name to save.
10
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -8,4 +8,5 @@ I.saveScreenshot('debug.png', true) //resizes to available scrollHeight and scro
8
8
  ```
9
9
 
10
10
  @param {string} fileName file name to save.
11
- @param {boolean} [fullPage=false] (optional, `false` by default) flag to enable fullscreen screenshot mode.
11
+ @param {boolean} [fullPage=false] (optional, `false` by default) flag to enable fullscreen screenshot mode.
12
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -6,4 +6,5 @@ I.say('This is blue', 'blue'); //blue is used
6
6
  I.say('This is by default'); //cyan is used
7
7
  ```
8
8
  @param {string} text expected on console log.
9
- @param {string} [color='cyan'] color you want to use.
9
+ @param {string} [color='cyan'] color you want to use.
10
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -8,3 +8,4 @@ I.scrollIntoView('#submit', { behavior: "smooth", block: "center", inline: "cent
8
8
 
9
9
  @param {LocatorOrString} locator located by CSS|XPath|strict locator.
10
10
  @param {ScrollIntoViewOptions} scrollIntoViewOptions see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView.
11
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -3,3 +3,4 @@ Scroll page to the bottom.
3
3
  ```js
4
4
  I.scrollPageToBottom();
5
5
  ```
6
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -3,3 +3,4 @@ Scroll page to the top.
3
3
  ```js
4
4
  I.scrollPageToTop();
5
5
  ```
6
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -8,4 +8,5 @@ I.scrollTo('#submit', 5, 5);
8
8
 
9
9
  @param {CodeceptJS.LocatorOrString} locator located by CSS|XPath|strict locator.
10
10
  @param {number} [offsetX=0] (optional, `0` by default) X-axis offset.
11
- @param {number} [offsetY=0] (optional, `0` by default) Y-axis offset.
11
+ @param {number} [offsetY=0] (optional, `0` by default) Y-axis offset.
12
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -7,4 +7,5 @@ I.see('Welcome', '.content'); // text inside .content div
7
7
  I.see('Register', {css: 'form.register'}); // use strict locator
8
8
  ```
9
9
  @param {string} text expected on page.
10
- @param {?CodeceptJS.LocatorOrString} [context=null] (optional, `null` by default) element located by CSS|Xpath|strict locator in which to search for text.
10
+ @param {?CodeceptJS.LocatorOrString} [context=null] (optional, `null` by default) element located by CSS|Xpath|strict locator in which to search for text.
11
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -5,4 +5,5 @@ I.seeAttributesOnElements('//form', { method: "post"});
5
5
  ```
6
6
 
7
7
  @param {CodeceptJS.LocatorOrString} locator located by CSS|XPath|strict locator.
8
- @param {object} attributes attributes and their values to check.
8
+ @param {object} attributes attributes and their values to check.
9
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -7,3 +7,4 @@ I.seeCheckboxIsChecked({css: '#signup_form input[type=checkbox]'});
7
7
  ```
8
8
 
9
9
  @param {CodeceptJS.LocatorOrString} field located by label|name|CSS|XPath|strict locator.
10
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -5,3 +5,4 @@ I.seeCookie('Auth');
5
5
  ```
6
6
 
7
7
  @param {string} name cookie name.
8
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -5,4 +5,5 @@ I.seeCssPropertiesOnElements('h3', { 'font-weight': "bold"});
5
5
  ```
6
6
 
7
7
  @param {CodeceptJS.LocatorOrString} locator located by CSS|XPath|strict locator.
8
- @param {object} cssProperties object with CSS properties and their values to check.
8
+ @param {object} cssProperties object with CSS properties and their values to check.
9
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -7,4 +7,5 @@ I.seeCurrentUrlEquals('/register');
7
7
  I.seeCurrentUrlEquals('http://my.site.com/register');
8
8
  ```
9
9
 
10
- @param {string} url value to check.
10
+ @param {string} url value to check.
11
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -4,4 +4,5 @@ Element is located by CSS or XPath.
4
4
  ```js
5
5
  I.seeElement('#modal');
6
6
  ```
7
- @param {CodeceptJS.LocatorOrString} locator located by CSS|XPath|strict locator.
7
+ @param {CodeceptJS.LocatorOrString} locator located by CSS|XPath|strict locator.
8
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -5,3 +5,4 @@ Element is located by CSS or XPath.
5
5
  I.seeElementInDOM('#modal');
6
6
  ```
7
7
  @param {CodeceptJS.LocatorOrString} locator element located by CSS|XPath|strict locator.
8
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -4,4 +4,5 @@ Checks that current url contains a provided fragment.
4
4
  I.seeInCurrentUrl('/register'); // we are on registration page
5
5
  ```
6
6
 
7
- @param {string} url a fragment to check
7
+ @param {string} url a fragment to check
8
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -9,3 +9,4 @@ I.seeInField('#searchform input','Search');
9
9
  ```
10
10
  @param {CodeceptJS.LocatorOrString} field located by label|name|CSS|XPath|strict locator.
11
11
  @param {string} value value to check.
12
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -5,3 +5,4 @@ given string.
5
5
  I.seeInPopup('Popup text');
6
6
  ```
7
7
  @param {string} text value to check.
8
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -3,4 +3,5 @@ Checks that the current page contains the given string in its raw source code.
3
3
  ```js
4
4
  I.seeInSource('<h1>Green eggs &amp; ham</h1>');
5
5
  ```
6
- @param {string} text value to check.
6
+ @param {string} text value to check.
7
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -4,4 +4,5 @@ Checks that title contains text.
4
4
  I.seeInTitle('Home Page');
5
5
  ```
6
6
 
7
- @param {string} text text value to check.
7
+ @param {string} text text value to check.
8
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -8,3 +8,4 @@ I.seeNumberOfElements('#submitBtn', 1);
8
8
 
9
9
  @param {CodeceptJS.LocatorOrString} locator element located by CSS|XPath|strict locator.
10
10
  @param {number} num number of elements.
11
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -7,3 +7,4 @@ I.seeNumberOfVisibleElements('.buttons', 3);
7
7
 
8
8
  @param {CodeceptJS.LocatorOrString} locator element located by CSS|XPath|strict locator.
9
9
  @param {number} num number of elements.
10
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -5,4 +5,5 @@ I.seeTextEquals('text', 'h1');
5
5
  ```
6
6
 
7
7
  @param {string} text element value to check.
8
- @param {CodeceptJS.LocatorOrString?} [context=null] element located by CSS|XPath|strict locator.
8
+ @param {CodeceptJS.LocatorOrString?} [context=null] element located by CSS|XPath|strict locator.
9
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -1,7 +1,8 @@
1
- Checks that title is equal to provided one.
1
+ Checks that title is equal to provided one.
2
2
 
3
- ```js
4
- I.seeTitleEquals('Test title.');
5
- ```
3
+ ```js
4
+ I.seeTitleEquals('Test title.');
5
+ ```
6
6
 
7
- @param {string} text value to check.
7
+ @param {string} text value to check.
8
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -18,3 +18,4 @@ I.selectOption('Which OS do you use?', ['Android', 'iOS']);
18
18
  ```
19
19
  @param {LocatorOrString} select field located by label|name|CSS|XPath|strict locator.
20
20
  @param {string|Array<*>} option visible text or value of option.
21
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -13,3 +13,4 @@ I.setCookie([
13
13
  ```
14
14
 
15
15
  @param {Cookie|Array<Cookie>} cookie a cookie object or array of cookie objects.
16
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -9,3 +9,4 @@ I.setGeoLocation(121.21, 11.56, 10);
9
9
  @param {number} latitude to set.
10
10
  @param {number} longitude to set
11
11
  @param {number=} altitude (optional, null by default) to set
12
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -5,4 +5,5 @@ I.switchTo('iframe'); // switch to first iframe
5
5
  I.switchTo(); // switch back to main page
6
6
  ```
7
7
 
8
- @param {?CodeceptJS.LocatorOrString} [locator=null] (optional, `null` by default) element located by CSS|XPath|strict locator.
8
+ @param {?CodeceptJS.LocatorOrString} [locator=null] (optional, `null` by default) element located by CSS|XPath|strict locator.
9
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -1,9 +1,10 @@
1
- Switch focus to a particular tab by its number. It waits tabs loading and then switch tab.
1
+ Switch focus to a particular tab by its number. It waits tabs loading and then switch tab.
2
2
 
3
- ```js
4
- I.switchToNextTab();
5
- I.switchToNextTab(2);
6
- ```
3
+ ```js
4
+ I.switchToNextTab();
5
+ I.switchToNextTab(2);
6
+ ```
7
7
 
8
- @param {number} [num] (optional) number of tabs to switch forward, default: 1.
9
- @param {number | null} [sec] (optional) time in seconds to wait.
8
+ @param {number} [num] (optional) number of tabs to switch forward, default: 1.
9
+ @param {number | null} [sec] (optional) time in seconds to wait.
10
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -1,9 +1,10 @@
1
- Switch focus to a particular tab by its number. It waits tabs loading and then switch tab.
1
+ Switch focus to a particular tab by its number. It waits tabs loading and then switch tab.
2
2
 
3
- ```js
4
- I.switchToPreviousTab();
5
- I.switchToPreviousTab(2);
6
- ```
3
+ ```js
4
+ I.switchToPreviousTab();
5
+ I.switchToPreviousTab(2);
6
+ ```
7
7
 
8
- @param {number} [num] (optional) number of tabs to switch backward, default: 1.
9
- @param {number?} [sec] (optional) time in seconds to wait.
8
+ @param {number} [num] (optional) number of tabs to switch backward, default: 1.
9
+ @param {number?} [sec] (optional) time in seconds to wait.
10
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -15,3 +15,4 @@ I.type(['T', 'E', 'X', 'T']);
15
15
 
16
16
  @param {string|string[]} key or array of keys to type.
17
17
  @param {?number} [delay=null] (optional) delay in ms between key presses
18
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -9,4 +9,5 @@ I.uncheckOption('I Agree to Terms and Conditions');
9
9
  I.uncheckOption('agree', '//form');
10
10
  ```
11
11
  @param {CodeceptJS.LocatorOrString} field checkbox located by label | name | CSS | XPath | strict locator.
12
- @param {?CodeceptJS.LocatorOrString} [context=null] (optional, `null` by default) element located by CSS | XPath | strict locator.
12
+ @param {?CodeceptJS.LocatorOrString} [context=null] (optional, `null` by default) element located by CSS | XPath | strict locator.
13
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -4,4 +4,5 @@ Pauses execution for a number of seconds.
4
4
  I.wait(2); // wait 2 secs
5
5
  ```
6
6
 
7
- @param {number} sec number of second to wait.
7
+ @param {number} sec number of second to wait.
8
+ [!] returns a _promise_ which is synchronized internally by recorder
@@ -7,4 +7,5 @@ I.waitForClickable('.btn.continue', 5); // wait for 5 secs
7
7
  ```
8
8
 
9
9
  @param {CodeceptJS.LocatorOrString} locator element located by CSS|XPath|strict locator.
10
- @param {number} [sec] (optional, `1` by default) time in seconds to wait
10
+ @param {number} [sec] (optional, `1` by default) time in seconds to wait
11
+ [!] returns a _promise_ which is synchronized internally by recorder