codeceptjs 3.5.6 → 3.5.7

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/README.md +5 -1
  2. package/docs/advanced.md +1 -1
  3. package/docs/bdd.md +11 -7
  4. package/docs/build/ApiDataFactory.js +2 -1
  5. package/docs/build/Appium.js +26 -23
  6. package/docs/build/Expect.js +422 -0
  7. package/docs/build/Nightmare.js +53 -56
  8. package/docs/build/Playwright.js +202 -103
  9. package/docs/build/Protractor.js +66 -69
  10. package/docs/build/Puppeteer.js +124 -81
  11. package/docs/build/TestCafe.js +56 -55
  12. package/docs/build/WebDriver.js +81 -82
  13. package/docs/changelog.md +562 -1
  14. package/docs/commands.md +12 -0
  15. package/docs/community-helpers.md +8 -4
  16. package/docs/examples.md +8 -2
  17. package/docs/helpers/Appium.md +50 -32
  18. package/docs/helpers/Expect.md +275 -0
  19. package/docs/helpers/Nightmare.md +141 -94
  20. package/docs/helpers/Playwright.md +360 -261
  21. package/docs/helpers/Protractor.md +229 -169
  22. package/docs/helpers/Puppeteer.md +270 -187
  23. package/docs/helpers/TestCafe.md +201 -149
  24. package/docs/helpers/WebDriver.md +252 -178
  25. package/docs/mobile.md +17 -21
  26. package/docs/plugins.md +35 -1
  27. package/docs/webapi/amOnPage.mustache +1 -1
  28. package/docs/webapi/appendField.mustache +1 -1
  29. package/docs/webapi/attachFile.mustache +1 -1
  30. package/docs/webapi/blur.mustache +1 -0
  31. package/docs/webapi/checkOption.mustache +1 -1
  32. package/docs/webapi/clearCookie.mustache +1 -1
  33. package/docs/webapi/clearField.mustache +1 -1
  34. package/docs/webapi/click.mustache +1 -1
  35. package/docs/webapi/clickLink.mustache +1 -1
  36. package/docs/webapi/closeCurrentTab.mustache +1 -1
  37. package/docs/webapi/closeOtherTabs.mustache +1 -1
  38. package/docs/webapi/dontSee.mustache +1 -1
  39. package/docs/webapi/dontSeeCheckboxIsChecked.mustache +1 -1
  40. package/docs/webapi/dontSeeCookie.mustache +1 -1
  41. package/docs/webapi/dontSeeCurrentUrlEquals.mustache +1 -1
  42. package/docs/webapi/dontSeeElement.mustache +1 -1
  43. package/docs/webapi/dontSeeElementInDOM.mustache +1 -1
  44. package/docs/webapi/dontSeeInCurrentUrl.mustache +1 -1
  45. package/docs/webapi/dontSeeInField.mustache +1 -1
  46. package/docs/webapi/dontSeeInSource.mustache +1 -1
  47. package/docs/webapi/dontSeeInTitle.mustache +1 -1
  48. package/docs/webapi/doubleClick.mustache +1 -1
  49. package/docs/webapi/downloadFile.mustache +1 -1
  50. package/docs/webapi/dragAndDrop.mustache +1 -1
  51. package/docs/webapi/dragSlider.mustache +1 -1
  52. package/docs/webapi/executeAsyncScript.mustache +0 -2
  53. package/docs/webapi/executeScript.mustache +0 -2
  54. package/docs/webapi/fillField.mustache +1 -1
  55. package/docs/webapi/focus.mustache +1 -0
  56. package/docs/webapi/forceClick.mustache +1 -1
  57. package/docs/webapi/forceRightClick.mustache +1 -1
  58. package/docs/webapi/grabCookie.mustache +1 -1
  59. package/docs/webapi/grabDataFromPerformanceTiming.mustache +1 -1
  60. package/docs/webapi/moveCursorTo.mustache +1 -1
  61. package/docs/webapi/openNewTab.mustache +1 -1
  62. package/docs/webapi/pressKey.mustache +1 -1
  63. package/docs/webapi/pressKeyDown.mustache +1 -1
  64. package/docs/webapi/pressKeyUp.mustache +1 -1
  65. package/docs/webapi/pressKeyWithKeyNormalization.mustache +1 -1
  66. package/docs/webapi/refreshPage.mustache +1 -1
  67. package/docs/webapi/resizeWindow.mustache +1 -1
  68. package/docs/webapi/rightClick.mustache +1 -1
  69. package/docs/webapi/saveElementScreenshot.mustache +1 -1
  70. package/docs/webapi/saveScreenshot.mustache +1 -1
  71. package/docs/webapi/say.mustache +1 -1
  72. package/docs/webapi/scrollIntoView.mustache +1 -1
  73. package/docs/webapi/scrollPageToBottom.mustache +1 -1
  74. package/docs/webapi/scrollPageToTop.mustache +1 -1
  75. package/docs/webapi/scrollTo.mustache +1 -1
  76. package/docs/webapi/see.mustache +1 -1
  77. package/docs/webapi/seeAttributesOnElements.mustache +1 -1
  78. package/docs/webapi/seeCheckboxIsChecked.mustache +1 -1
  79. package/docs/webapi/seeCookie.mustache +1 -1
  80. package/docs/webapi/seeCssPropertiesOnElements.mustache +1 -1
  81. package/docs/webapi/seeCurrentUrlEquals.mustache +1 -1
  82. package/docs/webapi/seeElement.mustache +1 -1
  83. package/docs/webapi/seeElementInDOM.mustache +1 -1
  84. package/docs/webapi/seeInCurrentUrl.mustache +1 -1
  85. package/docs/webapi/seeInField.mustache +1 -1
  86. package/docs/webapi/seeInPopup.mustache +1 -1
  87. package/docs/webapi/seeInSource.mustache +1 -1
  88. package/docs/webapi/seeInTitle.mustache +1 -1
  89. package/docs/webapi/seeNumberOfElements.mustache +1 -1
  90. package/docs/webapi/seeNumberOfVisibleElements.mustache +1 -1
  91. package/docs/webapi/seeTextEquals.mustache +1 -1
  92. package/docs/webapi/seeTitleEquals.mustache +1 -1
  93. package/docs/webapi/selectOption.mustache +1 -1
  94. package/docs/webapi/setCookie.mustache +1 -1
  95. package/docs/webapi/setGeoLocation.mustache +1 -1
  96. package/docs/webapi/switchTo.mustache +1 -1
  97. package/docs/webapi/switchToNextTab.mustache +1 -1
  98. package/docs/webapi/switchToPreviousTab.mustache +1 -1
  99. package/docs/webapi/type.mustache +1 -1
  100. package/docs/webapi/uncheckOption.mustache +1 -1
  101. package/docs/webapi/wait.mustache +1 -1
  102. package/docs/webapi/waitForClickable.mustache +1 -1
  103. package/docs/webapi/waitForDetached.mustache +1 -1
  104. package/docs/webapi/waitForElement.mustache +1 -1
  105. package/docs/webapi/waitForEnabled.mustache +1 -1
  106. package/docs/webapi/waitForFunction.mustache +1 -1
  107. package/docs/webapi/waitForInvisible.mustache +1 -1
  108. package/docs/webapi/waitForText.mustache +1 -1
  109. package/docs/webapi/waitForValue.mustache +1 -1
  110. package/docs/webapi/waitForVisible.mustache +1 -1
  111. package/docs/webapi/waitInUrl.mustache +1 -1
  112. package/docs/webapi/waitNumberOfVisibleElements.mustache +1 -1
  113. package/docs/webapi/waitToHide.mustache +1 -1
  114. package/docs/webapi/waitUrlEquals.mustache +1 -1
  115. package/docs/webdriver.md +1 -1
  116. package/lib/cli.js +3 -1
  117. package/lib/command/dryRun.js +2 -1
  118. package/lib/helper/ApiDataFactory.js +2 -1
  119. package/lib/helper/Appium.js +8 -5
  120. package/lib/helper/Expect.js +422 -0
  121. package/lib/helper/Playwright.js +127 -32
  122. package/lib/helper/Puppeteer.js +47 -4
  123. package/lib/interfaces/gherkin.js +21 -2
  124. package/lib/output.js +1 -1
  125. package/lib/plugin/autoLogin.js +41 -3
  126. package/lib/utils.js +1 -1
  127. package/lib/workers.js +23 -2
  128. package/package.json +25 -16
  129. package/translations/de-DE.js +5 -0
  130. package/translations/fr-FR.js +1 -0
  131. package/translations/it-IT.js +1 -0
  132. package/translations/ja-JP.js +5 -0
  133. package/translations/pl-PL.js +5 -0
  134. package/translations/pt-BR.js +1 -0
  135. package/translations/ru-RU.js +1 -0
  136. package/translations/zh-CN.js +5 -0
  137. package/translations/zh-TW.js +5 -0
  138. package/typings/promiseBasedTypes.d.ts +928 -862
  139. package/typings/types.d.ts +932 -845
