codeceptjs 3.5.5 → 3.5.7-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/docs/bdd.md +11 -7
  3. package/docs/build/ApiDataFactory.js +2 -1
  4. package/docs/build/Appium.js +25 -23
  5. package/docs/build/Expect.js +422 -0
  6. package/docs/build/FileSystem.js +1 -1
  7. package/docs/build/Nightmare.js +53 -56
  8. package/docs/build/Playwright.js +209 -135
  9. package/docs/build/Protractor.js +66 -69
  10. package/docs/build/Puppeteer.js +83 -83
  11. package/docs/build/TestCafe.js +56 -55
  12. package/docs/build/WebDriver.js +85 -86
  13. package/docs/changelog.md +63 -0
  14. package/docs/commands.md +12 -0
  15. package/docs/helpers/Appium.md +50 -32
  16. package/docs/helpers/Expect.md +275 -0
  17. package/docs/helpers/FileSystem.md +1 -1
  18. package/docs/helpers/Nightmare.md +141 -94
  19. package/docs/helpers/Playwright.md +281 -212
  20. package/docs/helpers/Protractor.md +229 -169
  21. package/docs/helpers/Puppeteer.md +257 -186
  22. package/docs/helpers/TestCafe.md +201 -149
  23. package/docs/helpers/WebDriver.md +253 -179
  24. package/docs/mobile.md +17 -21
  25. package/docs/plugins.md +35 -1
  26. package/docs/webapi/amOnPage.mustache +1 -1
  27. package/docs/webapi/appendField.mustache +1 -1
  28. package/docs/webapi/attachFile.mustache +1 -1
  29. package/docs/webapi/blur.mustache +1 -0
  30. package/docs/webapi/checkOption.mustache +1 -1
  31. package/docs/webapi/clearCookie.mustache +1 -1
  32. package/docs/webapi/clearField.mustache +1 -1
  33. package/docs/webapi/click.mustache +1 -1
  34. package/docs/webapi/clickLink.mustache +1 -1
  35. package/docs/webapi/closeCurrentTab.mustache +1 -1
  36. package/docs/webapi/closeOtherTabs.mustache +1 -1
  37. package/docs/webapi/dontSee.mustache +1 -1
  38. package/docs/webapi/dontSeeCheckboxIsChecked.mustache +1 -1
  39. package/docs/webapi/dontSeeCookie.mustache +1 -1
  40. package/docs/webapi/dontSeeCurrentUrlEquals.mustache +1 -1
  41. package/docs/webapi/dontSeeElement.mustache +1 -1
  42. package/docs/webapi/dontSeeElementInDOM.mustache +1 -1
  43. package/docs/webapi/dontSeeInCurrentUrl.mustache +1 -1
  44. package/docs/webapi/dontSeeInField.mustache +1 -1
  45. package/docs/webapi/dontSeeInSource.mustache +1 -1
  46. package/docs/webapi/dontSeeInTitle.mustache +1 -1
  47. package/docs/webapi/doubleClick.mustache +1 -1
  48. package/docs/webapi/downloadFile.mustache +1 -1
  49. package/docs/webapi/dragAndDrop.mustache +1 -1
  50. package/docs/webapi/dragSlider.mustache +1 -1
  51. package/docs/webapi/executeAsyncScript.mustache +0 -2
  52. package/docs/webapi/executeScript.mustache +0 -2
  53. package/docs/webapi/fillField.mustache +1 -1
  54. package/docs/webapi/focus.mustache +1 -0
  55. package/docs/webapi/forceClick.mustache +1 -1
  56. package/docs/webapi/forceRightClick.mustache +1 -1
  57. package/docs/webapi/grabCookie.mustache +1 -1
  58. package/docs/webapi/grabDataFromPerformanceTiming.mustache +1 -1
  59. package/docs/webapi/moveCursorTo.mustache +1 -1
  60. package/docs/webapi/openNewTab.mustache +1 -1
  61. package/docs/webapi/pressKey.mustache +1 -1
  62. package/docs/webapi/pressKeyDown.mustache +1 -1
  63. package/docs/webapi/pressKeyUp.mustache +1 -1
  64. package/docs/webapi/pressKeyWithKeyNormalization.mustache +1 -1
  65. package/docs/webapi/refreshPage.mustache +1 -1
  66. package/docs/webapi/resizeWindow.mustache +1 -1
  67. package/docs/webapi/rightClick.mustache +1 -1
  68. package/docs/webapi/saveElementScreenshot.mustache +1 -1
  69. package/docs/webapi/saveScreenshot.mustache +1 -1
  70. package/docs/webapi/say.mustache +1 -1
  71. package/docs/webapi/scrollIntoView.mustache +1 -1
  72. package/docs/webapi/scrollPageToBottom.mustache +1 -1
  73. package/docs/webapi/scrollPageToTop.mustache +1 -1
  74. package/docs/webapi/scrollTo.mustache +1 -1
  75. package/docs/webapi/see.mustache +1 -1
  76. package/docs/webapi/seeAttributesOnElements.mustache +1 -1
  77. package/docs/webapi/seeCheckboxIsChecked.mustache +1 -1
  78. package/docs/webapi/seeCookie.mustache +1 -1
  79. package/docs/webapi/seeCssPropertiesOnElements.mustache +1 -1
  80. package/docs/webapi/seeCurrentUrlEquals.mustache +1 -1
  81. package/docs/webapi/seeElement.mustache +1 -1
  82. package/docs/webapi/seeElementInDOM.mustache +1 -1
  83. package/docs/webapi/seeInCurrentUrl.mustache +1 -1
  84. package/docs/webapi/seeInField.mustache +1 -1
  85. package/docs/webapi/seeInPopup.mustache +1 -1
  86. package/docs/webapi/seeInSource.mustache +1 -1
  87. package/docs/webapi/seeInTitle.mustache +1 -1
  88. package/docs/webapi/seeNumberOfElements.mustache +1 -1
  89. package/docs/webapi/seeNumberOfVisibleElements.mustache +1 -1
  90. package/docs/webapi/seeTextEquals.mustache +1 -1
  91. package/docs/webapi/seeTitleEquals.mustache +1 -1
  92. package/docs/webapi/selectOption.mustache +1 -1
  93. package/docs/webapi/setCookie.mustache +1 -1
  94. package/docs/webapi/setGeoLocation.mustache +1 -1
  95. package/docs/webapi/switchTo.mustache +1 -1
  96. package/docs/webapi/switchToNextTab.mustache +1 -1
  97. package/docs/webapi/switchToPreviousTab.mustache +1 -1
  98. package/docs/webapi/type.mustache +1 -1
  99. package/docs/webapi/uncheckOption.mustache +1 -1
  100. package/docs/webapi/wait.mustache +1 -1
  101. package/docs/webapi/waitForClickable.mustache +1 -1
  102. package/docs/webapi/waitForDetached.mustache +1 -1
  103. package/docs/webapi/waitForElement.mustache +1 -1
  104. package/docs/webapi/waitForEnabled.mustache +1 -1
  105. package/docs/webapi/waitForFunction.mustache +1 -1
  106. package/docs/webapi/waitForInvisible.mustache +1 -1
  107. package/docs/webapi/waitForText.mustache +1 -1
  108. package/docs/webapi/waitForValue.mustache +1 -1
  109. package/docs/webapi/waitForVisible.mustache +1 -1
  110. package/docs/webapi/waitInUrl.mustache +1 -1
  111. package/docs/webapi/waitNumberOfVisibleElements.mustache +1 -1
  112. package/docs/webapi/waitToHide.mustache +1 -1
  113. package/docs/webapi/waitUrlEquals.mustache +1 -1
  114. package/lib/ai.js +12 -3
  115. package/lib/cli.js +3 -1
  116. package/lib/codecept.js +3 -0
  117. package/lib/command/dryRun.js +2 -1
  118. package/lib/command/info.js +24 -0
  119. package/lib/command/run-workers.js +3 -2
  120. package/lib/command/run.js +3 -2
  121. package/lib/data/context.js +14 -6
  122. package/lib/helper/ApiDataFactory.js +2 -1
  123. package/lib/helper/Appium.js +7 -5
  124. package/lib/helper/Expect.js +422 -0
  125. package/lib/helper/FileSystem.js +1 -1
  126. package/lib/helper/Playwright.js +134 -64
  127. package/lib/helper/Puppeteer.js +6 -6
  128. package/lib/helper/WebDriver.js +4 -4
  129. package/lib/helper/scripts/highlightElement.js +1 -1
  130. package/lib/html.js +3 -3
  131. package/lib/interfaces/gherkin.js +21 -2
  132. package/lib/output.js +1 -1
  133. package/lib/pause.js +6 -5
  134. package/lib/plugin/autoLogin.js +35 -8
  135. package/lib/plugin/heal.js +40 -7
  136. package/lib/plugin/retryTo.js +0 -2
  137. package/lib/plugin/tryTo.js +0 -3
  138. package/lib/recorder.js +12 -5
  139. package/lib/session.js +1 -1
  140. package/package.json +24 -17
  141. package/translations/de-DE.js +5 -0
  142. package/translations/fr-FR.js +14 -1
  143. package/translations/it-IT.js +1 -0
  144. package/translations/ja-JP.js +5 -0
  145. package/translations/pl-PL.js +5 -0
  146. package/translations/pt-BR.js +1 -0
  147. package/translations/ru-RU.js +1 -0
  148. package/translations/zh-CN.js +5 -0
  149. package/translations/zh-TW.js +5 -0
  150. package/typings/promiseBasedTypes.d.ts +905 -863
  151. package/typings/types.d.ts +909 -850