package/README.md CHANGED
@@ -7,10 +7,14 @@
7
7
 
8
8
  Build Status:
9
9
 
10
+ Appium Helper:
11
+ [![Appium V2 Tests - Android](https://github.com/codeceptjs/CodeceptJS/actions/workflows/appiumV2_Android.yml/badge.svg)](https://github.com/codeceptjs/CodeceptJS/actions/workflows/appiumV2_Android.yml)
12
+ [![Appium V2 Tests - iOS](https://github.com/codeceptjs/CodeceptJS/actions/workflows/appiumV2_iOS.yml/badge.svg)](https://github.com/codeceptjs/CodeceptJS/actions/workflows/appiumV2_iOS.yml)
13
+
14
+ Web Helper:
10
15
  [![Playwright Tests](https://github.com/codeceptjs/CodeceptJS/actions/workflows/playwright.yml/badge.svg)](https://github.com/codeceptjs/CodeceptJS/actions/workflows/playwright.yml)
11
16
  [![Puppeteer Tests](https://github.com/codeceptjs/CodeceptJS/actions/workflows/puppeteer.yml/badge.svg)](https://github.com/codeceptjs/CodeceptJS/actions/workflows/puppeteer.yml)
12
17
  [![WebDriver Tests](https://github.com/codeceptjs/CodeceptJS/actions/workflows/webdriver.yml/badge.svg)](https://github.com/codeceptjs/CodeceptJS/actions/workflows/webdriver.yml)
13
- [![Appium Tests](https://github.com/codeceptjs/CodeceptJS/actions/workflows/appium.yml/badge.svg)](https://github.com/codeceptjs/CodeceptJS/actions/workflows/appium.yml)
14
18
  [![TestCafe Tests](https://github.com/codeceptjs/CodeceptJS/actions/workflows/testcafe.yml/badge.svg)](https://github.com/codeceptjs/CodeceptJS/actions/workflows/testcafe.yml)
15
19
 
16
20
  # CodeceptJS [![Made in Ukraine](https://img.shields.io/badge/made_in-ukraine-ffd700.svg?labelColor=0057b7)](https://stand-with-ukraine.pp.ua)
package/docs/advanced.md CHANGED
@@ -150,7 +150,7 @@ For **Visual Studio Code**, add the following configuration in launch.json:
150
150
  "request": "launch",
151
151
  "name": "codeceptjs",
152
152
  "args": ["run", "--grep", "@your_test_tag"],
153
- "program": "${workspaceFolder}/node_modules/.bin/codeceptjs"
153
+ "program": "${workspaceFolder}/node_modules/codeceptjs/bin/codecept.js"
154
154
  }
155
155
  ```
156
156
 
package/docs/bdd.md CHANGED
@@ -13,7 +13,7 @@ BDD was introduced by [Dan North](https://dannorth.net/introducing-bdd/). He des
13
13
 
14
14
  > outside-in, pull-based, multiple-stakeholder, multiple-scale, high-automation, agile methodology. It describes a cycle of interactions with well-defined outputs, resulting in the delivery of working, tested software that matters.
15
15
 
16
- BDD has its own evolution from the days it was born, started by replacing "test" to "should" in unit tests, and moving towards powerful tools like Cucumber and Behat, which made user stories (human readable text) to be executed as an acceptance test.
16
+ BDD has its own evolution from the days it was born, started by replacing "test" to "should" in unit tests, and moving towards powerful tools like Cucumber and Behat, which made user stories (human-readable text) to be executed as an acceptance test.
17
17
 
18
18
  The idea of story BDD can be narrowed to:
19
19
 
@@ -32,7 +32,7 @@ With this procedure we also ensure that everyone in a team knows what has been d
32
32
 
33
33
  ### Ubiquitous Language
34
34
 
35
- The ubiquitous language is always referred as *common* language. That is it's main benefit. It is not a couple of our business specification's words, and not a couple of developer's technical terms. It is a common words and terms that can be understood by people for whom we are building the software and should be understood by developers. Establishing correct communication between this two groups people is vital for building successful project that will fit the domain and fulfill all business needs.
35
+ The ubiquitous language is always referred as *common* language. That it is the main benefit. It is not a couple of our business specification's words, and not a couple of developer's technical terms. It is a common words and terms that can be understood by people for whom we are building the software and should be understood by developers. Establishing correct communication between this two groups people is vital for building successful project that will fit the domain and fulfill all business needs.
36
36
 
37
37
  Each feature of a product should be born from a talk between
38
38
 
@@ -144,8 +144,8 @@ npx codeceptjs gherkin:snippets [--path=PATH] [--feature=PATH]
144
144
  ```
145
145
 
146
146
  This will produce code templates for all undefined steps in the .feature files.
147
- By default, it will scan all of the .feature files specified in the gherkin.features section of the config and produce code templates for all undefined steps. If the `--feature` option is specified, it will scan the specified .feature file(s).
148
- The stub definitions by default will be placed into the first file specified in the gherkin.steps section of the config. However, you may also use `--path` to specify a specific file in which to place all undefined steps. This file must exist and be in the gherkin.steps array of the config.
147
+ By default, it will scan all of the `.feature` files specified in the `gherkin.features` section of the config and produce code templates for all undefined steps. If the `--feature` option is specified, it will scan the specified .feature file(s).
148
+ The stub definitions by default will be placed into the first file specified in the `gherkin.steps` section of the config. However, you may also use `--path` to specify a specific file in which to place all undefined steps. This file must exist and be in the `gherkin.steps array of the config.
149
149
  Our next step will be to define those steps and transforming feature-file into a valid test.
150
150
 
151
151
  ### Step Definitions
@@ -177,7 +177,7 @@ Then('my order amount is ${int}', (sum) => { // eslint-disable-line
177
177
  });
178
178
  ```
179
179
 
180
- Steps can be either strings or regular expressions. Parameters from string are passed as function arguments. To define parameters in a string we use [Cucumber expressions](https://docs.cucumber.io/cucumber/cucumber-expressions/)
180
+ Steps can be either strings or regular expressions. Parameters from string are passed as function arguments. To define parameters in a string we use [Cucumber expressions](https://github.com/cucumber/cucumber-expressions#readme)
181
181
 
182
182
  To list all defined steps run `gherkin:steps` command:
183
183
 
@@ -408,7 +408,7 @@ Tag should be placed before *Scenario:* or before *Feature:* keyword. In the las
408
408
 
409
409
  ### Custom types
410
410
 
411
- If you need parameter text in more advanced way and you like using [Cucumber expressions](https://docs.cucumber.io/cucumber/cucumber-expressions/) better that regular expressions, use `DefineParameterType` function. You can extend Cucumber Expressions so they automatically convert output parameters to your own types or transforms the match from the regexp.
411
+ If you need parameter text in more advanced way, and you like using [Cucumber expressions](https://github.com/cucumber/cucumber-expressions#readme) better that regular expressions, use `DefineParameterType` function. You can extend Cucumber Expressions, so they automatically convert output parameters to your own types or transforms the match from the regexp.
412
412
 
413
413
  ```js
414
414
  DefineParameterType({
@@ -447,14 +447,17 @@ Given('I see {popup_type} popup', (popup) => {
447
447
  * `avoidDuplicateSteps` - attempts to avoid duplicate step definitions by shallow compare
448
448
 
449
449
  ```js
450
+ ...
450
451
  "gherkin": {
451
452
  "features": "./features/*.feature",
452
453
  "steps": [
453
454
  "./step_definitions/steps.js"
454
455
  ]
455
456
  }
457
+ ...
456
458
  ```
457
459
  ```js
460
+ ...
458
461
  "gherkin": {
459
462
  "features": [
460
463
  "./features/*.feature",
@@ -464,6 +467,7 @@ Given('I see {popup_type} popup', (popup) => {
464
467
  "./step_definitions/steps.js"
465
468
  ]
466
469
  }
470
+ ...
467
471
  ```
468
472
 
469
473
  ## Before
@@ -518,7 +522,7 @@ Fail((test, err) => {
518
522
 
519
523
  It is common to think that BDD scenario is equal to test. But it's actually not. Not every test should be described as a feature. Not every test is written to test real business value. For instance, regression tests or negative scenario tests are not bringing any value to business. Business analysts don't care about scenario reproducing bug #13, or what error message is displayed when user tries to enter wrong password on login screen. Writing all the tests inside a feature files creates informational overflow.
520
524
 
521
- In CodeceptJS you can combine tests written in Gherkin format with classical acceptance tests. This way you can keep your feature files compact with minimal set of scenarios, and write regular tests to cover all cases. Please note, feature files will be executed before tests.
525
+ In CodeceptJS, you can combine tests written in Gherkin format with classical acceptance tests. This way you can keep your feature files compact with minimal set of scenarios, and write regular tests to cover all cases. Please note, feature files will be executed before tests.
522
526
 
523
527
  To run only features use `--features` option:
524
528
 
@@ -309,7 +309,8 @@ class ApiDataFactory extends Helper {
309
309
  } catch (e) {
310
310
  modulePath = path.join(global.codecept_dir, modulePath);
311
311
  }
312
- const builder = require(modulePath);
312
+ // check if the new syntax `export default new Factory()` is used and loads the builder, otherwise loads the module that used old syntax `module.exports = new Factory()`.
313
+ const builder = require(modulePath).default || require(modulePath);
313
314
  return builder.build(data, options);
314
315
  } catch (err) {
315
316
  throw new Error(`Couldn't load factory file from ${modulePath}, check that
@@ -22,7 +22,7 @@ const vendorPrefix = {
22
22
  };
23
23
 
24
24
  /**
25
- * Appium helper extends [Webriver](http://codecept.io/helpers/WebDriver/) helper.
25
+ * Appium helper extends [Webdriver](http://codecept.io/helpers/WebDriver/) helper.
26
26
  * It supports all browser methods and also includes special methods for mobile apps testing.
27
27
  * You can use this helper to test Web on desktop and mobile devices and mobile apps.
28
28
  *
@@ -31,7 +31,7 @@ const vendorPrefix = {
31
31
  * Appium is an open source test automation framework for use with native, hybrid and mobile web apps that implements the WebDriver protocol.
32
32
  * It allows you to run Selenium tests on mobile devices and also test native, hybrid and mobile web apps.
33
33
  *
34
- * Download and install [Appium](http://appium.io/)
34
+ * Download and install [Appium](https://appium.io/docs/en/2.1/)
35
35
  *
36
36
  * ```sh
37
37
  * npm install -g appium
@@ -43,7 +43,7 @@ const vendorPrefix = {
43
43
  *
44
44
  * This helper should be configured in codecept.conf.ts or codecept.conf.js
45
45
  *
46
- * * `appiumV2`: set this to true if you want to run tests with Appiumv2. See more how to setup [here](https://codecept.io/mobile/#setting-up)
46
+ * * `appiumV2`: set this to true if you want to run tests with AppiumV2. See more how to setup [here](https://codecept.io/mobile/#setting-up)
47
47
  * * `app`: Application path. Local path or remote URL to an .ipa or .apk file, or a .zip containing one of these. Alias to desiredCapabilities.appPackage
48
48
  * * `host`: (default: 'localhost') Appium host
49
49
  * * `port`: (default: '4723') Appium port
@@ -117,7 +117,7 @@ const vendorPrefix = {
117
117
  * }
118
118
  * ```
119
119
  *
120
- * Example Android App using Appiumv2 on BrowserStack:
120
+ * Example Android App using AppiumV2 on BrowserStack:
121
121
  *
122
122
  * ```js
123
123
  * {
@@ -154,7 +154,7 @@ const vendorPrefix = {
154
154
  * }
155
155
  * ```
156
156
  *
157
- * Additional configuration params can be used from <https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md>
157
+ * Additional configuration params can be used from <https://github.com/appium/appium/blob/master/packages/appium/docs/en/guides/caps.md>
158
158
  *
159
159
  * ## Access From Helpers
160
160
  *
@@ -183,6 +183,7 @@ class Appium extends Webdriver {
183
183
  this.axios = axios.create();
184
184
 
185
185
  webdriverio = require('webdriverio');
186
+ console.log('The Appium core team does not maintain Appium 1.x anymore since the 1st of January 2022. Please migrating to Appium 2.x by adding appiumV2: true to your config.\nThis Appium 1.x support will be removed in next major release');
186
187
  }
187
188
 
188
189
  _validateConfig(config) {
@@ -273,6 +274,8 @@ class Appium extends Webdriver {
273
274
  if (!key.startsWith(vendorPrefix.appium)) {
274
275
  if (key !== 'platformName') {
275
276
  _convertedCaps[`${vendorPrefix.appium}:${key}`] = value;
277
+ } else {
278
+ _convertedCaps[`${key}`] = value;
276
279
  }
277
280
  } else {
278
281
  _convertedCaps[`${key}`] = value;
@@ -1434,7 +1437,7 @@ class Appium extends Webdriver {
1434
1437
  * ```
1435
1438
  * @param {CodeceptJS.LocatorOrString} field located by label|name|CSS|XPath|strict locator
1436
1439
  * @param {string} value text value to append.
1437
- * ⚠️ returns a _promise_ which is synchronized internally by recorder
1440
+ * @returns {Promise<void>} automatically synchronized promise through #recorder
1438
1441
  *
1439
1442
  *
1440
1443
  */
@@ -1456,7 +1459,7 @@ class Appium extends Webdriver {
1456
1459
  * ```
1457
1460
  * @param {CodeceptJS.LocatorOrString} field checkbox located by label | name | CSS | XPath | strict locator.
1458
1461
  * @param {?CodeceptJS.LocatorOrString} [context=null] (optional, `null` by default) element located by CSS | XPath | strict locator.
1459
- * ⚠️ returns a _promise_ which is synchronized internally by recorder
1462
+ * @returns {Promise<void>} automatically synchronized promise through #recorder
1460
1463
  *
1461
1464
  *
1462
1465
  */
@@ -1490,7 +1493,7 @@ class Appium extends Webdriver {
1490
1493
  *
1491
1494
  * @param {CodeceptJS.LocatorOrString} locator clickable link or button located by text, or any element located by CSS|XPath|strict locator.
1492
1495
  * @param {?CodeceptJS.LocatorOrString | null} [context=null] (optional, `null` by default) element to search in CSS|XPath|Strict locator.
1493
- * ⚠️ returns a _promise_ which is synchronized internally by recorder
1496
+ * @returns {Promise<void>} automatically synchronized promise through #recorder
1494
1497
  *
1495
1498
  *
1496
1499
  */
@@ -1509,7 +1512,7 @@ class Appium extends Webdriver {
1509
1512
  * ```
1510
1513
  *
1511
1514
  * @param {CodeceptJS.LocatorOrString} field located by label|name|CSS|XPath|strict locator.
1512
- * ⚠️ returns a _promise_ which is synchronized internally by recorder
1515
+ * @returns {Promise<void>} automatically synchronized promise through #recorder
1513
1516
  *
1514
1517
  *
1515
1518
  */
@@ -1526,7 +1529,7 @@ class Appium extends Webdriver {
1526
1529
  * ```
1527
1530
  *
1528
1531
  * @param {CodeceptJS.LocatorOrString} locator located by CSS|XPath|Strict locator.
1529
- * ⚠️ returns a _promise_ which is synchronized internally by recorder
1532
+ * @returns {Promise<void>} automatically synchronized promise through #recorder
1530
1533
  *
1531
1534
  */
1532
1535
  async dontSeeElement(locator) {
@@ -1545,7 +1548,7 @@ class Appium extends Webdriver {
1545
1548
  *
1546
1549
  * @param {CodeceptJS.LocatorOrString} field located by label|name|CSS|XPath|strict locator.
1547
1550
  * @param {CodeceptJS.StringOrSecret} value value to check.
1548
- * ⚠️ returns a _promise_ which is synchronized internally by recorder
1551
+ * @returns {Promise<void>} automatically synchronized promise through #recorder
1549
1552
  *
1550
1553
  *
1551
1554
  */
@@ -1566,7 +1569,7 @@ class Appium extends Webdriver {
1566
1569
  *
1567
1570
  * @param {string} text which is not present.
1568
1571
  * @param {CodeceptJS.LocatorOrString} [context] (optional) element located by CSS|XPath|strict locator in which to perfrom search.
1569
- * ⚠️ returns a _promise_ which is synchronized internally by recorder
1572
+ * @returns {Promise<void>} automatically synchronized promise through #recorder
1570
1573
  *
1571
1574
  */
1572
1575
  async dontSee(text, context = null) {
@@ -1590,7 +1593,7 @@ class Appium extends Webdriver {
1590
1593
  * ```
1591
1594
  * @param {CodeceptJS.LocatorOrString} field located by label|name|CSS|XPath|strict locator.
1592
1595
  * @param {CodeceptJS.StringOrSecret} value text value to fill.
1593
- * ⚠️ returns a _promise_ which is synchronized internally by recorder
1596
+ * @returns {Promise<void>} automatically synchronized promise through #recorder
1594
1597
  *
1595
1598
  *
1596
1599
  */
@@ -1752,7 +1755,7 @@ class Appium extends Webdriver {
1752
1755
  *
1753
1756
  * @param {LocatorOrString} locator located by CSS|XPath|strict locator.
1754
1757
  * @param {ScrollIntoViewOptions} scrollIntoViewOptions see https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView.
1755
- * ⚠️ returns a _promise_ which is synchronized internally by recorder
1758
+ * @returns {Promise<void>} automatically synchronized promise through #recorder
1756
1759
  *
1757
1760
  *
1758
1761
  * Supported only for web testing
@@ -1771,7 +1774,7 @@ class Appium extends Webdriver {
1771
1774
  * ```
1772
1775
  *
1773
1776
  * @param {CodeceptJS.LocatorOrString} field located by label|name|CSS|XPath|strict locator.
1774
- * ⚠️ returns a _promise_ which is synchronized internally by recorder
1777
+ * @returns {Promise<void>} automatically synchronized promise through #recorder
1775
1778
  *
1776
1779
  *
1777
1780
  */
@@ -1788,7 +1791,7 @@ class Appium extends Webdriver {
1788
1791
  * I.seeElement('#modal');
1789
1792
  * ```
1790
1793
  * @param {CodeceptJS.LocatorOrString} locator located by CSS|XPath|strict locator.
1791
- * ⚠️ returns a _promise_ which is synchronized internally by recorder
1794
+ * @returns {Promise<void>} automatically synchronized promise through #recorder
1792
1795
  *
1793
1796
  *
1794
1797
  */
@@ -1809,7 +1812,7 @@ class Appium extends Webdriver {
1809
1812
  * ```
1810
1813
  * @param {CodeceptJS.LocatorOrString} field located by label|name|CSS|XPath|strict locator.
1811
1814
  * @param {CodeceptJS.StringOrSecret} value value to check.
1812
- * ⚠️ returns a _promise_ which is synchronized internally by recorder
1815
+ * @returns {Promise<void>} automatically synchronized promise through #recorder
1813
1816
  *
1814
1817
  *
1815
1818
  */
@@ -1830,7 +1833,7 @@ class Appium extends Webdriver {
1830
1833
  * ```
1831
1834
  * @param {string} text expected on page.
1832
1835
  * @param {?CodeceptJS.LocatorOrString} [context=null] (optional, `null` by default) element located by CSS|Xpath|strict locator in which to search for text.
1833
- * ⚠️ returns a _promise_ which is synchronized internally by recorder
1836
+ * @returns {Promise<void>} automatically synchronized promise through #recorder
1834
1837
  *
1835
1838
  *
1836
1839
  */
@@ -1860,7 +1863,7 @@ class Appium extends Webdriver {
1860
1863
  * ```
1861
1864
  * @param {LocatorOrString} select field located by label|name|CSS|XPath|strict locator.
1862
1865
  * @param {string|Array<*>} option visible text or value of option.
1863
- * ⚠️ returns a _promise_ which is synchronized internally by recorder
1866
+ * @returns {Promise<void>} automatically synchronized promise through #recorder
1864
1867
  *
1865
1868
  *
1866
1869
  * Supported only for web testing
@@ -1881,7 +1884,7 @@ class Appium extends Webdriver {
1881
1884
  *
1882
1885
  * @param {CodeceptJS.LocatorOrString} locator element located by CSS|XPath|strict locator.
1883
1886
  * @param {number} [sec] (optional, `1` by default) time in seconds to wait
1884
- * ⚠️ returns a _promise_ which is synchronized internally by recorder
1887
+ * @returns {Promise<void>} automatically synchronized promise through #recorder
1885
1888
  *
1886
1889
  *
1887
1890
  */
@@ -1900,7 +1903,7 @@ class Appium extends Webdriver {
1900
1903
  *
1901
1904
  * @param {CodeceptJS.LocatorOrString} locator element located by CSS|XPath|strict locator.
1902
1905
  * @param {number} [sec=1] (optional, `1` by default) time in seconds to wait
1903
- * ⚠️ returns a _promise_ which is synchronized internally by recorder
1906
+ * @returns {Promise<void>} automatically synchronized promise through #recorder
1904
1907
  *
1905
1908
  *
1906
1909
  */
@@ -1919,7 +1922,7 @@ class Appium extends Webdriver {
1919
1922
  *
1920
1923
  * @param {CodeceptJS.LocatorOrString} locator element located by CSS|XPath|strict locator.
1921
1924
  * @param {number} [sec=1] (optional, `1` by default) time in seconds to wait
1922
- * ⚠️ returns a _promise_ which is synchronized internally by recorder
1925
+ * @returns {Promise<void>} automatically synchronized promise through #recorder
1923
1926
  *
1924
1927
  *
1925
1928
  */
@@ -1941,7 +1944,7 @@ class Appium extends Webdriver {
1941
1944
  * @param {string }text to wait for.
1942
1945
  * @param {number} [sec=1] (optional, `1` by default) time in seconds to wait
1943
1946
  * @param {CodeceptJS.LocatorOrString} [context] (optional) element located by CSS|XPath|strict locator.
1944
- * ⚠️ returns a _promise_ which is synchronized internally by recorder
1947
+ * @returns {Promise<void>} automatically synchronized promise through #recorder
1945
1948
  *
1946
1949
  *
1947
1950
  */