@@ -46,17 +46,17 @@ Type: [object][4]
46
46
  - `uniqueScreenshotNames` **[boolean][20]?** option to prevent screenshot override if you have scenarios with the same name in different suites.
47
47
  - `keepBrowserState` **[boolean][20]?** keep browser state between tests when `restart` is set to false.
48
48
  - `keepCookies` **[boolean][20]?** keep cookies between tests when `restart` is set to false.
49
- - `waitForAction` **[number][10]?** how long to wait after click, doubleClick or PressKey actions in ms. Default: 100.
49
+ - `waitForAction` **[number][11]?** how long to wait after click, doubleClick or PressKey actions in ms. Default: 100.
50
50
  - `waitForNavigation` **[string][6]?** when to consider navigation succeeded. Possible options: `load`, `domcontentloaded`, `networkidle0`, `networkidle2`. See [Puppeteer API][23]. Array values are accepted as well.
51
- - `pressKeyDelay` **[number][10]?** delay between key presses in ms. Used when calling Puppeteers page.type(...) in fillField/appendField
52
- - `getPageTimeout` **[number][10]?** config option to set maximum navigation time in milliseconds. If the timeout is set to 0, then timeout will be disabled.
53
- - `waitForTimeout` **[number][10]?** default wait* timeout in ms.
51
+ - `pressKeyDelay` **[number][11]?** delay between key presses in ms. Used when calling Puppeteers page.type(...) in fillField/appendField
52
+ - `getPageTimeout` **[number][11]?** config option to set maximum navigation time in milliseconds. If the timeout is set to 0, then timeout will be disabled.
53
+ - `waitForTimeout` **[number][11]?** default wait* timeout in ms.
54
54
  - `windowSize` **[string][6]?** default window size. Set a dimension in format WIDTHxHEIGHT like `640x480`.
55
55
  - `userAgent` **[string][6]?** user-agent string.
56
56
  - `manualStart` **[boolean][20]?** do not start browser before a test, start it manually inside a helper with `this.helpers["Puppeteer"]._startBrowser()`.
57
57
  - `browser` **[string][6]?** can be changed to `firefox` when using [puppeteer-firefox][2].
58
58
  - `chrome` **[object][4]?** pass additional [Puppeteer run options][25].
59
- - `highlightElement` **[boolean][20]?** highlight the interacting elements. Default: false
59
+ - `highlightElement` **[boolean][20]?** highlight the interacting elements. Default: false. Note: only activate under verbose mode (--verbose).
60
60
 
61
61
 
62
62
 
@@ -288,7 +288,7 @@ I.amOnPage('/login'); // opens a login page
288
288
 
289
289
  - `url` **[string][6]** url path or global url.
290
290
 
291
- Returns **void** automatically synchronized promise with recorder #!
291
+ Returns **[Promise][7]<void>** automatically synchronized promise through #recorder
292
292
 
293
293
  ### appendField
294
294
 
@@ -305,7 +305,8 @@ I.appendField('password', secret('123456'));
305
305
 
306
306
  - `field` **([string][6] | [object][4])** located by label|name|CSS|XPath|strict locator
307
307
  - `value` **[string][6]** text value to append.
308
- ⚠️ returns a _promise_ which is synchronized internally by recorder
308
+
309
+ Returns **[Promise][7]<void>** automatically synchronized promise through #recorder
309
310
 
310
311
 
311
312
  This action supports [React locators](https://codecept.io/react#locators)
@@ -326,12 +327,13 @@ I.attachFile('form input[name=avatar]', 'data/avatar.jpg');
326
327
 
327
328
  - `locator` **([string][6] | [object][4])** field located by label|name|CSS|XPath|strict locator.
328
329
  - `pathToFile` **[string][6]** local file path relative to codecept.conf.ts or codecept.conf.js config file.
329
- ⚠️ returns a _promise_ which is synchronized internally by recorder> ⚠ There is an [issue with file upload in Puppeteer 2.1.0 & 2.1.1][7], downgrade to 2.0.0 if you face it.
330
+
331
+ Returns **[Promise][7]<void>** automatically synchronized promise through #recorder> ⚠ There is an [issue with file upload in Puppeteer 2.1.0 & 2.1.1][8], downgrade to 2.0.0 if you face it.
330
332
 
331
333
  ### blur
332
334
 
333
335
  Remove focus from a text input, button, etc.
334
- Calls [blur][8] on the element.
336
+ Calls [blur][9] on the element.
335
337
 
336
338
  Examples:
337
339
 
@@ -349,7 +351,9 @@ I.dontSee('#add-to-cart-btn');
349
351
  #### Parameters
350
352
 
351
353
  - `locator` **([string][6] | [object][4])** field located by label|name|CSS|XPath|strict locator.
352
- - `options` **any?** Playwright only: [Additional options][9] for available options object as 2nd argument.
354
+ - `options` **any?** Playwright only: [Additional options][10] for available options object as 2nd argument.
355
+
356
+ Returns **[Promise][7]<void>** automatically synchronized promise through #recorder
353
357
 
354
358
  ### cancelPopup
355
359
 
@@ -371,8 +375,9 @@ I.checkOption('agree', '//form');
371
375
  #### Parameters
372
376
 
373
377
  - `field` **([string][6] | [object][4])** checkbox located by label | name | CSS | XPath | strict locator.
374
- - `context` **([string][6]? | [object][4])** (optional, `null` by default) element located by CSS | XPath | strict locator.
375
- ⚠️ returns a _promise_ which is synchronized internally by recorder
378
+ - `context` **([string][6]? | [object][4])** (optional, `null` by default) element located by CSS | XPath | strict locator.
379
+
380
+ Returns **[Promise][7]<void>** automatically synchronized promise through #recorder
376
381
 
377
382
  ### clearCookie
378
383
 
@@ -387,8 +392,9 @@ I.clearCookie('test');
387
392
  #### Parameters
388
393
 
389
394
  - `name`
390
- - `cookie` **[string][6]?** (optional, `null` by default) cookie name
391
- ⚠️ returns a _promise_ which is synchronized internally by recorder
395
+ - `cookie` **[string][6]?** (optional, `null` by default) cookie name
396
+
397
+ Returns **[Promise][7]<void>** automatically synchronized promise through #recorder
392
398
 
393
399
  ### clearField
394
400
 
@@ -404,7 +410,8 @@ I.clearField('#email');
404
410
 
405
411
  - `field`
406
412
  - `editable` **([string][6] | [object][4])** field located by label|name|CSS|XPath|strict locator.
407
- ⚠️ returns a _promise_ which is synchronized internally by recorder.
413
+
414
+ Returns **[Promise][7]<void>** automatically synchronized promise through #recorder.
408
415
 
409
416
  ### click
410
417
 
@@ -433,12 +440,13 @@ I.click({css: 'nav a.login'});
433
440
  #### Parameters
434
441
 
435
442
  - `locator` **([string][6] | [object][4])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
436
- - `context` **([string][6]? | [object][4] | null)** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
437
- ⚠️ returns a _promise_ which is synchronized internally by recorder
443
+ - `context` **([string][6]? | [object][4] | null)** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
444
+
445
+ Returns **[Promise][7]<void>** automatically synchronized promise through #recorder
438
446
 
439
447
 
440
448
  This action supports [React locators](https://codecept.io/react#locators)
441
-
449
+
442
450
 
443
451
  ### clickLink
444
452
 
@@ -451,12 +459,13 @@ I.clickLink('Logout', '#nav');
451
459
  #### Parameters
452
460
 
453
461
  - `locator` **([string][6] | [object][4])** clickable link or button located by text, or any element located by CSS|XPath|strict locator
454
- - `context` **([string][6]? | [object][4])** (optional, `null` by default) element to search in CSS|XPath|Strict locator
455
- ⚠️ returns a _promise_ which is synchronized internally by recorder
462
+ - `context` **([string][6]? | [object][4])** (optional, `null` by default) element to search in CSS|XPath|Strict locator
463
+
464
+ Returns **[Promise][7]<void>** automatically synchronized promise through #recorder
456
465
 
457
466
 
458
467
  This action supports [React locators](https://codecept.io/react#locators)
459
-
468
+
460
469
 
461
470
  ### closeCurrentTab
462
471
 
@@ -487,12 +496,13 @@ I.dontSee('Login', '.nav'); // no login inside .nav element
487
496
  #### Parameters
488
497
 
489
498
  - `text` **[string][6]** which is not present.
490
- - `context` **([string][6] | [object][4])?** (optional) element located by CSS|XPath|strict locator in which to perfrom search.
491
- ⚠️ returns a _promise_ which is synchronized internally by recorder
499
+ - `context` **([string][6] | [object][4])?** (optional) element located by CSS|XPath|strict locator in which to perfrom search.
500
+
501
+ Returns **[Promise][7]<void>** automatically synchronized promise through #recorder
492
502
 
493
503
 
494
504
  This action supports [React locators](https://codecept.io/react#locators)
495
-
505
+
496
506
 
497
507
  ### dontSeeCheckboxIsChecked
498
508
 
@@ -507,7 +517,8 @@ I.dontSeeCheckboxIsChecked('agree'); // located by name
507
517
  #### Parameters
508
518
 
509
519
  - `field` **([string][6] | [object][4])** located by label|name|CSS|XPath|strict locator.
510
- ⚠️ returns a _promise_ which is synchronized internally by recorder
520
+
521
+ Returns **[Promise][7]<void>** automatically synchronized promise through #recorder
511
522
 
512
523
  ### dontSeeCookie
513
524
 
@@ -520,7 +531,8 @@ I.dontSeeCookie('auth'); // no auth cookie
520
531
  #### Parameters
521
532
 
522
533
  - `name` **[string][6]** cookie name.
523
- ⚠️ returns a _promise_ which is synchronized internally by recorder
534
+
535
+ Returns **[Promise][7]<void>** automatically synchronized promise through #recorder
524
536
 
525
537
  ### dontSeeCurrentUrlEquals
526
538
 
@@ -535,7 +547,8 @@ I.dontSeeCurrentUrlEquals('http://mysite.com/login'); // absolute urls are also
535
547
  #### Parameters
536
548
 
537
549
  - `url` **[string][6]** value to check.
538
- ⚠️ returns a _promise_ which is synchronized internally by recorder
550
+
551
+ Returns **[Promise][7]<void>** automatically synchronized promise through #recorder
539
552
 
540
553
  ### dontSeeElement
541
554
 
@@ -548,7 +561,8 @@ I.dontSeeElement('.modal'); // modal is not shown
548
561
  #### Parameters
549
562
 
550
563
  - `locator` **([string][6] | [object][4])** located by CSS|XPath|Strict locator.
551
- ⚠️ returns a _promise_ which is synchronized internally by recorder
564
+
565
+ Returns **[Promise][7]<void>** automatically synchronized promise through #recorder
552
566
 
553
567
 
554
568
  This action supports [React locators](https://codecept.io/react#locators)
@@ -565,7 +579,8 @@ I.dontSeeElementInDOM('.nav'); // checks that element is not on page visible or
565
579
  #### Parameters
566
580
 
567
581
  - `locator` **([string][6] | [object][4])** located by CSS|XPath|Strict locator.
568
- ⚠️ returns a _promise_ which is synchronized internally by recorder
582
+
583
+ Returns **[Promise][7]<void>** automatically synchronized promise through #recorder
569
584
 
570
585
  ### dontSeeInCurrentUrl
571
586
 
@@ -574,7 +589,8 @@ Checks that current url does not contain a provided fragment.
574
589
  #### Parameters
575
590
 
576
591
  - `url` **[string][6]** value to check.
577
- ⚠️ returns a _promise_ which is synchronized internally by recorder
592
+
593
+ Returns **[Promise][7]<void>** automatically synchronized promise through #recorder
578
594
 
579
595
  ### dontSeeInField
580
596
 
@@ -590,7 +606,8 @@ I.dontSeeInField({ css: 'form input.email' }, 'user@user.com'); // field by CSS
590
606
 
591
607
  - `field` **([string][6] | [object][4])** located by label|name|CSS|XPath|strict locator.
592
608
  - `value` **([string][6] | [object][4])** value to check.
593
- ⚠️ returns a _promise_ which is synchronized internally by recorder
609
+
610
+ Returns **[Promise][7]<void>** automatically synchronized promise through #recorder
594
611
 
595
612
  ### dontSeeInSource
596
613
 
@@ -604,7 +621,8 @@ I.dontSeeInSource('<!--'); // no comments in source
604
621
 
605
622
  - `text`
606
623
  - `value` **[string][6]** to check.
607
- ⚠️ returns a _promise_ which is synchronized internally by recorder
624
+
625
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
608
626
 
609
627
  ### dontSeeInTitle
610
628
 
@@ -617,7 +635,8 @@ I.dontSeeInTitle('Error');
617
635
  #### Parameters
618
636
 
619
637
  - `text` **[string][6]** value to check.
620
- ⚠️ returns a _promise_ which is synchronized internally by recorder
638
+
639
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
621
640
 
622
641
  ### doubleClick
623
642
 
@@ -634,12 +653,13 @@ I.doubleClick('.btn.edit');
634
653
  #### Parameters
635
654
 
636
655
  - `locator` **([string][6] | [object][4])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
637
- - `context` **([string][6]? | [object][4])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
638
- ⚠️ returns a _promise_ which is synchronized internally by recorder
656
+ - `context` **([string][6]? | [object][4])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
657
+
658
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
639
659
 
640
660
 
641
661
  This action supports [React locators](https://codecept.io/react#locators)
642
-
662
+
643
663
 
644
664
  ### downloadFile
645
665
 
@@ -664,7 +684,8 @@ I.dragAndDrop('#dragHandle', '#container');
664
684
 
665
685
  - `srcElement` **([string][6] | [object][4])** located by CSS|XPath|strict locator.
666
686
  - `destElement` **([string][6] | [object][4])** located by CSS|XPath|strict locator.
667
- ⚠️ returns a _promise_ which is synchronized internally by recorder
687
+
688
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
668
689
 
669
690
  ### dragSlider
670
691
 
@@ -679,19 +700,20 @@ I.dragSlider('#slider', -70);
679
700
  #### Parameters
680
701
 
681
702
  - `locator` **([string][6] | [object][4])** located by label|name|CSS|XPath|strict locator.
682
- - `offsetX` **[number][10]** position to drag.
683
- ⚠️ returns a _promise_ which is synchronized internally by recorder
703
+ - `offsetX` **[number][11]** position to drag.
704
+
705
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
684
706
 
685
707
 
686
708
  This action supports [React locators](https://codecept.io/react#locators)
687
-
709
+
688
710
 
689
711
  ### executeAsyncScript
690
712
 
691
713
  Executes async script on page.
692
714
  Provided function should execute a passed callback (as first argument) to signal it is finished.
693
715
 
694
- Example: In Vue.js to make components completely rendered we are waiting for [nextTick][11].
716
+ Example: In Vue.js to make components completely rendered we are waiting for [nextTick][12].
695
717
 
696
718
  ```js
697
719
  I.executeAsyncScript(function(done) {
@@ -712,9 +734,9 @@ let val = await I.executeAsyncScript(function(url, done) {
712
734
  #### Parameters
713
735
 
714
736
  - `args` **...any** to be passed to function.
715
- - `fn` **([string][6] | [function][12])** function to be executed in browser context.
737
+ - `fn` **([string][6] | [function][13])** function to be executed in browser context.
716
738
 
717
- Returns **[Promise][13]&lt;any>** script return value⚠️ returns a _promise_ which is synchronized internally by recorderAsynchronous scripts can also be executed with `executeScript` if a function returns a Promise.
739
+ Returns **[Promise][7]&lt;any>** script return valueAsynchronous scripts can also be executed with `executeScript` if a function returns a Promise.
718
740
 
719
741
  ### executeScript
720
742
 
@@ -745,9 +767,9 @@ let date = await I.executeScript(function(el) {
745
767
  #### Parameters
746
768
 
747
769
  - `args` **...any** to be passed to function.
748
- - `fn` **([string][6] | [function][12])** function to be executed in browser context.
770
+ - `fn` **([string][6] | [function][13])** function to be executed in browser context.
749
771
 
750
- Returns **[Promise][13]&lt;any>** script return value⚠️ returns a _promise_ which is synchronized internally by recorderIf a function returns a Promise It will wait for it resolution.
772
+ Returns **[Promise][7]&lt;any>** script return valueIf a function returns a Promise It will wait for it resolution.
751
773
 
752
774
  ### fillField
753
775
 
@@ -769,7 +791,8 @@ I.fillField({css: 'form#login input[name=username]'}, 'John');
769
791
 
770
792
  - `field` **([string][6] | [object][4])** located by label|name|CSS|XPath|strict locator.
771
793
  - `value` **([string][6] | [object][4])** text value to fill.
772
- ⚠️ returns a _promise_ which is synchronized internally by recorder
794
+
795
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
773
796
 
774
797
 
775
798
  This action supports [React locators](https://codecept.io/react#locators)
@@ -777,7 +800,7 @@ This action supports [React locators](https://codecept.io/react#locators)
777
800
 
778
801
  ### focus
779
802
 
780
- Calls [focus][8] on the matching element.
803
+ Calls [focus][9] on the matching element.
781
804
 
782
805
  Examples:
783
806
 
@@ -792,6 +815,8 @@ I.see('#add-to-cart-bnt');
792
815
  - `locator` **([string][6] | [object][4])** field located by label|name|CSS|XPath|strict locator.
793
816
  - `options` **any?** Playwright only: [Additional options][14] for available options object as 2nd argument.
794
817
 
818
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
819
+
795
820
  ### forceClick
796
821
 
797
822
  Perform an emulated click on a link or a button, given by a locator.
@@ -822,12 +847,13 @@ I.forceClick({css: 'nav a.login'});
822
847
  #### Parameters
823
848
 
824
849
  - `locator` **([string][6] | [object][4])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
825
- - `context` **([string][6]? | [object][4])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
826
- ⚠️ returns a _promise_ which is synchronized internally by recorder
850
+ - `context` **([string][6]? | [object][4])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
851
+
852
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
827
853
 
828
854
 
829
855
  This action supports [React locators](https://codecept.io/react#locators)
830
-
856
+
831
857
 
832
858
  ### grabAttributeFrom
833
859
 
@@ -844,7 +870,7 @@ let hint = await I.grabAttributeFrom('#tooltip', 'title');
844
870
  - `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
845
871
  - `attr` **[string][6]** attribute name.
846
872
 
847
- Returns **[Promise][13]&lt;[string][6]>** attribute value
873
+ Returns **[Promise][7]&lt;[string][6]>** attribute value
848
874
 
849
875
 
850
876
  This action supports [React locators](https://codecept.io/react#locators)
@@ -864,7 +890,7 @@ let hints = await I.grabAttributeFromAll('.tooltip', 'title');
864
890
  - `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
865
891
  - `attr` **[string][6]** attribute name.
866
892
 
867
- Returns **[Promise][13]&lt;[Array][15]&lt;[string][6]>>** attribute value
893
+ Returns **[Promise][7]&lt;[Array][15]&lt;[string][6]>>** attribute value
868
894
 
869
895
 
870
896
  This action supports [React locators](https://codecept.io/react#locators)
@@ -879,7 +905,7 @@ let logs = await I.grabBrowserLogs();
879
905
  console.log(JSON.stringify(logs))
880
906
  ```
881
907
 
882
- Returns **[Promise][13]&lt;[Array][15]&lt;any>>**
908
+ Returns **[Promise][7]&lt;[Array][15]&lt;any>>**
883
909
 
884
910
  ### grabCookie
885
911
 
@@ -896,7 +922,7 @@ assert(cookie.value, '123456');
896
922
 
897
923
  - `name` **[string][6]?** cookie name.
898
924
 
899
- Returns **([Promise][13]&lt;[string][6]> | [Promise][13]&lt;[Array][15]&lt;[string][6]>>)** attribute valueReturns cookie in JSON format. If name not passed returns all cookies for this domain.
925
+ Returns **any** attribute valueReturns cookie in JSON format. If name not passed returns all cookies for this domain.
900
926
 
901
927
  ### grabCssPropertyFrom
902
928
 
@@ -913,7 +939,7 @@ const value = await I.grabCssPropertyFrom('h3', 'font-weight');
913
939
  - `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
914
940
  - `cssProperty` **[string][6]** CSS property name.
915
941
 
916
- Returns **[Promise][13]&lt;[string][6]>** CSS value
942
+ Returns **[Promise][7]&lt;[string][6]>** CSS value
917
943
 
918
944
 
919
945
  This action supports [React locators](https://codecept.io/react#locators)
@@ -933,7 +959,7 @@ const values = await I.grabCssPropertyFromAll('h3', 'font-weight');
933
959
  - `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
934
960
  - `cssProperty` **[string][6]** CSS property name.
935
961
 
936
- Returns **[Promise][13]&lt;[Array][15]&lt;[string][6]>>** CSS value
962
+ Returns **[Promise][7]&lt;[Array][15]&lt;[string][6]>>** CSS value
937
963
 
938
964
 
939
965
  This action supports [React locators](https://codecept.io/react#locators)
@@ -949,7 +975,7 @@ let url = await I.grabCurrentUrl();
949
975
  console.log(`Current URL is [${url}]`);
950
976
  ```
951
977
 
952
- Returns **[Promise][13]&lt;[string][6]>** current URL
978
+ Returns **[Promise][7]&lt;[string][6]>** current URL
953
979
 
954
980
  ### grabDataFromPerformanceTiming
955
981
 
@@ -974,7 +1000,7 @@ let data = await I.grabDataFromPerformanceTiming();
974
1000
  }
975
1001
  ```
976
1002
 
977
- Returns **[Promise][13]&lt;any>** automatically synchronized promise through #recorder
1003
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
978
1004
 
979
1005
  ### grabElementBoundingRect
980
1006
 
@@ -1002,7 +1028,7 @@ const width = await I.grabElementBoundingRect('h3', 'width');
1002
1028
  - `prop`
1003
1029
  - `elementSize` **[string][6]?** x, y, width or height of the given element.
1004
1030
 
1005
- Returns **([Promise][13]&lt;DOMRect> | [Promise][13]&lt;[number][10]>)** Element bounding rectangle
1031
+ Returns **([Promise][7]&lt;DOMRect> | [Promise][7]&lt;[number][11]>)** Element bounding rectangle
1006
1032
 
1007
1033
  ### grabHTMLFrom
1008
1034
 
@@ -1019,7 +1045,7 @@ let postHTML = await I.grabHTMLFrom('#post');
1019
1045
  - `locator`
1020
1046
  - `element` **([string][6] | [object][4])** located by CSS|XPath|strict locator.
1021
1047
 
1022
- Returns **[Promise][13]&lt;[string][6]>** HTML code for an element
1048
+ Returns **[Promise][7]&lt;[string][6]>** HTML code for an element
1023
1049
 
1024
1050
  ### grabHTMLFromAll
1025
1051
 
@@ -1035,7 +1061,7 @@ let postHTMLs = await I.grabHTMLFromAll('.post');
1035
1061
  - `locator`
1036
1062
  - `element` **([string][6] | [object][4])** located by CSS|XPath|strict locator.
1037
1063
 
1038
- Returns **[Promise][13]&lt;[Array][15]&lt;[string][6]>>** HTML code for an element
1064
+ Returns **[Promise][7]&lt;[Array][15]&lt;[string][6]>>** HTML code for an element
1039
1065
 
1040
1066
  ### grabNumberOfOpenTabs
1041
1067
 
@@ -1046,7 +1072,7 @@ Resumes test execution, so **should be used inside async function with `await`**
1046
1072
  let tabs = await I.grabNumberOfOpenTabs();
1047
1073
  ```
1048
1074
 
1049
- Returns **[Promise][13]&lt;[number][10]>** number of open tabs
1075
+ Returns **[Promise][7]&lt;[number][11]>** number of open tabs
1050
1076
 
1051
1077
  ### grabNumberOfVisibleElements
1052
1078
 
@@ -1061,7 +1087,7 @@ let numOfElements = await I.grabNumberOfVisibleElements('p');
1061
1087
 
1062
1088
  - `locator` **([string][6] | [object][4])** located by CSS|XPath|strict locator.
1063
1089
 
1064
- Returns **[Promise][13]&lt;[number][10]>** number of visible elements
1090
+ Returns **[Promise][7]&lt;[number][11]>** number of visible elements
1065
1091
 
1066
1092
 
1067
1093
 
@@ -1077,7 +1103,7 @@ Resumes test execution, so **should be used inside an async function with `await
1077
1103
  let { x, y } = await I.grabPageScrollPosition();
1078
1104
  ```
1079
1105
 
1080
- Returns **[Promise][13]&lt;PageScrollPosition>** scroll position
1106
+ Returns **[Promise][7]&lt;PageScrollPosition>** scroll position
1081
1107
 
1082
1108
  ### grabPopupText
1083
1109
 
@@ -1087,7 +1113,7 @@ Grab the text within the popup. If no popup is visible then it will return null
1087
1113
  await I.grabPopupText();
1088
1114
  ```
1089
1115
 
1090
- Returns **[Promise][13]&lt;([string][6] | null)>**
1116
+ Returns **[Promise][7]&lt;([string][6] | null)>**
1091
1117
 
1092
1118
  ### grabSource
1093
1119
 
@@ -1098,7 +1124,7 @@ Resumes test execution, so **should be used inside async function with `await`**
1098
1124
  let pageSource = await I.grabSource();
1099
1125
  ```
1100
1126
 
1101
- Returns **[Promise][13]&lt;[string][6]>** source code
1127
+ Returns **[Promise][7]&lt;[string][6]>** source code
1102
1128
 
1103
1129
  ### grabTextFrom
1104
1130
 
@@ -1115,7 +1141,7 @@ If multiple elements found returns first element.
1115
1141
 
1116
1142
  - `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
1117
1143
 
1118
- Returns **[Promise][13]&lt;[string][6]>** attribute value
1144
+ Returns **[Promise][7]&lt;[string][6]>** attribute value
1119
1145
 
1120
1146
 
1121
1147
  This action supports [React locators](https://codecept.io/react#locators)
@@ -1134,7 +1160,7 @@ let pins = await I.grabTextFromAll('#pin li');
1134
1160
 
1135
1161
  - `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
1136
1162
 
1137
- Returns **[Promise][13]&lt;[Array][15]&lt;[string][6]>>** attribute value
1163
+ Returns **[Promise][7]&lt;[Array][15]&lt;[string][6]>>** attribute value
1138
1164
 
1139
1165
 
1140
1166
  This action supports [React locators](https://codecept.io/react#locators)
@@ -1149,7 +1175,7 @@ Resumes test execution, so **should be used inside async with `await`** operator
1149
1175
  let title = await I.grabTitle();
1150
1176
  ```
1151
1177
 
1152
- Returns **[Promise][13]&lt;[string][6]>** title
1178
+ Returns **[Promise][7]&lt;[string][6]>** title
1153
1179
 
1154
1180
  ### grabValueFrom
1155
1181
 
@@ -1165,7 +1191,7 @@ let email = await I.grabValueFrom('input[name=email]');
1165
1191
 
1166
1192
  - `locator` **([string][6] | [object][4])** field located by label|name|CSS|XPath|strict locator.
1167
1193
 
1168
- Returns **[Promise][13]&lt;[string][6]>** attribute value
1194
+ Returns **[Promise][7]&lt;[string][6]>** attribute value
1169
1195
 
1170
1196
  ### grabValueFromAll
1171
1197
 
@@ -1180,7 +1206,7 @@ let inputs = await I.grabValueFromAll('//form/input');
1180
1206
 
1181
1207
  - `locator` **([string][6] | [object][4])** field located by label|name|CSS|XPath|strict locator.
1182
1208
 
1183
- Returns **[Promise][13]&lt;[Array][15]&lt;[string][6]>>** attribute value
1209
+ Returns **[Promise][7]&lt;[Array][15]&lt;[string][6]>>** attribute value
1184
1210
 
1185
1211
  ### handleDownloads
1186
1212
 
@@ -1201,20 +1227,6 @@ I.seeFile('avatar.jpg');
1201
1227
 
1202
1228
  - `downloadPath` **[string][6]** change this parameter to set another directory for saving
1203
1229
 
1204
- ### haveRequestHeaders
1205
-
1206
- Set headers for all next requests
1207
-
1208
- ```js
1209
- I.haveRequestHeaders({
1210
- 'X-Sent-By': 'CodeceptJS',
1211
- });
1212
- ```
1213
-
1214
- #### Parameters
1215
-
1216
- - `customHeaders` **[object][4]** headers to set
1217
-
1218
1230
  ### moveCursorTo
1219
1231
 
1220
1232
  Moves cursor to element matched by locator.
@@ -1228,13 +1240,14 @@ I.moveCursorTo('#submit', 5,5);
1228
1240
  #### Parameters
1229
1241
 
1230
1242
  - `locator` **([string][6] | [object][4])** located by CSS|XPath|strict locator.
1231
- - `offsetX` **[number][10]** (optional, `0` by default) X-axis offset.
1232
- - `offsetY` **[number][10]** (optional, `0` by default) Y-axis offset.
1233
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1243
+ - `offsetX` **[number][11]** (optional, `0` by default) X-axis offset.
1244
+ - `offsetY` **[number][11]** (optional, `0` by default) Y-axis offset.
1245
+
1246
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1234
1247
 
1235
1248
 
1236
1249
  This action supports [React locators](https://codecept.io/react#locators)
1237
-
1250
+
1238
1251
 
1239
1252
  ### openNewTab
1240
1253
 
@@ -1308,7 +1321,8 @@ Some of the supported key names are:
1308
1321
  #### Parameters
1309
1322
 
1310
1323
  - `key` **([string][6] | [Array][15]&lt;[string][6]>)** key or array of keys to press.
1311
- ⚠️ returns a _promise_ which is synchronized internally by recorder_Note:_ Shortcuts like `'Meta'` + `'A'` do not work on macOS ([GoogleChrome/puppeteer#1313][18]).
1324
+
1325
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder_Note:_ Shortcuts like `'Meta'` + `'A'` do not work on macOS ([GoogleChrome/puppeteer#1313][18]).
1312
1326
 
1313
1327
  ### pressKeyDown
1314
1328
 
@@ -1325,7 +1339,8 @@ I.pressKeyUp('Control');
1325
1339
  #### Parameters
1326
1340
 
1327
1341
  - `key` **[string][6]** name of key to press down.
1328
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1342
+
1343
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1329
1344
 
1330
1345
  ### pressKeyUp
1331
1346
 
@@ -1342,7 +1357,8 @@ I.pressKeyUp('Control');
1342
1357
  #### Parameters
1343
1358
 
1344
1359
  - `key` **[string][6]** name of key to release.
1345
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1360
+
1361
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1346
1362
 
1347
1363
  ### refreshPage
1348
1364
 
@@ -1352,7 +1368,7 @@ Reload the current page.
1352
1368
  I.refreshPage();
1353
1369
  ```
1354
1370
 
1355
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1371
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1356
1372
 
1357
1373
  ### resizeWindow
1358
1374
 
@@ -1361,11 +1377,12 @@ First parameter can be set to `maximize`.
1361
1377
 
1362
1378
  #### Parameters
1363
1379
 
1364
- - `width` **[number][10]** width in pixels or `maximize`.
1365
- - `height` **[number][10]** height in pixels.
1366
- ⚠️ returns a _promise_ which is synchronized internally by recorderUnlike other drivers Puppeteer changes the size of a viewport, not the window!
1367
- Puppeteer does not control the window of a browser so it can't adjust its real size.
1368
- It also can't maximize a window.
1380
+ - `width` **[number][11]** width in pixels or `maximize`.
1381
+ - `height` **[number][11]** height in pixels.
1382
+
1383
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorderUnlike other drivers Puppeteer changes the size of a viewport, not the window!
1384
+ Puppeteer does not control the window of a browser so it can't adjust its real size.
1385
+ It also can't maximize a window.
1369
1386
 
1370
1387
  ### rightClick
1371
1388
 
@@ -1383,12 +1400,13 @@ I.rightClick('Click me', '.context');
1383
1400
  #### Parameters
1384
1401
 
1385
1402
  - `locator` **([string][6] | [object][4])** clickable element located by CSS|XPath|strict locator.
1386
- - `context` **([string][6]? | [object][4])** (optional, `null` by default) element located by CSS|XPath|strict locator.
1387
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1403
+ - `context` **([string][6]? | [object][4])** (optional, `null` by default) element located by CSS|XPath|strict locator.
1404
+
1405
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1388
1406
 
1389
1407
 
1390
1408
  This action supports [React locators](https://codecept.io/react#locators)
1391
-
1409
+
1392
1410
 
1393
1411
  ### saveElementScreenshot
1394
1412
 
@@ -1403,7 +1421,8 @@ I.saveElementScreenshot(`#submit`,'debug.png');
1403
1421
 
1404
1422
  - `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
1405
1423
  - `fileName` **[string][6]** file name to save.
1406
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1424
+
1425
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1407
1426
 
1408
1427
  ### saveScreenshot
1409
1428
 
@@ -1419,8 +1438,9 @@ I.saveScreenshot('debug.png', true) //resizes to available scrollHeight and scro
1419
1438
  #### Parameters
1420
1439
 
1421
1440
  - `fileName` **[string][6]** file name to save.
1422
- - `fullPage` **[boolean][20]** (optional, `false` by default) flag to enable fullscreen screenshot mode.
1423
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1441
+ - `fullPage` **[boolean][20]** (optional, `false` by default) flag to enable fullscreen screenshot mode.
1442
+
1443
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1424
1444
 
1425
1445
  ### scrollPageToBottom
1426
1446
 
@@ -1430,7 +1450,7 @@ Scroll page to the bottom.
1430
1450
  I.scrollPageToBottom();
1431
1451
  ```
1432
1452
 
1433
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1453
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1434
1454
 
1435
1455
  ### scrollPageToTop
1436
1456
 
@@ -1440,7 +1460,7 @@ Scroll page to the top.
1440
1460
  I.scrollPageToTop();
1441
1461
  ```
1442
1462
 
1443
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1463
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1444
1464
 
1445
1465
  ### scrollTo
1446
1466
 
@@ -1455,9 +1475,10 @@ I.scrollTo('#submit', 5, 5);
1455
1475
  #### Parameters
1456
1476
 
1457
1477
  - `locator` **([string][6] | [object][4])** located by CSS|XPath|strict locator.
1458
- - `offsetX` **[number][10]** (optional, `0` by default) X-axis offset.
1459
- - `offsetY` **[number][10]** (optional, `0` by default) Y-axis offset.
1460
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1478
+ - `offsetX` **[number][11]** (optional, `0` by default) X-axis offset.
1479
+ - `offsetY` **[number][11]** (optional, `0` by default) Y-axis offset.
1480
+
1481
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1461
1482
 
1462
1483
  ### see
1463
1484
 
@@ -1473,12 +1494,13 @@ I.see('Register', {css: 'form.register'}); // use strict locator
1473
1494
  #### Parameters
1474
1495
 
1475
1496
  - `text` **[string][6]** expected on page.
1476
- - `context` **([string][6]? | [object][4])** (optional, `null` by default) element located by CSS|Xpath|strict locator in which to search for text.
1477
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1497
+ - `context` **([string][6]? | [object][4])** (optional, `null` by default) element located by CSS|Xpath|strict locator in which to search for text.
1498
+
1499
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1478
1500
 
1479
1501
 
1480
1502
  This action supports [React locators](https://codecept.io/react#locators)
1481
-
1503
+
1482
1504
 
1483
1505
  ### seeAttributesOnElements
1484
1506
 
@@ -1492,7 +1514,8 @@ I.seeAttributesOnElements('//form', { method: "post"});
1492
1514
 
1493
1515
  - `locator` **([string][6] | [object][4])** located by CSS|XPath|strict locator.
1494
1516
  - `attributes` **[object][4]** attributes and their values to check.
1495
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1517
+
1518
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1496
1519
 
1497
1520
 
1498
1521
  This action supports [React locators](https://codecept.io/react#locators)
@@ -1511,7 +1534,8 @@ I.seeCheckboxIsChecked({css: '#signup_form input[type=checkbox]'});
1511
1534
  #### Parameters
1512
1535
 
1513
1536
  - `field` **([string][6] | [object][4])** located by label|name|CSS|XPath|strict locator.
1514
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1537
+
1538
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1515
1539
 
1516
1540
  ### seeCookie
1517
1541
 
@@ -1524,7 +1548,8 @@ I.seeCookie('Auth');
1524
1548
  #### Parameters
1525
1549
 
1526
1550
  - `name` **[string][6]** cookie name.
1527
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1551
+
1552
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1528
1553
 
1529
1554
  ### seeCssPropertiesOnElements
1530
1555
 
@@ -1538,7 +1563,8 @@ I.seeCssPropertiesOnElements('h3', { 'font-weight': "bold"});
1538
1563
 
1539
1564
  - `locator` **([string][6] | [object][4])** located by CSS|XPath|strict locator.
1540
1565
  - `cssProperties` **[object][4]** object with CSS properties and their values to check.
1541
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1566
+
1567
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1542
1568
 
1543
1569
 
1544
1570
  This action supports [React locators](https://codecept.io/react#locators)
@@ -1558,7 +1584,8 @@ I.seeCurrentUrlEquals('http://my.site.com/register');
1558
1584
  #### Parameters
1559
1585
 
1560
1586
  - `url` **[string][6]** value to check.
1561
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1587
+
1588
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1562
1589
 
1563
1590
  ### seeElement
1564
1591
 
@@ -1572,7 +1599,8 @@ I.seeElement('#modal');
1572
1599
  #### Parameters
1573
1600
 
1574
1601
  - `locator` **([string][6] | [object][4])** located by CSS|XPath|strict locator.
1575
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1602
+
1603
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1576
1604
 
1577
1605
 
1578
1606
  This action supports [React locators](https://codecept.io/react#locators)
@@ -1590,7 +1618,8 @@ I.seeElementInDOM('#modal');
1590
1618
  #### Parameters
1591
1619
 
1592
1620
  - `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
1593
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1621
+
1622
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1594
1623
 
1595
1624
  ### seeInCurrentUrl
1596
1625
 
@@ -1603,7 +1632,8 @@ I.seeInCurrentUrl('/register'); // we are on registration page
1603
1632
  #### Parameters
1604
1633
 
1605
1634
  - `url` **[string][6]** a fragment to check
1606
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1635
+
1636
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1607
1637
 
1608
1638
  ### seeInField
1609
1639
 
@@ -1621,7 +1651,8 @@ I.seeInField('#searchform input','Search');
1621
1651
 
1622
1652
  - `field` **([string][6] | [object][4])** located by label|name|CSS|XPath|strict locator.
1623
1653
  - `value` **([string][6] | [object][4])** value to check.
1624
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1654
+
1655
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1625
1656
 
1626
1657
  ### seeInPopup
1627
1658
 
@@ -1635,7 +1666,8 @@ I.seeInPopup('Popup text');
1635
1666
  #### Parameters
1636
1667
 
1637
1668
  - `text` **[string][6]** value to check.
1638
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1669
+
1670
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1639
1671
 
1640
1672
  ### seeInSource
1641
1673
 
@@ -1648,7 +1680,8 @@ I.seeInSource('<h1>Green eggs &amp; ham</h1>');
1648
1680
  #### Parameters
1649
1681
 
1650
1682
  - `text` **[string][6]** value to check.
1651
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1683
+
1684
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1652
1685
 
1653
1686
  ### seeInTitle
1654
1687
 
@@ -1661,7 +1694,8 @@ I.seeInTitle('Home Page');
1661
1694
  #### Parameters
1662
1695
 
1663
1696
  - `text` **[string][6]** text value to check.
1664
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1697
+
1698
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1665
1699
 
1666
1700
  ### seeNumberOfElements
1667
1701
 
@@ -1675,8 +1709,9 @@ I.seeNumberOfElements('#submitBtn', 1);
1675
1709
  #### Parameters
1676
1710
 
1677
1711
  - `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
1678
- - `num` **[number][10]** number of elements.
1679
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1712
+ - `num` **[number][11]** number of elements.
1713
+
1714
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1680
1715
 
1681
1716
 
1682
1717
  This action supports [React locators](https://codecept.io/react#locators)
@@ -1694,8 +1729,9 @@ I.seeNumberOfVisibleElements('.buttons', 3);
1694
1729
  #### Parameters
1695
1730
 
1696
1731
  - `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
1697
- - `num` **[number][10]** number of elements.
1698
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1732
+ - `num` **[number][11]** number of elements.
1733
+
1734
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1699
1735
 
1700
1736
 
1701
1737
  This action supports [React locators](https://codecept.io/react#locators)
@@ -1712,8 +1748,9 @@ I.seeTextEquals('text', 'h1');
1712
1748
  #### Parameters
1713
1749
 
1714
1750
  - `text` **[string][6]** element value to check.
1715
- - `context` **([string][6] | [object][4])?** element located by CSS|XPath|strict locator.
1716
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1751
+ - `context` **([string][6] | [object][4])?** element located by CSS|XPath|strict locator.
1752
+
1753
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1717
1754
 
1718
1755
  ### seeTitleEquals
1719
1756
 
@@ -1726,7 +1763,8 @@ I.seeTitleEquals('Test title.');
1726
1763
  #### Parameters
1727
1764
 
1728
1765
  - `text` **[string][6]** value to check.
1729
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1766
+
1767
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1730
1768
 
1731
1769
  ### selectOption
1732
1770
 
@@ -1753,7 +1791,8 @@ I.selectOption('Which OS do you use?', ['Android', 'iOS']);
1753
1791
 
1754
1792
  - `select` **([string][6] | [object][4])** field located by label|name|CSS|XPath|strict locator.
1755
1793
  - `option` **([string][6] | [Array][15]&lt;any>)** visible text or value of option.
1756
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1794
+
1795
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1757
1796
 
1758
1797
  ### setCookie
1759
1798
 
@@ -1774,7 +1813,22 @@ I.setCookie([
1774
1813
  #### Parameters
1775
1814
 
1776
1815
  - `cookie` **(Cookie | [Array][15]&lt;Cookie>)** a cookie object or array of cookie objects.
1777
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1816
+
1817
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1818
+
1819
+ ### setPuppeteerRequestHeaders
1820
+
1821
+ Set headers for all next requests
1822
+
1823
+ ```js
1824
+ I.setPuppeteerRequestHeaders({
1825
+ 'X-Sent-By': 'CodeceptJS',
1826
+ });
1827
+ ```
1828
+
1829
+ #### Parameters
1830
+
1831
+ - `customHeaders` **[object][4]** headers to set
1778
1832
 
1779
1833
  ### switchTo
1780
1834
 
@@ -1787,8 +1841,9 @@ I.switchTo(); // switch back to main page
1787
1841
 
1788
1842
  #### Parameters
1789
1843
 
1790
- - `locator` **([string][6]? | [object][4])** (optional, `null` by default) element located by CSS|XPath|strict locator.
1791
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1844
+ - `locator` **([string][6]? | [object][4])** (optional, `null` by default) element located by CSS|XPath|strict locator.
1845
+
1846
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1792
1847
 
1793
1848
  ### switchToNextTab
1794
1849
 
@@ -1801,7 +1856,7 @@ I.switchToNextTab(2);
1801
1856
 
1802
1857
  #### Parameters
1803
1858
 
1804
- - `num` **[number][10]**
1859
+ - `num` **[number][11]**
1805
1860
 
1806
1861
  ### switchToPreviousTab
1807
1862
 
@@ -1814,7 +1869,7 @@ I.switchToPreviousTab(2);
1814
1869
 
1815
1870
  #### Parameters
1816
1871
 
1817
- - `num` **[number][10]**
1872
+ - `num` **[number][11]**
1818
1873
 
1819
1874
  ### type
1820
1875
 
@@ -1839,10 +1894,11 @@ I.type(secret('123456'));
1839
1894
  #### Parameters
1840
1895
 
1841
1896
  - `keys`
1842
- - `delay` **[number][10]?** (optional) delay in ms between key presses
1843
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1897
+ - `delay` **[number][11]?** (optional) delay in ms between key presses
1844
1898
  - `key` **([string][6] | [Array][15]&lt;[string][6]>)** or array of keys to type.
1845
1899
 
1900
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1901
+
1846
1902
  ### uncheckOption
1847
1903
 
1848
1904
  Unselects a checkbox or radio button.
@@ -1859,8 +1915,9 @@ I.uncheckOption('agree', '//form');
1859
1915
  #### Parameters
1860
1916
 
1861
1917
  - `field` **([string][6] | [object][4])** checkbox located by label | name | CSS | XPath | strict locator.
1862
- - `context` **([string][6]? | [object][4])** (optional, `null` by default) element located by CSS | XPath | strict locator.
1863
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1918
+ - `context` **([string][6]? | [object][4])** (optional, `null` by default) element located by CSS | XPath | strict locator.
1919
+
1920
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1864
1921
 
1865
1922
  ### usePuppeteerTo
1866
1923
 
@@ -1880,7 +1937,7 @@ I.usePuppeteerTo('emulate offline mode', async ({ page }) {
1880
1937
  #### Parameters
1881
1938
 
1882
1939
  - `description` **[string][6]** used to show in logs.
1883
- - `fn` **[function][12]** async function that is executed with Puppeteer as argument
1940
+ - `fn` **[function][13]** async function that is executed with Puppeteer as argument
1884
1941
 
1885
1942
  ### wait
1886
1943
 
@@ -1892,8 +1949,9 @@ I.wait(2); // wait 2 secs
1892
1949
 
1893
1950
  #### Parameters
1894
1951
 
1895
- - `sec` **[number][10]** number of second to wait.
1896
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1952
+ - `sec` **[number][11]** number of second to wait.
1953
+
1954
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1897
1955
 
1898
1956
  ### waitForClickable
1899
1957
 
@@ -1909,8 +1967,9 @@ I.waitForClickable('.btn.continue', 5); // wait for 5 secs
1909
1967
 
1910
1968
  - `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
1911
1969
  - `waitTimeout`
1912
- - `sec` **[number][10]?** (optional, `1` by default) time in seconds to wait
1913
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1970
+ - `sec` **[number][11]?** (optional, `1` by default) time in seconds to wait
1971
+
1972
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1914
1973
 
1915
1974
  ### waitForDetached
1916
1975
 
@@ -1924,8 +1983,9 @@ I.waitForDetached('#popup');
1924
1983
  #### Parameters
1925
1984
 
1926
1985
  - `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
1927
- - `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
1928
- ⚠️ returns a _promise_ which is synchronized internally by recorder
1986
+ - `sec` **[number][11]** (optional, `1` by default) time in seconds to wait
1987
+
1988
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1929
1989
 
1930
1990
  ### waitForElement
1931
1991
 
@@ -1940,8 +2000,9 @@ I.waitForElement('.btn.continue', 5); // wait for 5 secs
1940
2000
  #### Parameters
1941
2001
 
1942
2002
  - `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
1943
- - `sec` **[number][10]?** (optional, `1` by default) time in seconds to wait
1944
- ⚠️ returns a _promise_ which is synchronized internally by recorder
2003
+ - `sec` **[number][11]?** (optional, `1` by default) time in seconds to wait
2004
+
2005
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1945
2006
 
1946
2007
 
1947
2008
  This action supports [React locators](https://codecept.io/react#locators)
@@ -1955,8 +2016,9 @@ Element can be located by CSS or XPath.
1955
2016
  #### Parameters
1956
2017
 
1957
2018
  - `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
1958
- - `sec` **[number][10]** (optional) time in seconds to wait, 1 by default.
1959
- ⚠️ returns a _promise_ which is synchronized internally by recorder
2019
+ - `sec` **[number][11]** (optional) time in seconds to wait, 1 by default.
2020
+
2021
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1960
2022
 
1961
2023
  ### waitForFunction
1962
2024
 
@@ -1975,10 +2037,11 @@ I.waitForFunction((count) => window.requests == count, [3], 5) // pass args and
1975
2037
 
1976
2038
  #### Parameters
1977
2039
 
1978
- - `fn` **([string][6] | [function][12])** to be executed in browser context.
1979
- - `argsOrSec` **([Array][15]&lt;any> | [number][10])?** (optional, `1` by default) arguments for function or seconds.
1980
- - `sec` **[number][10]?** (optional, `1` by default) time in seconds to wait
1981
- ⚠️ returns a _promise_ which is synchronized internally by recorder
2040
+ - `fn` **([string][6] | [function][13])** to be executed in browser context.
2041
+ - `argsOrSec` **([Array][15]&lt;any> | [number][11])?** (optional, `1` by default) arguments for function or seconds.
2042
+ - `sec` **[number][11]?** (optional, `1` by default) time in seconds to wait
2043
+
2044
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1982
2045
 
1983
2046
  ### waitForInvisible
1984
2047
 
@@ -1992,8 +2055,9 @@ I.waitForInvisible('#popup');
1992
2055
  #### Parameters
1993
2056
 
1994
2057
  - `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
1995
- - `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
1996
- ⚠️ returns a _promise_ which is synchronized internally by recorder
2058
+ - `sec` **[number][11]** (optional, `1` by default) time in seconds to wait
2059
+
2060
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
1997
2061
 
1998
2062
  ### waitForNavigation
1999
2063
 
@@ -2016,8 +2080,8 @@ I.waitForRequest(request => request.url() === 'http://example.com' && request.me
2016
2080
 
2017
2081
  #### Parameters
2018
2082
 
2019
- - `urlOrPredicate` **([string][6] | [function][12])**
2020
- - `sec` **[number][10]?** seconds to wait
2083
+ - `urlOrPredicate` **([string][6] | [function][13])**
2084
+ - `sec` **[number][11]?** seconds to wait
2021
2085
 
2022
2086
  ### waitForResponse
2023
2087
 
@@ -2030,8 +2094,8 @@ I.waitForResponse(response => response.url() === 'http://example.com' && respons
2030
2094
 
2031
2095
  #### Parameters
2032
2096
 
2033
- - `urlOrPredicate` **([string][6] | [function][12])**
2034
- - `sec` **[number][10]?** number of seconds to wait
2097
+ - `urlOrPredicate` **([string][6] | [function][13])**
2098
+ - `sec` **[number][11]?** number of seconds to wait
2035
2099
 
2036
2100
  ### waitForText
2037
2101
 
@@ -2047,9 +2111,10 @@ I.waitForText('Thank you, form has been submitted', 5, '#modal');
2047
2111
  #### Parameters
2048
2112
 
2049
2113
  - `text` **[string][6]** to wait for.
2050
- - `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
2051
- - `context` **([string][6] | [object][4])?** (optional) element located by CSS|XPath|strict locator.
2052
- ⚠️ returns a _promise_ which is synchronized internally by recorder
2114
+ - `sec` **[number][11]** (optional, `1` by default) time in seconds to wait
2115
+ - `context` **([string][6] | [object][4])?** (optional) element located by CSS|XPath|strict locator.
2116
+
2117
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
2053
2118
 
2054
2119
  ### waitForValue
2055
2120
 
@@ -2063,8 +2128,9 @@ I.waitForValue('//input', "GoodValue");
2063
2128
 
2064
2129
  - `field` **([string][6] | [object][4])** input field.
2065
2130
  - `value` **[string][6]** expected value.
2066
- - `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
2067
- ⚠️ returns a _promise_ which is synchronized internally by recorder
2131
+ - `sec` **[number][11]** (optional, `1` by default) time in seconds to wait
2132
+
2133
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
2068
2134
 
2069
2135
  ### waitForVisible
2070
2136
 
@@ -2078,8 +2144,9 @@ I.waitForVisible('#popup');
2078
2144
  #### Parameters
2079
2145
 
2080
2146
  - `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
2081
- - `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
2082
- ⚠️ returns a _promise_ which is synchronized internally by recorderThis method accepts [React selectors][24].
2147
+ - `sec` **[number][11]** (optional, `1` by default) time in seconds to wait
2148
+
2149
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorderThis method accepts [React selectors][24].
2083
2150
 
2084
2151
  ### waitInUrl
2085
2152
 
@@ -2092,8 +2159,9 @@ I.waitInUrl('/info', 2);
2092
2159
  #### Parameters
2093
2160
 
2094
2161
  - `urlPart` **[string][6]** value to check.
2095
- - `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
2096
- ⚠️ returns a _promise_ which is synchronized internally by recorder
2162
+ - `sec` **[number][11]** (optional, `1` by default) time in seconds to wait
2163
+
2164
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
2097
2165
 
2098
2166
  ### waitNumberOfVisibleElements
2099
2167
 
@@ -2106,13 +2174,14 @@ I.waitNumberOfVisibleElements('a', 3);
2106
2174
  #### Parameters
2107
2175
 
2108
2176
  - `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
2109
- - `num` **[number][10]** number of elements.
2110
- - `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
2111
- ⚠️ returns a _promise_ which is synchronized internally by recorder
2177
+ - `num` **[number][11]** number of elements.
2178
+ - `sec` **[number][11]** (optional, `1` by default) time in seconds to wait
2179
+
2180
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
2112
2181
 
2113
2182
 
2114
2183
  This action supports [React locators](https://codecept.io/react#locators)
2115
-
2184
+
2116
2185
 
2117
2186
  ### waitToHide
2118
2187
 
@@ -2126,8 +2195,9 @@ I.waitToHide('#popup');
2126
2195
  #### Parameters
2127
2196
 
2128
2197
  - `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
2129
- - `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
2130
- ⚠️ returns a _promise_ which is synchronized internally by recorder
2198
+ - `sec` **[number][11]** (optional, `1` by default) time in seconds to wait
2199
+
2200
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
2131
2201
 
2132
2202
  ### waitUrlEquals
2133
2203
 
@@ -2141,8 +2211,9 @@ I.waitUrlEquals('http://127.0.0.1:8000/info');
2141
2211
  #### Parameters
2142
2212
 
2143
2213
  - `urlPart` **[string][6]** value to check.
2144
- - `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
2145
- ⚠️ returns a _promise_ which is synchronized internally by recorder
2214
+ - `sec` **[number][11]** (optional, `1` by default) time in seconds to wait
2215
+
2216
+ Returns **[Promise][7]&lt;void>** automatically synchronized promise through #recorder
2146
2217
 
2147
2218
  [1]: https://github.com/GoogleChrome/puppeteer
2148
2219
 
@@ -2156,19 +2227,19 @@ I.waitUrlEquals('http://127.0.0.1:8000/info');
2156
2227
 
2157
2228
  [6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
2158
2229
 
2159
- [7]: https://github.com/puppeteer/puppeteer/issues/5420
2230
+ [7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise
2160
2231
 
2161
- [8]: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus
2232
+ [8]: https://github.com/puppeteer/puppeteer/issues/5420
2162
2233
 
2163
- [9]: https://playwright.dev/docs/api/class-locator#locator-blur
2234
+ [9]: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus
2164
2235
 
2165
- [10]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
2236
+ [10]: https://playwright.dev/docs/api/class-locator#locator-blur
2166
2237
 
2167
- [11]: https://vuejs.org/v2/api/#Vue-nextTick
2238
+ [11]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
2168
2239
 
2169
- [12]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function
2240
+ [12]: https://vuejs.org/v2/api/#Vue-nextTick
2170
2241
 
2171
- [13]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise
2242
+ [13]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function
2172
2243
 
2173
2244
  [14]: https://playwright.dev/docs/api/class-locator#locator-focus
2174
2245