codeceptjs 3.5.9 → 3.5.11

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 (52) hide show
  1. package/README.md +14 -16
  2. package/docs/build/Appium.js +49 -49
  3. package/docs/build/Expect.js +33 -33
  4. package/docs/build/Nightmare.js +50 -50
  5. package/docs/build/Playwright.js +239 -133
  6. package/docs/build/Protractor.js +59 -59
  7. package/docs/build/Puppeteer.js +127 -107
  8. package/docs/build/TestCafe.js +48 -48
  9. package/docs/build/WebDriver.js +112 -93
  10. package/docs/helpers/Appium.md +3 -3
  11. package/docs/helpers/Expect.md +33 -33
  12. package/docs/helpers/Playwright.md +431 -325
  13. package/docs/helpers/Puppeteer.md +50 -24
  14. package/docs/helpers/WebDriver.md +41 -13
  15. package/docs/internal-api.md +1 -0
  16. package/docs/parallel.md +114 -2
  17. package/docs/plugins.md +7 -5
  18. package/docs/react.md +2 -1
  19. package/docs/vue.md +22 -0
  20. package/docs/webapi/grabWebElement.mustache +9 -0
  21. package/docs/webapi/grabWebElements.mustache +9 -0
  22. package/docs/webapi/scrollIntoView.mustache +1 -1
  23. package/lib/ai.js +12 -3
  24. package/lib/colorUtils.js +10 -0
  25. package/lib/command/run-multiple.js +1 -1
  26. package/lib/command/run-workers.js +30 -4
  27. package/lib/command/workers/runTests.js +39 -0
  28. package/lib/event.js +2 -0
  29. package/lib/helper/Appium.js +13 -13
  30. package/lib/helper/Expect.js +33 -33
  31. package/lib/helper/Playwright.js +125 -37
  32. package/lib/helper/Puppeteer.js +49 -38
  33. package/lib/helper/WebDriver.js +29 -19
  34. package/lib/helper/extras/PlaywrightReactVueLocator.js +38 -0
  35. package/lib/html.js +3 -3
  36. package/lib/interfaces/gherkin.js +8 -1
  37. package/lib/interfaces/scenarioConfig.js +1 -0
  38. package/lib/locator.js +2 -2
  39. package/lib/pause.js +6 -3
  40. package/lib/plugin/autoLogin.js +4 -2
  41. package/lib/plugin/heal.js +40 -7
  42. package/lib/plugin/retryFailedStep.js +6 -1
  43. package/lib/plugin/stepByStepReport.js +2 -2
  44. package/lib/plugin/tryTo.js +5 -4
  45. package/lib/recorder.js +12 -5
  46. package/lib/ui.js +1 -0
  47. package/lib/workers.js +2 -0
  48. package/package.json +28 -25
  49. package/typings/index.d.ts +1 -1
  50. package/typings/promiseBasedTypes.d.ts +195 -76
  51. package/typings/types.d.ts +191 -145
  52. package/lib/helper/extras/PlaywrightReact.js +0 -9
@@ -39,46 +39,47 @@ Using playwright-core package, will prevent the download of browser binaries and
39
39
 
40
40
  This helper should be configured in codecept.conf.(js|ts)
41
41
 
42
- Type: [object][5]
42
+ Type: [object][6]
43
43
 
44
44
  ### Properties
45
45
 
46
- - `url` **[string][8]?** base url of website to be tested
46
+ - `url` **[string][9]?** base url of website to be tested
47
47
  - `browser` **(`"chromium"` | `"firefox"` | `"webkit"` | `"electron"`)?** a browser to test on, either: `chromium`, `firefox`, `webkit`, `electron`. Default: chromium.
48
- - `show` **[boolean][25]?** show browser window.
49
- - `restart` **([string][8] | [boolean][25])?** restart strategy between tests. Possible values:- 'context' or **false** - restarts [browser context][42] but keeps running browser. Recommended by Playwright team to keep tests isolated.
48
+ - `show` **[boolean][26]?** show browser window.
49
+ - `restart` **([string][9] | [boolean][26])?** restart strategy between tests. Possible values:- 'context' or **false** - restarts [browser context][44] but keeps running browser. Recommended by Playwright team to keep tests isolated.
50
50
  - 'browser' or **true** - closes browser and opens it again between tests.
51
51
  - 'session' or 'keep' - keeps browser context and session, but cleans up cookies and localStorage between tests. The fastest option when running tests in windowed mode. Works with `keepCookies` and `keepBrowserState` options. This behavior was default before CodeceptJS 3.1
52
- - `timeout` **[number][19]?** - [timeout][43] in ms of all Playwright actions .
53
- - `disableScreenshots` **[boolean][25]?** don't save screenshot on failure.
52
+ - `timeout` **[number][20]?** - [timeout][45] in ms of all Playwright actions .
53
+ - `disableScreenshots` **[boolean][26]?** don't save screenshot on failure.
54
54
  - `emulate` **any?** browser in device emulation mode.
55
- - `video` **[boolean][25]?** enables video recording for failed tests; videos are saved into `output/videos` folder
56
- - `keepVideoForPassedTests` **[boolean][25]?** save videos for passed tests; videos are saved into `output/videos` folder
57
- - `trace` **[boolean][25]?** record [tracing information][44] with screenshots and snapshots.
58
- - `keepTraceForPassedTests` **[boolean][25]?** save trace for passed tests.
59
- - `fullPageScreenshots` **[boolean][25]?** make full page screenshots on failure.
60
- - `uniqueScreenshotNames` **[boolean][25]?** option to prevent screenshot override if you have scenarios with the same name in different suites.
61
- - `keepBrowserState` **[boolean][25]?** keep browser state between tests when `restart` is set to 'session'.
62
- - `keepCookies` **[boolean][25]?** keep cookies between tests when `restart` is set to 'session'.
63
- - `waitForAction` **[number][19]?** how long to wait after click, doubleClick or PressKey actions in ms. Default: 100.
64
- - `waitForNavigation` **(`"load"` | `"domcontentloaded"` | `"commit"`)?** When to consider navigation succeeded. Possible options: `load`, `domcontentloaded`, `commit`. Choose one of those options is possible. See [Playwright API][40].
65
- - `pressKeyDelay` **[number][19]?** Delay between key presses in ms. Used when calling Playwrights page.type(...) in fillField/appendField
66
- - `getPageTimeout` **[number][19]?** config option to set maximum navigation time in milliseconds.
67
- - `waitForTimeout` **[number][19]?** default wait* timeout in ms. Default: 1000.
68
- - `basicAuth` **[object][5]?** the basic authentication to pass to base url. Example: {username: 'username', password: 'password'}
69
- - `windowSize` **[string][8]?** default window size. Set a dimension like `640x480`.
55
+ - `video` **[boolean][26]?** enables video recording for failed tests; videos are saved into `output/videos` folder
56
+ - `keepVideoForPassedTests` **[boolean][26]?** save videos for passed tests; videos are saved into `output/videos` folder
57
+ - `trace` **[boolean][26]?** record [tracing information][46] with screenshots and snapshots.
58
+ - `keepTraceForPassedTests` **[boolean][26]?** save trace for passed tests.
59
+ - `fullPageScreenshots` **[boolean][26]?** make full page screenshots on failure.
60
+ - `uniqueScreenshotNames` **[boolean][26]?** option to prevent screenshot override if you have scenarios with the same name in different suites.
61
+ - `keepBrowserState` **[boolean][26]?** keep browser state between tests when `restart` is set to 'session'.
62
+ - `keepCookies` **[boolean][26]?** keep cookies between tests when `restart` is set to 'session'.
63
+ - `waitForAction` **[number][20]?** how long to wait after click, doubleClick or PressKey actions in ms. Default: 100.
64
+ - `waitForNavigation` **(`"load"` | `"domcontentloaded"` | `"commit"`)?** When to consider navigation succeeded. Possible options: `load`, `domcontentloaded`, `commit`. Choose one of those options is possible. See [Playwright API][42].
65
+ - `pressKeyDelay` **[number][20]?** Delay between key presses in ms. Used when calling Playwrights page.type(...) in fillField/appendField
66
+ - `getPageTimeout` **[number][20]?** config option to set maximum navigation time in milliseconds.
67
+ - `waitForTimeout` **[number][20]?** default wait* timeout in ms. Default: 1000.
68
+ - `basicAuth` **[object][6]?** the basic authentication to pass to base url. Example: {username: 'username', password: 'password'}
69
+ - `windowSize` **[string][9]?** default window size. Set a dimension like `640x480`.
70
70
  - `colorScheme` **(`"dark"` | `"light"` | `"no-preference"`)?** default color scheme. Possible values: `dark` | `light` | `no-preference`.
71
- - `userAgent` **[string][8]?** user-agent string.
72
- - `locale` **[string][8]?** locale string. Example: 'en-GB', 'de-DE', 'fr-FR', ...
73
- - `manualStart` **[boolean][25]?** do not start browser before a test, start it manually inside a helper with `this.helpers["Playwright"]._startBrowser()`.
74
- - `chromium` **[object][5]?** pass additional chromium options
75
- - `firefox` **[object][5]?** pass additional firefox options
76
- - `electron` **[object][5]?** (pass additional electron options
77
- - `channel` **any?** (While Playwright can operate against the stock Google Chrome and Microsoft Edge browsers available on the machine. In particular, current Playwright version will support Stable and Beta channels of these browsers. See [Google Chrome & Microsoft Edge][45].
78
- - `ignoreLog` **[Array][9]<[string][8]>?** An array with console message types that are not logged to debug log. Default value is `['warning', 'log']`. E.g. you can set `[]` to log all messages. See all possible [values][46].
79
- - `ignoreHTTPSErrors` **[boolean][25]?** Allows access to untrustworthy pages, e.g. to a page with an expired certificate. Default value is `false`
80
- - `bypassCSP` **[boolean][25]?** bypass Content Security Policy or CSP
81
- - `highlightElement` **[boolean][25]?** highlight the interacting elements. Default: false. Note: only activate under verbose mode (--verbose).
71
+ - `userAgent` **[string][9]?** user-agent string.
72
+ - `locale` **[string][9]?** locale string. Example: 'en-GB', 'de-DE', 'fr-FR', ...
73
+ - `manualStart` **[boolean][26]?** do not start browser before a test, start it manually inside a helper with `this.helpers["Playwright"]._startBrowser()`.
74
+ - `chromium` **[object][6]?** pass additional chromium options
75
+ - `firefox` **[object][6]?** pass additional firefox options
76
+ - `electron` **[object][6]?** (pass additional electron options
77
+ - `channel` **any?** (While Playwright can operate against the stock Google Chrome and Microsoft Edge browsers available on the machine. In particular, current Playwright version will support Stable and Beta channels of these browsers. See [Google Chrome & Microsoft Edge][47].
78
+ - `ignoreLog` **[Array][10]<[string][9]>?** An array with console message types that are not logged to debug log. Default value is `['warning', 'log']`. E.g. you can set `[]` to log all messages. See all possible [values][48].
79
+ - `ignoreHTTPSErrors` **[boolean][26]?** Allows access to untrustworthy pages, e.g. to a page with an expired certificate. Default value is `false`
80
+ - `bypassCSP` **[boolean][26]?** bypass Content Security Policy or CSP
81
+ - `highlightElement` **[boolean][26]?** highlight the interacting elements. Default: false. Note: only activate under verbose mode (--verbose).
82
+ - `recordHar` **[object][6]?** record HAR and will be saved to `output/har`. See more of [HAR options][3].
82
83
 
83
84
 
84
85
 
@@ -99,6 +100,19 @@ Traces will be saved to `output/trace`
99
100
  - `trace`: enables trace recording for failed tests; trace are saved into `output/trace` folder
100
101
  - `keepTraceForPassedTests`: - save trace for passed tests
101
102
 
103
+ #### HAR Recording Customization
104
+
105
+ A HAR file is an HTTP Archive file that contains a record of all the network requests that are made when a page is loaded.
106
+ It contains information about the request and response headers, cookies, content, timings, and more. You can use HAR files to mock network requests in your tests.
107
+ HAR will be saved to `output/har`. More info could be found here [https://playwright.dev/docs/api/class-browser#browser-new-context-option-record-har][3].
108
+
109
+ ...
110
+ recordHar: {
111
+ mode: 'minimal', // possible values: 'minimal'|'full'.
112
+ content: 'embed' // possible values: "omit"|"embed"|"attach".
113
+ }
114
+ ...
115
+
102
116
  #### Example #1: Wait for 0 network connections.
103
117
 
104
118
  ```js
@@ -142,7 +156,7 @@ Traces will be saved to `output/trace`
142
156
  }
143
157
  ```
144
158
 
145
- #### Example #4: Connect to remote browser by specifying [websocket endpoint][3]
159
+ #### Example #4: Connect to remote browser by specifying [websocket endpoint][4]
146
160
 
147
161
  ```js
148
162
  {
@@ -160,7 +174,7 @@ Traces will be saved to `output/trace`
160
174
 
161
175
  #### Example #5: Testing with Chromium extensions
162
176
 
163
- [official docs][4]
177
+ [official docs][5]
164
178
 
165
179
  ```js
166
180
  {
@@ -283,7 +297,7 @@ Usually it should be run from a custom helper after call of `_startBrowser()`
283
297
 
284
298
  #### Parameters
285
299
 
286
- - `contextOptions` **[object][5]?** See [https://playwright.dev/docs/api/class-browser#browser-new-context][6]
300
+ - `contextOptions` **[object][6]?** See [https://playwright.dev/docs/api/class-browser#browser-new-context][7]
287
301
 
288
302
  ### _getPageUrl
289
303
 
@@ -359,13 +373,13 @@ Set current page
359
373
 
360
374
  #### Parameters
361
375
 
362
- - `page` **[object][5]** page to set
376
+ - `page` **[object][6]** page to set
363
377
 
364
378
  ### acceptPopup
365
379
 
366
380
  Accepts the active JavaScript native popup window, as created by window.alert|window.confirm|window.prompt.
367
381
  Don't confuse popups with modal windows, as created by [various
368
- libraries][7].
382
+ libraries][8].
369
383
 
370
384
  ### amAcceptingPopups
371
385
 
@@ -402,7 +416,7 @@ I.amOnPage('/login'); // opens a login page
402
416
 
403
417
  #### Parameters
404
418
 
405
- - `url` **[string][8]** url path or global url.
419
+ - `url` **[string][9]** url path or global url.
406
420
 
407
421
  Returns **void** automatically synchronized promise through #recorder
408
422
 
@@ -419,8 +433,8 @@ I.appendField('password', secret('123456'));
419
433
 
420
434
  #### Parameters
421
435
 
422
- - `field` **([string][8] | [object][5])** located by label|name|CSS|XPath|strict locator
423
- - `value` **[string][8]** text value to append.
436
+ - `field` **([string][9] | [object][6])** located by label|name|CSS|XPath|strict locator
437
+ - `value` **[string][9]** text value to append.
424
438
 
425
439
  Returns **void** automatically synchronized promise through #recorder
426
440
 
@@ -437,8 +451,8 @@ I.attachFile('form input[name=avatar]', 'data/avatar.jpg');
437
451
 
438
452
  #### Parameters
439
453
 
440
- - `locator` **([string][8] | [object][5])** field located by label|name|CSS|XPath|strict locator.
441
- - `pathToFile` **[string][8]** local file path relative to codecept.conf.ts or codecept.conf.js config file.
454
+ - `locator` **([string][9] | [object][6])** field located by label|name|CSS|XPath|strict locator.
455
+ - `pathToFile` **[string][9]** local file path relative to codecept.conf.ts or codecept.conf.js config file.
442
456
 
443
457
  Returns **void** automatically synchronized promise through #recorder
444
458
 
@@ -461,12 +475,12 @@ I.blockTraffic(['http://example.com/css/style.css', 'http://example.com/css/*.cs
461
475
 
462
476
  #### Parameters
463
477
 
464
- - `urls` **([string][8] | [Array][9] | [RegExp][10])** URL or a list of URLs to block . URL can contain * for wildcards. Example: [https://www.example.com**][11] to block all traffic for that domain. Regexp are also supported.
478
+ - `urls` **([string][9] | [Array][10] | [RegExp][11])** URL or a list of URLs to block . URL can contain * for wildcards. Example: [https://www.example.com**][12] to block all traffic for that domain. Regexp are also supported.
465
479
 
466
480
  ### blur
467
481
 
468
482
  Remove focus from a text input, button, etc.
469
- Calls [blur][12] on the element.
483
+ Calls [blur][13] on the element.
470
484
 
471
485
  Examples:
472
486
 
@@ -483,8 +497,8 @@ I.dontSee('#add-to-cart-btn');
483
497
 
484
498
  #### Parameters
485
499
 
486
- - `locator` **([string][8] | [object][5])** field located by label|name|CSS|XPath|strict locator.
487
- - `options` **any?** Playwright only: [Additional options][13] for available options object as 2nd argument.
500
+ - `locator` **([string][9] | [object][6])** field located by label|name|CSS|XPath|strict locator.
501
+ - `options` **any?** Playwright only: [Additional options][14] for available options object as 2nd argument.
488
502
 
489
503
  Returns **void** automatically synchronized promise through #recorder
490
504
 
@@ -494,6 +508,17 @@ Dismisses the active JavaScript popup, as created by window.alert|window.confirm
494
508
 
495
509
  ### checkOption
496
510
 
511
+ [Additional options][15] for check available as 3rd argument.
512
+
513
+ Examples:
514
+
515
+ ```js
516
+ // click on element at position
517
+ I.checkOption('Agree', '.signup', { position: { x: 5, y: 5 } })
518
+ ```
519
+
520
+ > ⚠️ To avoid flakiness, option `force: true` is set by default
521
+
497
522
  Selects a checkbox or radio button.
498
523
  Element is located by label or name or CSS or XPath.
499
524
 
@@ -507,14 +532,11 @@ I.checkOption('agree', '//form');
507
532
 
508
533
  #### Parameters
509
534
 
510
- - `field` **([string][8] | [object][5])** checkbox located by label | name | CSS | XPath | strict locator.
511
- - `context` **([string][8]? | [object][5])** (optional, `null` by default) element located by CSS | XPath | strict locator.
535
+ - `field` **([string][9] | [object][6])** checkbox located by label | name | CSS | XPath | strict locator.
536
+ - `context` **([string][9]? | [object][6])** (optional, `null` by default) element located by CSS | XPath | strict locator.
512
537
  - `options`
513
538
 
514
- Returns **void** automatically synchronized promise through #recorder[Additional options][14] for check available as 3rd argument.Examples:```js
515
- // click on element at position
516
- I.checkOption('Agree', '.signup', { position: { x: 5, y: 5 } })
517
- ```> ⚠️ To avoid flakiness, option `force: true` is set by default
539
+ Returns **void** automatically synchronized promise through #recorder
518
540
 
519
541
  ### clearCookie
520
542
 
@@ -528,7 +550,7 @@ I.clearCookie('test'); // Playwright currently doesn't support clear a particula
528
550
 
529
551
  #### Parameters
530
552
 
531
- - `cookie` **[string][8]?** (optional, `null` by default) cookie name
553
+ - `cookie` **[string][9]?** (optional, `null` by default) cookie name
532
554
 
533
555
  ### clearField
534
556
 
@@ -543,12 +565,12 @@ I.clearField('.text-area')
543
565
  I.clearField('#submit', { force: true })
544
566
  ```
545
567
 
546
- Use `force` to bypass the [actionability][15] checks.
568
+ Use `force` to bypass the [actionability][16] checks.
547
569
 
548
570
  #### Parameters
549
571
 
550
- - `locator` **([string][8] | [object][5])** field located by label|name|CSS|XPath|strict locator.
551
- - `options` **any?** [Additional options][16] for available options object as 2nd argument.
572
+ - `locator` **([string][9] | [object][6])** field located by label|name|CSS|XPath|strict locator.
573
+ - `options` **any?** [Additional options][17] for available options object as 2nd argument.
552
574
 
553
575
  ### click
554
576
 
@@ -576,15 +598,21 @@ I.click({css: 'nav a.login'});
576
598
 
577
599
  #### Parameters
578
600
 
579
- - `locator` **([string][8] | [object][5])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
580
- - `context` **([string][8]? | [object][5] | null)** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
581
- - `options` **any?** [Additional options][17] for click available as 3rd argument.Examples:```js
582
- // click on element at position
583
- I.click('canvas', '.model', { position: { x: 20, y: 40 } })
601
+ - `locator` **([string][9] | [object][6])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
602
+ - `context` **([string][9]? | [object][6] | null)** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
603
+ - `options` **any?** [Additional options][18] for click available as 3rd argument.
584
604
 
585
- // make ctrl-click
586
- I.click('.edit', null, { modifiers: ['Ctrl'] } )
587
- ```
605
+ #### Examples
606
+
607
+ ````javascript
608
+ ```js
609
+ // click on element at position
610
+ I.click('canvas', '.model', { position: { x: 20, y: 40 } })
611
+
612
+ // make ctrl-click
613
+ I.click('.edit', null, { modifiers: ['Ctrl'] } )
614
+ ```
615
+ ````
588
616
 
589
617
  Returns **void** automatically synchronized promise through #recorder
590
618
 
@@ -625,8 +653,8 @@ I.dontSee('Login', '.nav'); // no login inside .nav element
625
653
 
626
654
  #### Parameters
627
655
 
628
- - `text` **[string][8]** which is not present.
629
- - `context` **([string][8] | [object][5])?** (optional) element located by CSS|XPath|strict locator in which to perfrom search.
656
+ - `text` **[string][9]** which is not present.
657
+ - `context` **([string][9] | [object][6])?** (optional) element located by CSS|XPath|strict locator in which to perfrom search.
630
658
 
631
659
  Returns **void** automatically synchronized promise through #recorder
632
660
 
@@ -642,7 +670,7 @@ I.dontSeeCheckboxIsChecked('agree'); // located by name
642
670
 
643
671
  #### Parameters
644
672
 
645
- - `field` **([string][8] | [object][5])** located by label|name|CSS|XPath|strict locator.
673
+ - `field` **([string][9] | [object][6])** located by label|name|CSS|XPath|strict locator.
646
674
 
647
675
  Returns **void** automatically synchronized promise through #recorder
648
676
 
@@ -656,7 +684,7 @@ I.dontSeeCookie('auth'); // no auth cookie
656
684
 
657
685
  #### Parameters
658
686
 
659
- - `name` **[string][8]** cookie name.
687
+ - `name` **[string][9]** cookie name.
660
688
 
661
689
  Returns **void** automatically synchronized promise through #recorder
662
690
 
@@ -672,7 +700,7 @@ I.dontSeeCurrentUrlEquals('http://mysite.com/login'); // absolute urls are also
672
700
 
673
701
  #### Parameters
674
702
 
675
- - `url` **[string][8]** value to check.
703
+ - `url` **[string][9]** value to check.
676
704
 
677
705
  Returns **void** automatically synchronized promise through #recorder
678
706
 
@@ -686,7 +714,7 @@ I.dontSeeElement('.modal'); // modal is not shown
686
714
 
687
715
  #### Parameters
688
716
 
689
- - `locator` **([string][8] | [object][5])** located by CSS|XPath|Strict locator.
717
+ - `locator` **([string][9] | [object][6])** located by CSS|XPath|Strict locator.
690
718
 
691
719
  Returns **void** automatically synchronized promise through #recorder
692
720
 
@@ -700,7 +728,7 @@ I.dontSeeElementInDOM('.nav'); // checks that element is not on page visible or
700
728
 
701
729
  #### Parameters
702
730
 
703
- - `locator` **([string][8] | [object][5])** located by CSS|XPath|Strict locator.
731
+ - `locator` **([string][9] | [object][6])** located by CSS|XPath|Strict locator.
704
732
 
705
733
  Returns **void** automatically synchronized promise through #recorder
706
734
 
@@ -710,7 +738,7 @@ Checks that current url does not contain a provided fragment.
710
738
 
711
739
  #### Parameters
712
740
 
713
- - `url` **[string][8]** value to check.
741
+ - `url` **[string][9]** value to check.
714
742
 
715
743
  Returns **void** automatically synchronized promise through #recorder
716
744
 
@@ -726,8 +754,8 @@ I.dontSeeInField({ css: 'form input.email' }, 'user@user.com'); // field by CSS
726
754
 
727
755
  #### Parameters
728
756
 
729
- - `field` **([string][8] | [object][5])** located by label|name|CSS|XPath|strict locator.
730
- - `value` **([string][8] | [object][5])** value to check.
757
+ - `field` **([string][9] | [object][6])** located by label|name|CSS|XPath|strict locator.
758
+ - `value` **([string][9] | [object][6])** value to check.
731
759
 
732
760
  Returns **void** automatically synchronized promise through #recorder
733
761
 
@@ -742,7 +770,7 @@ I.dontSeeInSource('<!--'); // no comments in source
742
770
  #### Parameters
743
771
 
744
772
  - `text`
745
- - `value` **[string][8]** to check.
773
+ - `value` **[string][9]** to check.
746
774
 
747
775
  Returns **void** automatically synchronized promise through #recorder
748
776
 
@@ -756,7 +784,7 @@ I.dontSeeInTitle('Error');
756
784
 
757
785
  #### Parameters
758
786
 
759
- - `text` **[string][8]** value to check.
787
+ - `text` **[string][9]** value to check.
760
788
 
761
789
  Returns **void** automatically synchronized promise through #recorder
762
790
 
@@ -773,9 +801,9 @@ I.dontSeeTraffic({ name: 'Unexpected API Call of "user" endpoint', url: /api.exa
773
801
 
774
802
  #### Parameters
775
803
 
776
- - `opts` **[Object][5]** options when checking the traffic network.
777
- - `opts.name` **[string][8]** A name of that request. Can be any value. Only relevant to have a more meaningful error message in case of fail.
778
- - `opts.url` **([string][8] | [RegExp][10])** Expected URL of request in network traffic. Can be a string or a regular expression.
804
+ - `opts` **[Object][6]** options when checking the traffic network.
805
+ - `opts.name` **[string][9]** A name of that request. Can be any value. Only relevant to have a more meaningful error message in case of fail.
806
+ - `opts.url` **([string][9] | [RegExp][11])** Expected URL of request in network traffic. Can be a string or a regular expression.
779
807
 
780
808
  ### doubleClick
781
809
 
@@ -791,13 +819,20 @@ I.doubleClick('.btn.edit');
791
819
 
792
820
  #### Parameters
793
821
 
794
- - `locator` **([string][8] | [object][5])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
795
- - `context` **([string][8]? | [object][5])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
822
+ - `locator` **([string][9] | [object][6])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
823
+ - `context` **([string][9]? | [object][6])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
796
824
 
797
825
  Returns **void** automatically synchronized promise through #recorder
798
826
 
799
827
  ### dragAndDrop
800
828
 
829
+ ```js
830
+ // specify coordinates for source position
831
+ I.dragAndDrop('img.src', 'img.dst', { sourcePosition: {x: 10, y: 10} })
832
+ ```
833
+
834
+ > When no option is set, custom drag and drop would be used, to use the dragAndDrop API from Playwright, please set options, for example `force: true`
835
+
801
836
  Drag an item to a destination element.
802
837
 
803
838
  ```js
@@ -806,12 +841,9 @@ I.dragAndDrop('#dragHandle', '#container');
806
841
 
807
842
  #### Parameters
808
843
 
809
- - `srcElement` **([string][8] | [object][5])** located by CSS|XPath|strict locator.
810
- - `destElement` **([string][8] | [object][5])** located by CSS|XPath|strict locator.
811
- - `options` **any?** [Additional options][18] can be passed as 3rd argument.```js
812
- // specify coordinates for source position
813
- I.dragAndDrop('img.src', 'img.dst', { sourcePosition: {x: 10, y: 10} })
814
- ```> When no option is set, custom drag and drop would be used, to use the dragAndDrop API from Playwright, please set options, for example `force: true`
844
+ - `srcElement` **([string][9] | [object][6])** located by CSS|XPath|strict locator.
845
+ - `destElement` **([string][9] | [object][6])** located by CSS|XPath|strict locator.
846
+ - `options` **any?** [Additional options][19] can be passed as 3rd argument.
815
847
 
816
848
  Returns **void** automatically synchronized promise through #recorder
817
849
 
@@ -827,8 +859,8 @@ I.dragSlider('#slider', -70);
827
859
 
828
860
  #### Parameters
829
861
 
830
- - `locator` **([string][8] | [object][5])** located by label|name|CSS|XPath|strict locator.
831
- - `offsetX` **[number][19]** position to drag.
862
+ - `locator` **([string][9] | [object][6])** located by label|name|CSS|XPath|strict locator.
863
+ - `offsetX` **[number][20]** position to drag.
832
864
 
833
865
  Returns **void** automatically synchronized promise through #recorder
834
866
 
@@ -846,8 +878,8 @@ Additional parameters of the function can be passed as an object argument:
846
878
  I.executeScript(({x, y}) => x + y, {x, y});
847
879
  ```
848
880
 
849
- You can pass only one parameter into a function
850
- but you can pass in array or object.
881
+ You can pass only one parameter into a function,
882
+ or you can pass in array or object.
851
883
 
852
884
  ```js
853
885
  I.executeScript(([x, y]) => x + y, [x, y]);
@@ -857,10 +889,10 @@ If a function returns a Promise it will wait for its resolution.
857
889
 
858
890
  #### Parameters
859
891
 
860
- - `fn` **([string][8] | [function][20])** function to be executed in browser context.
892
+ - `fn` **([string][9] | [function][21])** function to be executed in browser context.
861
893
  - `arg` **any?** optional argument to pass to the function
862
894
 
863
- Returns **[Promise][21]&lt;any>**
895
+ Returns **[Promise][22]&lt;any>**
864
896
 
865
897
  ### fillField
866
898
 
@@ -880,8 +912,8 @@ I.fillField({css: 'form#login input[name=username]'}, 'John');
880
912
 
881
913
  #### Parameters
882
914
 
883
- - `field` **([string][8] | [object][5])** located by label|name|CSS|XPath|strict locator.
884
- - `value` **([string][8] | [object][5])** text value to fill.
915
+ - `field` **([string][9] | [object][6])** located by label|name|CSS|XPath|strict locator.
916
+ - `value` **([string][9] | [object][6])** text value to fill.
885
917
 
886
918
  Returns **void** automatically synchronized promise through #recorder
887
919
 
@@ -895,7 +927,7 @@ Resets all recorded WS messages.
895
927
 
896
928
  ### focus
897
929
 
898
- Calls [focus][12] on the matching element.
930
+ Calls [focus][13] on the matching element.
899
931
 
900
932
  Examples:
901
933
 
@@ -907,8 +939,8 @@ I.see('#add-to-cart-bnt');
907
939
 
908
940
  #### Parameters
909
941
 
910
- - `locator` **([string][8] | [object][5])** field located by label|name|CSS|XPath|strict locator.
911
- - `options` **any?** Playwright only: [Additional options][22] for available options object as 2nd argument.
942
+ - `locator` **([string][9] | [object][6])** field located by label|name|CSS|XPath|strict locator.
943
+ - `options` **any?** Playwright only: [Additional options][23] for available options object as 2nd argument.
912
944
 
913
945
  Returns **void** automatically synchronized promise through #recorder
914
946
 
@@ -941,8 +973,8 @@ I.forceClick({css: 'nav a.login'});
941
973
 
942
974
  #### Parameters
943
975
 
944
- - `locator` **([string][8] | [object][5])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
945
- - `context` **([string][8]? | [object][5])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
976
+ - `locator` **([string][9] | [object][6])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
977
+ - `context` **([string][9]? | [object][6])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
946
978
 
947
979
  Returns **void** automatically synchronized promise through #recorder
948
980
 
@@ -958,10 +990,10 @@ let hint = await I.grabAttributeFrom('#tooltip', 'title');
958
990
 
959
991
  #### Parameters
960
992
 
961
- - `locator` **([string][8] | [object][5])** element located by CSS|XPath|strict locator.
962
- - `attr` **[string][8]** attribute name.
993
+ - `locator` **([string][9] | [object][6])** element located by CSS|XPath|strict locator.
994
+ - `attr` **[string][9]** attribute name.
963
995
 
964
- Returns **[Promise][21]&lt;[string][8]>** attribute value
996
+ Returns **[Promise][22]&lt;[string][9]>** attribute value
965
997
 
966
998
  ### grabAttributeFromAll
967
999
 
@@ -974,10 +1006,10 @@ let hints = await I.grabAttributeFromAll('.tooltip', 'title');
974
1006
 
975
1007
  #### Parameters
976
1008
 
977
- - `locator` **([string][8] | [object][5])** element located by CSS|XPath|strict locator.
978
- - `attr` **[string][8]** attribute name.
1009
+ - `locator` **([string][9] | [object][6])** element located by CSS|XPath|strict locator.
1010
+ - `attr` **[string][9]** attribute name.
979
1011
 
980
- Returns **[Promise][21]&lt;[Array][9]&lt;[string][8]>>** attribute value
1012
+ Returns **[Promise][22]&lt;[Array][10]&lt;[string][9]>>** attribute value
981
1013
 
982
1014
  ### grabBrowserLogs
983
1015
 
@@ -989,9 +1021,9 @@ const errors = logs.map(l => ({ type: l.type(), text: l.text() })).filter(l => l
989
1021
  console.log(JSON.stringify(errors));
990
1022
  ```
991
1023
 
992
- [Learn more about console messages][23]
1024
+ [Learn more about console messages][24]
993
1025
 
994
- Returns **[Promise][21]&lt;[Array][9]&lt;any>>**
1026
+ Returns **[Promise][22]&lt;[Array][10]&lt;any>>**
995
1027
 
996
1028
  ### grabCheckedElementStatus
997
1029
 
@@ -999,13 +1031,15 @@ Return the checked status of given element.
999
1031
 
1000
1032
  #### Parameters
1001
1033
 
1002
- - `locator` **([string][8] | [object][5])** element located by CSS|XPath|strict locator.
1003
- - `options` **[object][5]?** See [https://playwright.dev/docs/api/class-locator#locator-is-checked][24]
1034
+ - `locator` **([string][9] | [object][6])** element located by CSS|XPath|strict locator.
1035
+ - `options` **[object][6]?** See [https://playwright.dev/docs/api/class-locator#locator-is-checked][25]
1004
1036
 
1005
- Returns **[Promise][21]&lt;[boolean][25]>**
1037
+ Returns **[Promise][22]&lt;[boolean][26]>**
1006
1038
 
1007
1039
  ### grabCookie
1008
1040
 
1041
+ Returns cookie in JSON format. If name not passed returns all cookies for this domain.
1042
+
1009
1043
  Gets a cookie object by name.
1010
1044
  If none provided gets all cookies.
1011
1045
  Resumes test execution, so **should be used inside async function with `await`** operator.
@@ -1017,9 +1051,9 @@ assert(cookie.value, '123456');
1017
1051
 
1018
1052
  #### Parameters
1019
1053
 
1020
- - `name` **[string][8]?** cookie name.
1054
+ - `name` **[string][9]?** cookie name.
1021
1055
 
1022
- Returns **any** attribute valueReturns cookie in JSON format. If name not passed returns all cookies for this domain.
1056
+ Returns **any** attribute value
1023
1057
 
1024
1058
  ### grabCssPropertyFrom
1025
1059
 
@@ -1033,10 +1067,10 @@ const value = await I.grabCssPropertyFrom('h3', 'font-weight');
1033
1067
 
1034
1068
  #### Parameters
1035
1069
 
1036
- - `locator` **([string][8] | [object][5])** element located by CSS|XPath|strict locator.
1037
- - `cssProperty` **[string][8]** CSS property name.
1070
+ - `locator` **([string][9] | [object][6])** element located by CSS|XPath|strict locator.
1071
+ - `cssProperty` **[string][9]** CSS property name.
1038
1072
 
1039
- Returns **[Promise][21]&lt;[string][8]>** CSS value
1073
+ Returns **[Promise][22]&lt;[string][9]>** CSS value
1040
1074
 
1041
1075
  ### grabCssPropertyFromAll
1042
1076
 
@@ -1049,10 +1083,10 @@ const values = await I.grabCssPropertyFromAll('h3', 'font-weight');
1049
1083
 
1050
1084
  #### Parameters
1051
1085
 
1052
- - `locator` **([string][8] | [object][5])** element located by CSS|XPath|strict locator.
1053
- - `cssProperty` **[string][8]** CSS property name.
1086
+ - `locator` **([string][9] | [object][6])** element located by CSS|XPath|strict locator.
1087
+ - `cssProperty` **[string][9]** CSS property name.
1054
1088
 
1055
- Returns **[Promise][21]&lt;[Array][9]&lt;[string][8]>>** CSS value
1089
+ Returns **[Promise][22]&lt;[Array][10]&lt;[string][9]>>** CSS value
1056
1090
 
1057
1091
  ### grabCurrentUrl
1058
1092
 
@@ -1064,7 +1098,7 @@ let url = await I.grabCurrentUrl();
1064
1098
  console.log(`Current URL is [${url}]`);
1065
1099
  ```
1066
1100
 
1067
- Returns **[Promise][21]&lt;[string][8]>** current URL
1101
+ Returns **[Promise][22]&lt;[string][9]>** current URL
1068
1102
 
1069
1103
  ### grabDataFromPerformanceTiming
1070
1104
 
@@ -1097,10 +1131,10 @@ Return the disabled status of given element.
1097
1131
 
1098
1132
  #### Parameters
1099
1133
 
1100
- - `locator` **([string][8] | [object][5])** element located by CSS|XPath|strict locator.
1101
- - `options` **[object][5]?** See [https://playwright.dev/docs/api/class-locator#locator-is-disabled][26]
1134
+ - `locator` **([string][9] | [object][6])** element located by CSS|XPath|strict locator.
1135
+ - `options` **[object][6]?** See [https://playwright.dev/docs/api/class-locator#locator-is-disabled][27]
1102
1136
 
1103
- Returns **[Promise][21]&lt;[boolean][25]>**
1137
+ Returns **[Promise][22]&lt;[boolean][26]>**
1104
1138
 
1105
1139
  ### grabElementBoundingRect
1106
1140
 
@@ -1124,11 +1158,11 @@ const width = await I.grabElementBoundingRect('h3', 'width');
1124
1158
 
1125
1159
  #### Parameters
1126
1160
 
1127
- - `locator` **([string][8] | [object][5])** element located by CSS|XPath|strict locator.
1161
+ - `locator` **([string][9] | [object][6])** element located by CSS|XPath|strict locator.
1128
1162
  - `prop`
1129
- - `elementSize` **[string][8]?** x, y, width or height of the given element.
1163
+ - `elementSize` **[string][9]?** x, y, width or height of the given element.
1130
1164
 
1131
- Returns **([Promise][21]&lt;DOMRect> | [Promise][21]&lt;[number][19]>)** Element bounding rectangle
1165
+ Returns **([Promise][22]&lt;DOMRect> | [Promise][22]&lt;[number][20]>)** Element bounding rectangle
1132
1166
 
1133
1167
  ### grabHTMLFrom
1134
1168
 
@@ -1143,9 +1177,9 @@ let postHTML = await I.grabHTMLFrom('#post');
1143
1177
  #### Parameters
1144
1178
 
1145
1179
  - `locator`
1146
- - `element` **([string][8] | [object][5])** located by CSS|XPath|strict locator.
1180
+ - `element` **([string][9] | [object][6])** located by CSS|XPath|strict locator.
1147
1181
 
1148
- Returns **[Promise][21]&lt;[string][8]>** HTML code for an element
1182
+ Returns **[Promise][22]&lt;[string][9]>** HTML code for an element
1149
1183
 
1150
1184
  ### grabHTMLFromAll
1151
1185
 
@@ -1159,9 +1193,9 @@ let postHTMLs = await I.grabHTMLFromAll('.post');
1159
1193
  #### Parameters
1160
1194
 
1161
1195
  - `locator`
1162
- - `element` **([string][8] | [object][5])** located by CSS|XPath|strict locator.
1196
+ - `element` **([string][9] | [object][6])** located by CSS|XPath|strict locator.
1163
1197
 
1164
- Returns **[Promise][21]&lt;[Array][9]&lt;[string][8]>>** HTML code for an element
1198
+ Returns **[Promise][22]&lt;[Array][10]&lt;[string][9]>>** HTML code for an element
1165
1199
 
1166
1200
  ### grabMetrics
1167
1201
 
@@ -1215,7 +1249,7 @@ const metrics = await I.grabMetrics();
1215
1249
  ]
1216
1250
  ```
1217
1251
 
1218
- Returns **[Promise][21]&lt;[Array][9]&lt;[Object][5]>>**
1252
+ Returns **[Promise][22]&lt;[Array][10]&lt;[Object][6]>>**
1219
1253
 
1220
1254
  ### grabNumberOfOpenTabs
1221
1255
 
@@ -1226,7 +1260,7 @@ Resumes test execution, so **should be used inside async function with `await`**
1226
1260
  let tabs = await I.grabNumberOfOpenTabs();
1227
1261
  ```
1228
1262
 
1229
- Returns **[Promise][21]&lt;[number][19]>** number of open tabs
1263
+ Returns **[Promise][22]&lt;[number][20]>** number of open tabs
1230
1264
 
1231
1265
  ### grabNumberOfVisibleElements
1232
1266
 
@@ -1239,9 +1273,9 @@ let numOfElements = await I.grabNumberOfVisibleElements('p');
1239
1273
 
1240
1274
  #### Parameters
1241
1275
 
1242
- - `locator` **([string][8] | [object][5])** located by CSS|XPath|strict locator.
1276
+ - `locator` **([string][9] | [object][6])** located by CSS|XPath|strict locator.
1243
1277
 
1244
- Returns **[Promise][21]&lt;[number][19]>** number of visible elements
1278
+ Returns **[Promise][22]&lt;[number][20]>** number of visible elements
1245
1279
 
1246
1280
  ### grabPageScrollPosition
1247
1281
 
@@ -1252,7 +1286,7 @@ Resumes test execution, so **should be used inside an async function with `await
1252
1286
  let { x, y } = await I.grabPageScrollPosition();
1253
1287
  ```
1254
1288
 
1255
- Returns **[Promise][21]&lt;PageScrollPosition>** scroll position
1289
+ Returns **[Promise][22]&lt;PageScrollPosition>** scroll position
1256
1290
 
1257
1291
  ### grabPopupText
1258
1292
 
@@ -1262,7 +1296,7 @@ Grab the text within the popup. If no popup is visible then it will return null
1262
1296
  await I.grabPopupText();
1263
1297
  ```
1264
1298
 
1265
- Returns **[Promise][21]&lt;([string][8] | null)>**
1299
+ Returns **[Promise][22]&lt;([string][9] | null)>**
1266
1300
 
1267
1301
  ### grabRecordedNetworkTraffics
1268
1302
 
@@ -1275,7 +1309,7 @@ expect(traffics[0].response.status).to.equal(200);
1275
1309
  expect(traffics[0].response.body).to.contain({ name: 'this was mocked' });
1276
1310
  ```
1277
1311
 
1278
- Returns **[Promise][21]&lt;[Array][9]&lt;any>>**
1312
+ Returns **[Promise][22]&lt;[Array][10]&lt;any>>**
1279
1313
 
1280
1314
  ### grabSource
1281
1315
 
@@ -1286,7 +1320,7 @@ Resumes test execution, so **should be used inside async function with `await`**
1286
1320
  let pageSource = await I.grabSource();
1287
1321
  ```
1288
1322
 
1289
- Returns **[Promise][21]&lt;[string][8]>** source code
1323
+ Returns **[Promise][22]&lt;[string][9]>** source code
1290
1324
 
1291
1325
  ### grabTextFrom
1292
1326
 
@@ -1301,9 +1335,9 @@ If multiple elements found returns first element.
1301
1335
 
1302
1336
  #### Parameters
1303
1337
 
1304
- - `locator` **([string][8] | [object][5])** element located by CSS|XPath|strict locator.
1338
+ - `locator` **([string][9] | [object][6])** element located by CSS|XPath|strict locator.
1305
1339
 
1306
- Returns **[Promise][21]&lt;[string][8]>** attribute value
1340
+ Returns **[Promise][22]&lt;[string][9]>** attribute value
1307
1341
 
1308
1342
  ### grabTextFromAll
1309
1343
 
@@ -1316,9 +1350,9 @@ let pins = await I.grabTextFromAll('#pin li');
1316
1350
 
1317
1351
  #### Parameters
1318
1352
 
1319
- - `locator` **([string][8] | [object][5])** element located by CSS|XPath|strict locator.
1353
+ - `locator` **([string][9] | [object][6])** element located by CSS|XPath|strict locator.
1320
1354
 
1321
- Returns **[Promise][21]&lt;[Array][9]&lt;[string][8]>>** attribute value
1355
+ Returns **[Promise][22]&lt;[Array][10]&lt;[string][9]>>** attribute value
1322
1356
 
1323
1357
  ### grabTitle
1324
1358
 
@@ -1329,7 +1363,7 @@ Resumes test execution, so **should be used inside async with `await`** operator
1329
1363
  let title = await I.grabTitle();
1330
1364
  ```
1331
1365
 
1332
- Returns **[Promise][21]&lt;[string][8]>** title
1366
+ Returns **[Promise][22]&lt;[string][9]>** title
1333
1367
 
1334
1368
  ### grabTrafficUrl
1335
1369
 
@@ -1337,12 +1371,12 @@ Returns full URL of request matching parameter "urlMatch".
1337
1371
 
1338
1372
  #### Parameters
1339
1373
 
1340
- - `urlMatch` **([string][8] | [RegExp][10])** Expected URL of request in network traffic. Can be a string or a regular expression.Examples:```js
1374
+ - `urlMatch` **([string][9] | [RegExp][11])** Expected URL of request in network traffic. Can be a string or a regular expression.Examples:```js
1341
1375
  I.grabTrafficUrl('https://api.example.com/session');
1342
1376
  I.grabTrafficUrl(/session.*start/);
1343
1377
  ```
1344
1378
 
1345
- Returns **[Promise][21]&lt;any>**
1379
+ Returns **[Promise][22]&lt;any>**
1346
1380
 
1347
1381
  ### grabValueFrom
1348
1382
 
@@ -1356,9 +1390,9 @@ let email = await I.grabValueFrom('input[name=email]');
1356
1390
 
1357
1391
  #### Parameters
1358
1392
 
1359
- - `locator` **([string][8] | [object][5])** field located by label|name|CSS|XPath|strict locator.
1393
+ - `locator` **([string][9] | [object][6])** field located by label|name|CSS|XPath|strict locator.
1360
1394
 
1361
- Returns **[Promise][21]&lt;[string][8]>** attribute value
1395
+ Returns **[Promise][22]&lt;[string][9]>** attribute value
1362
1396
 
1363
1397
  ### grabValueFromAll
1364
1398
 
@@ -1371,22 +1405,52 @@ let inputs = await I.grabValueFromAll('//form/input');
1371
1405
 
1372
1406
  #### Parameters
1373
1407
 
1374
- - `locator` **([string][8] | [object][5])** field located by label|name|CSS|XPath|strict locator.
1408
+ - `locator` **([string][9] | [object][6])** field located by label|name|CSS|XPath|strict locator.
1409
+
1410
+ Returns **[Promise][22]&lt;[Array][10]&lt;[string][9]>>** attribute value
1411
+
1412
+ ### grabWebElement
1413
+
1414
+ Grab WebElement for given locator
1415
+ Resumes test execution, so **should be used inside an async function with `await`** operator.
1416
+
1417
+ ```js
1418
+ const webElement = await I.grabWebElement('#button');
1419
+ ```
1420
+
1421
+ #### Parameters
1422
+
1423
+ - `locator` **([string][9] | [object][6])** element located by CSS|XPath|strict locator.
1424
+
1425
+ Returns **[Promise][22]&lt;any>** WebElement of being used Web helper
1426
+
1427
+ ### grabWebElements
1428
+
1429
+ Grab WebElements for given locator
1430
+ Resumes test execution, so **should be used inside an async function with `await`** operator.
1431
+
1432
+ ```js
1433
+ const webElements = await I.grabWebElements('#button');
1434
+ ```
1435
+
1436
+ #### Parameters
1437
+
1438
+ - `locator` **([string][9] | [object][6])** element located by CSS|XPath|strict locator.
1375
1439
 
1376
- Returns **[Promise][21]&lt;[Array][9]&lt;[string][8]>>** attribute value
1440
+ Returns **[Promise][22]&lt;any>** WebElement of being used Web helper
1377
1441
 
1378
1442
  ### grabWebSocketMessages
1379
1443
 
1380
1444
  Grab the recording WS messages
1381
1445
 
1382
- Returns **[Array][9]&lt;any>**
1446
+ Returns **[Array][10]&lt;any>**
1383
1447
 
1384
1448
  ### handleDownloads
1385
1449
 
1386
1450
  Handles a file download. A file name is required to save the file on disk.
1387
1451
  Files are saved to "output" directory.
1388
1452
 
1389
- Should be used with [FileSystem helper][27] to check that file were downloaded correctly.
1453
+ Should be used with [FileSystem helper][28] to check that file were downloaded correctly.
1390
1454
 
1391
1455
  ```js
1392
1456
  I.handleDownloads('downloads/avatar.jpg');
@@ -1397,13 +1461,13 @@ I.waitForFile('avatar.jpg', 5);
1397
1461
 
1398
1462
  #### Parameters
1399
1463
 
1400
- - `fileName` **[string][8]** set filename for downloaded file
1464
+ - `fileName` **[string][9]** set filename for downloaded file
1401
1465
 
1402
- Returns **[Promise][21]&lt;void>**
1466
+ Returns **[Promise][22]&lt;void>**
1403
1467
 
1404
1468
  ### makeApiRequest
1405
1469
 
1406
- Performs [api request][28] using
1470
+ Performs [api request][29] using
1407
1471
  the cookies from the current browser session.
1408
1472
 
1409
1473
  ```js
@@ -1416,26 +1480,26 @@ I.makeApiRequest('PATCH', )
1416
1480
 
1417
1481
  #### Parameters
1418
1482
 
1419
- - `method` **[string][8]** HTTP method
1420
- - `url` **[string][8]** endpoint
1421
- - `options` **[object][5]** request options depending on method used
1483
+ - `method` **[string][9]** HTTP method
1484
+ - `url` **[string][9]** endpoint
1485
+ - `options` **[object][6]** request options depending on method used
1422
1486
 
1423
- Returns **[Promise][21]&lt;[object][5]>** response
1487
+ Returns **[Promise][22]&lt;[object][6]>** response
1424
1488
 
1425
1489
  ### mockRoute
1426
1490
 
1427
- Mocks network request using [`browserContext.route`][29] of Playwright
1491
+ Mocks network request using [`browserContext.route`][30] of Playwright
1428
1492
 
1429
1493
  ```js
1430
1494
  I.mockRoute(/(.png$)|(.jpg$)/, route => route.abort());
1431
1495
  ```
1432
1496
 
1433
- This method allows intercepting and mocking requests & responses. [Learn more about it][30]
1497
+ This method allows intercepting and mocking requests & responses. [Learn more about it][31]
1434
1498
 
1435
1499
  #### Parameters
1436
1500
 
1437
- - `url` **([string][8] | [RegExp][10])?** URL, regex or pattern for to match URL
1438
- - `handler` **[function][20]?** a function to process reques
1501
+ - `url` **([string][9] | [RegExp][11])?** URL, regex or pattern for to match URL
1502
+ - `handler` **[function][21]?** a function to process reques
1439
1503
 
1440
1504
  ### mockTraffic
1441
1505
 
@@ -1468,9 +1532,9 @@ I.moveCursorTo('#submit', 5,5);
1468
1532
 
1469
1533
  #### Parameters
1470
1534
 
1471
- - `locator` **([string][8] | [object][5])** located by CSS|XPath|strict locator.
1472
- - `offsetX` **[number][19]** (optional, `0` by default) X-axis offset.
1473
- - `offsetY` **[number][19]** (optional, `0` by default) Y-axis offset.
1535
+ - `locator` **([string][9] | [object][6])** located by CSS|XPath|strict locator.
1536
+ - `offsetX` **[number][20]** (optional, `0` by default) X-axis offset.
1537
+ - `offsetY` **[number][20]** (optional, `0` by default) Y-axis offset.
1474
1538
 
1475
1539
  Returns **void** automatically synchronized promise through #recorder
1476
1540
 
@@ -1482,7 +1546,7 @@ Open new tab and automatically switched to new tab
1482
1546
  I.openNewTab();
1483
1547
  ```
1484
1548
 
1485
- You can pass in [page options][31] to emulate device on this page
1549
+ You can pass in [page options][32] to emulate device on this page
1486
1550
 
1487
1551
  ```js
1488
1552
  // enable mobile
@@ -1495,9 +1559,11 @@ I.openNewTab({ isMobile: true });
1495
1559
 
1496
1560
  ### pressKey
1497
1561
 
1562
+ _Note:_ Shortcuts like `'Meta'` + `'A'` do not work on macOS ([GoogleChrome/Puppeteer#1313][33]).
1563
+
1498
1564
  Presses a key in the browser (on a focused element).
1499
1565
 
1500
- _Hint:_ For populating text field or textarea, it is recommended to use [`fillField`][32].
1566
+ _Hint:_ For populating text field or textarea, it is recommended to use [`fillField`][34].
1501
1567
 
1502
1568
  ```js
1503
1569
  I.pressKey('Backspace');
@@ -1556,15 +1622,15 @@ Some of the supported key names are:
1556
1622
 
1557
1623
  #### Parameters
1558
1624
 
1559
- - `key` **([string][8] | [Array][9]&lt;[string][8]>)** key or array of keys to press.
1625
+ - `key` **([string][9] | [Array][10]&lt;[string][9]>)** key or array of keys to press.
1560
1626
 
1561
- Returns **void** automatically synchronized promise through #recorder_Note:_ Shortcuts like `'Meta'` + `'A'` do not work on macOS ([GoogleChrome/Puppeteer#1313][33]).
1627
+ Returns **void** automatically synchronized promise through #recorder
1562
1628
 
1563
1629
  ### pressKeyDown
1564
1630
 
1565
1631
  Presses a key in the browser and leaves it in a down state.
1566
1632
 
1567
- To make combinations with modifier key and user operation (e.g. `'Control'` + [`click`][34]).
1633
+ To make combinations with modifier key and user operation (e.g. `'Control'` + [`click`][35]).
1568
1634
 
1569
1635
  ```js
1570
1636
  I.pressKeyDown('Control');
@@ -1574,7 +1640,7 @@ I.pressKeyUp('Control');
1574
1640
 
1575
1641
  #### Parameters
1576
1642
 
1577
- - `key` **[string][8]** name of key to press down.
1643
+ - `key` **[string][9]** name of key to press down.
1578
1644
 
1579
1645
  Returns **void** automatically synchronized promise through #recorder
1580
1646
 
@@ -1582,7 +1648,7 @@ Returns **void** automatically synchronized promise through #recorder
1582
1648
 
1583
1649
  Releases a key in the browser which was previously set to a down state.
1584
1650
 
1585
- To make combinations with modifier key and user operation (e.g. `'Control'` + [`click`][34]).
1651
+ To make combinations with modifier key and user operation (e.g. `'Control'` + [`click`][35]).
1586
1652
 
1587
1653
  ```js
1588
1654
  I.pressKeyDown('Control');
@@ -1592,7 +1658,7 @@ I.pressKeyUp('Control');
1592
1658
 
1593
1659
  #### Parameters
1594
1660
 
1595
- - `key` **[string][8]** name of key to release.
1661
+ - `key` **[string][9]** name of key to release.
1596
1662
 
1597
1663
  Returns **void** automatically synchronized promise through #recorder
1598
1664
 
@@ -1606,24 +1672,50 @@ I.refreshPage();
1606
1672
 
1607
1673
  Returns **void** automatically synchronized promise through #recorder
1608
1674
 
1609
- ### resizeWindow
1675
+ ### replayFromHar
1610
1676
 
1611
- Resize the current window to provided width and height.
1612
- First parameter can be set to `maximize`.
1677
+ Replaying from HAR
1678
+
1679
+ ```js
1680
+ // Replay API requests from HAR.
1681
+ // Either use a matching response from the HAR,
1682
+ // or abort the request if nothing matches.
1683
+ I.replayFromHar('./output/har/something.har', { url: "*/**/api/v1/fruits" });
1684
+ I.amOnPage('https://demo.playwright.dev/api-mocking');
1685
+ I.see('CodeceptJS');
1686
+ ```
1613
1687
 
1614
1688
  #### Parameters
1615
1689
 
1616
- - `width` **[number][19]** width in pixels or `maximize`.
1617
- - `height` **[number][19]** height in pixels.
1690
+ - `harFilePath` **[string][9]** Path to recorded HAR file
1691
+ - `opts` **[object][6]?** [Options for replaying from HAR][36]
1692
+
1693
+ Returns **any** Promise<void>
1694
+
1695
+ ### resizeWindow
1696
+
1697
+ Unlike other drivers Playwright changes the size of a viewport, not the window!
1698
+ Playwright does not control the window of a browser, so it can't adjust its real size.
1699
+ It also can't maximize a window.
1618
1700
 
1619
- Returns **void** automatically synchronized promise through #recorderUnlike other drivers Playwright changes the size of a viewport, not the window!
1620
- Playwright does not control the window of a browser so it can't adjust its real size.
1621
- It also can't maximize a window.Update configuration to change real window size on start:```js
1701
+ Update configuration to change real window size on start:
1702
+
1703
+ ```js
1622
1704
  // inside codecept.conf.js
1623
1705
  // @codeceptjs/configure package must be installed
1624
1706
  { setWindowSize } = require('@codeceptjs/configure');
1625
1707
  ```
1626
1708
 
1709
+ Resize the current window to provided width and height.
1710
+ First parameter can be set to `maximize`.
1711
+
1712
+ #### Parameters
1713
+
1714
+ - `width` **[number][20]** width in pixels or `maximize`.
1715
+ - `height` **[number][20]** height in pixels.
1716
+
1717
+ Returns **void** automatically synchronized promise through #recorder
1718
+
1627
1719
  ### restartBrowser
1628
1720
 
1629
1721
  Restart browser with a new context and a new page
@@ -1639,7 +1731,7 @@ I.restartBrowser({ permissions: ['clipboard-read', 'clipboard-write'] });
1639
1731
 
1640
1732
  #### Parameters
1641
1733
 
1642
- - `contextOptions` **[object][5]?** [Options for browser context][6] when starting new browser
1734
+ - `contextOptions` **[object][6]?** [Options for browser context][7] when starting new browser
1643
1735
 
1644
1736
  ### rightClick
1645
1737
 
@@ -1656,8 +1748,8 @@ I.rightClick('Click me', '.context');
1656
1748
 
1657
1749
  #### Parameters
1658
1750
 
1659
- - `locator` **([string][8] | [object][5])** clickable element located by CSS|XPath|strict locator.
1660
- - `context` **([string][8]? | [object][5])** (optional, `null` by default) element located by CSS|XPath|strict locator.
1751
+ - `locator` **([string][9] | [object][6])** clickable element located by CSS|XPath|strict locator.
1752
+ - `context` **([string][9]? | [object][6])** (optional, `null` by default) element located by CSS|XPath|strict locator.
1661
1753
 
1662
1754
  Returns **void** automatically synchronized promise through #recorder
1663
1755
 
@@ -1672,8 +1764,8 @@ I.saveElementScreenshot(`#submit`,'debug.png');
1672
1764
 
1673
1765
  #### Parameters
1674
1766
 
1675
- - `locator` **([string][8] | [object][5])** element located by CSS|XPath|strict locator.
1676
- - `fileName` **[string][8]** file name to save.
1767
+ - `locator` **([string][9] | [object][6])** element located by CSS|XPath|strict locator.
1768
+ - `fileName` **[string][9]** file name to save.
1677
1769
 
1678
1770
  Returns **void** automatically synchronized promise through #recorder
1679
1771
 
@@ -1690,8 +1782,8 @@ I.saveScreenshot('debug.png', true) //resizes to available scrollHeight and scro
1690
1782
 
1691
1783
  #### Parameters
1692
1784
 
1693
- - `fileName` **[string][8]** file name to save.
1694
- - `fullPage` **[boolean][25]** (optional, `false` by default) flag to enable fullscreen screenshot mode.
1785
+ - `fileName` **[string][9]** file name to save.
1786
+ - `fullPage` **[boolean][26]** (optional, `false` by default) flag to enable fullscreen screenshot mode.
1695
1787
 
1696
1788
  Returns **void** automatically synchronized promise through #recorder
1697
1789
 
@@ -1727,9 +1819,9 @@ I.scrollTo('#submit', 5, 5);
1727
1819
 
1728
1820
  #### Parameters
1729
1821
 
1730
- - `locator` **([string][8] | [object][5])** located by CSS|XPath|strict locator.
1731
- - `offsetX` **[number][19]** (optional, `0` by default) X-axis offset.
1732
- - `offsetY` **[number][19]** (optional, `0` by default) Y-axis offset.
1822
+ - `locator` **([string][9] | [object][6])** located by CSS|XPath|strict locator.
1823
+ - `offsetX` **[number][20]** (optional, `0` by default) X-axis offset.
1824
+ - `offsetY` **[number][20]** (optional, `0` by default) Y-axis offset.
1733
1825
 
1734
1826
  Returns **void** automatically synchronized promise through #recorder
1735
1827
 
@@ -1746,8 +1838,8 @@ I.see('Register', {css: 'form.register'}); // use strict locator
1746
1838
 
1747
1839
  #### Parameters
1748
1840
 
1749
- - `text` **[string][8]** expected on page.
1750
- - `context` **([string][8]? | [object][5])** (optional, `null` by default) element located by CSS|Xpath|strict locator in which to search for text.
1841
+ - `text` **[string][9]** expected on page.
1842
+ - `context` **([string][9]? | [object][6])** (optional, `null` by default) element located by CSS|Xpath|strict locator in which to search for text.
1751
1843
 
1752
1844
  Returns **void** automatically synchronized promise through #recorder
1753
1845
 
@@ -1761,8 +1853,8 @@ I.seeAttributesOnElements('//form', { method: "post"});
1761
1853
 
1762
1854
  #### Parameters
1763
1855
 
1764
- - `locator` **([string][8] | [object][5])** located by CSS|XPath|strict locator.
1765
- - `attributes` **[object][5]** attributes and their values to check.
1856
+ - `locator` **([string][9] | [object][6])** located by CSS|XPath|strict locator.
1857
+ - `attributes` **[object][6]** attributes and their values to check.
1766
1858
 
1767
1859
  Returns **void** automatically synchronized promise through #recorder
1768
1860
 
@@ -1778,7 +1870,7 @@ I.seeCheckboxIsChecked({css: '#signup_form input[type=checkbox]'});
1778
1870
 
1779
1871
  #### Parameters
1780
1872
 
1781
- - `field` **([string][8] | [object][5])** located by label|name|CSS|XPath|strict locator.
1873
+ - `field` **([string][9] | [object][6])** located by label|name|CSS|XPath|strict locator.
1782
1874
 
1783
1875
  Returns **void** automatically synchronized promise through #recorder
1784
1876
 
@@ -1792,7 +1884,7 @@ I.seeCookie('Auth');
1792
1884
 
1793
1885
  #### Parameters
1794
1886
 
1795
- - `name` **[string][8]** cookie name.
1887
+ - `name` **[string][9]** cookie name.
1796
1888
 
1797
1889
  Returns **void** automatically synchronized promise through #recorder
1798
1890
 
@@ -1806,8 +1898,8 @@ I.seeCssPropertiesOnElements('h3', { 'font-weight': "bold"});
1806
1898
 
1807
1899
  #### Parameters
1808
1900
 
1809
- - `locator` **([string][8] | [object][5])** located by CSS|XPath|strict locator.
1810
- - `cssProperties` **[object][5]** object with CSS properties and their values to check.
1901
+ - `locator` **([string][9] | [object][6])** located by CSS|XPath|strict locator.
1902
+ - `cssProperties` **[object][6]** object with CSS properties and their values to check.
1811
1903
 
1812
1904
  Returns **void** automatically synchronized promise through #recorder
1813
1905
 
@@ -1824,7 +1916,7 @@ I.seeCurrentUrlEquals('http://my.site.com/register');
1824
1916
 
1825
1917
  #### Parameters
1826
1918
 
1827
- - `url` **[string][8]** value to check.
1919
+ - `url` **[string][9]** value to check.
1828
1920
 
1829
1921
  Returns **void** automatically synchronized promise through #recorder
1830
1922
 
@@ -1839,7 +1931,7 @@ I.seeElement('#modal');
1839
1931
 
1840
1932
  #### Parameters
1841
1933
 
1842
- - `locator` **([string][8] | [object][5])** located by CSS|XPath|strict locator.
1934
+ - `locator` **([string][9] | [object][6])** located by CSS|XPath|strict locator.
1843
1935
 
1844
1936
  Returns **void** automatically synchronized promise through #recorder
1845
1937
 
@@ -1854,7 +1946,7 @@ I.seeElementInDOM('#modal');
1854
1946
 
1855
1947
  #### Parameters
1856
1948
 
1857
- - `locator` **([string][8] | [object][5])** element located by CSS|XPath|strict locator.
1949
+ - `locator` **([string][9] | [object][6])** element located by CSS|XPath|strict locator.
1858
1950
 
1859
1951
  Returns **void** automatically synchronized promise through #recorder
1860
1952
 
@@ -1868,7 +1960,7 @@ I.seeInCurrentUrl('/register'); // we are on registration page
1868
1960
 
1869
1961
  #### Parameters
1870
1962
 
1871
- - `url` **[string][8]** a fragment to check
1963
+ - `url` **[string][9]** a fragment to check
1872
1964
 
1873
1965
  Returns **void** automatically synchronized promise through #recorder
1874
1966
 
@@ -1886,8 +1978,8 @@ I.seeInField('#searchform input','Search');
1886
1978
 
1887
1979
  #### Parameters
1888
1980
 
1889
- - `field` **([string][8] | [object][5])** located by label|name|CSS|XPath|strict locator.
1890
- - `value` **([string][8] | [object][5])** value to check.
1981
+ - `field` **([string][9] | [object][6])** located by label|name|CSS|XPath|strict locator.
1982
+ - `value` **([string][9] | [object][6])** value to check.
1891
1983
 
1892
1984
  Returns **void** automatically synchronized promise through #recorder
1893
1985
 
@@ -1902,7 +1994,7 @@ I.seeInPopup('Popup text');
1902
1994
 
1903
1995
  #### Parameters
1904
1996
 
1905
- - `text` **[string][8]** value to check.
1997
+ - `text` **[string][9]** value to check.
1906
1998
 
1907
1999
  Returns **void** automatically synchronized promise through #recorder
1908
2000
 
@@ -1916,7 +2008,7 @@ I.seeInSource('<h1>Green eggs &amp; ham</h1>');
1916
2008
 
1917
2009
  #### Parameters
1918
2010
 
1919
- - `text` **[string][8]** value to check.
2011
+ - `text` **[string][9]** value to check.
1920
2012
 
1921
2013
  Returns **void** automatically synchronized promise through #recorder
1922
2014
 
@@ -1930,7 +2022,7 @@ I.seeInTitle('Home Page');
1930
2022
 
1931
2023
  #### Parameters
1932
2024
 
1933
- - `text` **[string][8]** text value to check.
2025
+ - `text` **[string][9]** text value to check.
1934
2026
 
1935
2027
  Returns **void** automatically synchronized promise through #recorder
1936
2028
 
@@ -1945,8 +2037,8 @@ I.seeNumberOfElements('#submitBtn', 1);
1945
2037
 
1946
2038
  #### Parameters
1947
2039
 
1948
- - `locator` **([string][8] | [object][5])** element located by CSS|XPath|strict locator.
1949
- - `num` **[number][19]** number of elements.
2040
+ - `locator` **([string][9] | [object][6])** element located by CSS|XPath|strict locator.
2041
+ - `num` **[number][20]** number of elements.
1950
2042
 
1951
2043
  Returns **void** automatically synchronized promise through #recorder
1952
2044
 
@@ -1961,8 +2053,8 @@ I.seeNumberOfVisibleElements('.buttons', 3);
1961
2053
 
1962
2054
  #### Parameters
1963
2055
 
1964
- - `locator` **([string][8] | [object][5])** element located by CSS|XPath|strict locator.
1965
- - `num` **[number][19]** number of elements.
2056
+ - `locator` **([string][9] | [object][6])** element located by CSS|XPath|strict locator.
2057
+ - `num` **[number][20]** number of elements.
1966
2058
 
1967
2059
  Returns **void** automatically synchronized promise through #recorder
1968
2060
 
@@ -1976,8 +2068,8 @@ I.seeTextEquals('text', 'h1');
1976
2068
 
1977
2069
  #### Parameters
1978
2070
 
1979
- - `text` **[string][8]** element value to check.
1980
- - `context` **([string][8] | [object][5])?** element located by CSS|XPath|strict locator.
2071
+ - `text` **[string][9]** element value to check.
2072
+ - `context` **([string][9] | [object][6])?** element located by CSS|XPath|strict locator.
1981
2073
 
1982
2074
  Returns **void** automatically synchronized promise through #recorder
1983
2075
 
@@ -1991,7 +2083,7 @@ I.seeTitleEquals('Test title.');
1991
2083
 
1992
2084
  #### Parameters
1993
2085
 
1994
- - `text` **[string][8]** value to check.
2086
+ - `text` **[string][9]** value to check.
1995
2087
 
1996
2088
  Returns **void** automatically synchronized promise through #recorder
1997
2089
 
@@ -2028,14 +2120,14 @@ await I.seeTraffic({
2028
2120
 
2029
2121
  #### Parameters
2030
2122
 
2031
- - `opts` **[Object][5]** options when checking the traffic network.
2032
- - `opts.name` **[string][8]** A name of that request. Can be any value. Only relevant to have a more meaningful error message in case of fail.
2033
- - `opts.url` **[string][8]** Expected URL of request in network traffic
2034
- - `opts.parameters` **[Object][5]?** Expected parameters of that request in network traffic
2035
- - `opts.requestPostData` **[Object][5]?** Expected that request contains post data in network traffic
2036
- - `opts.timeout` **[number][19]?** Timeout to wait for request in seconds. Default is 10 seconds.
2123
+ - `opts` **[Object][6]** options when checking the traffic network.
2124
+ - `opts.name` **[string][9]** A name of that request. Can be any value. Only relevant to have a more meaningful error message in case of fail.
2125
+ - `opts.url` **[string][9]** Expected URL of request in network traffic
2126
+ - `opts.parameters` **[Object][6]?** Expected parameters of that request in network traffic
2127
+ - `opts.requestPostData` **[Object][6]?** Expected that request contains post data in network traffic
2128
+ - `opts.timeout` **[number][20]?** Timeout to wait for request in seconds. Default is 10 seconds.
2037
2129
 
2038
- Returns **[Promise][21]&lt;any>**
2130
+ Returns **[Promise][22]&lt;any>**
2039
2131
 
2040
2132
  ### selectOption
2041
2133
 
@@ -2060,8 +2152,8 @@ I.selectOption('Which OS do you use?', ['Android', 'iOS']);
2060
2152
 
2061
2153
  #### Parameters
2062
2154
 
2063
- - `select` **([string][8] | [object][5])** field located by label|name|CSS|XPath|strict locator.
2064
- - `option` **([string][8] | [Array][9]&lt;any>)** visible text or value of option.
2155
+ - `select` **([string][9] | [object][6])** field located by label|name|CSS|XPath|strict locator.
2156
+ - `option` **([string][9] | [Array][10]&lt;any>)** visible text or value of option.
2065
2157
 
2066
2158
  Returns **void** automatically synchronized promise through #recorder
2067
2159
 
@@ -2083,7 +2175,7 @@ I.setCookie([
2083
2175
 
2084
2176
  #### Parameters
2085
2177
 
2086
- - `cookie` **(Cookie | [Array][9]&lt;Cookie>)** a cookie object or array of cookie objects.
2178
+ - `cookie` **(Cookie | [Array][10]&lt;Cookie>)** a cookie object or array of cookie objects.
2087
2179
 
2088
2180
  Returns **void** automatically synchronized promise through #recorder
2089
2181
 
@@ -2099,7 +2191,7 @@ I.setPlaywrightRequestHeaders({
2099
2191
 
2100
2192
  #### Parameters
2101
2193
 
2102
- - `customHeaders` **[object][5]** headers to set
2194
+ - `customHeaders` **[object][6]** headers to set
2103
2195
 
2104
2196
  ### startRecordingTraffic
2105
2197
 
@@ -2134,8 +2226,8 @@ If no handler is passed, all mock requests for the rote are disabled.
2134
2226
 
2135
2227
  #### Parameters
2136
2228
 
2137
- - `url` **([string][8] | [RegExp][10])?** URL, regex or pattern for to match URL
2138
- - `handler` **[function][20]?** a function to process reques
2229
+ - `url` **([string][9] | [RegExp][11])?** URL, regex or pattern for to match URL
2230
+ - `handler` **[function][21]?** a function to process reques
2139
2231
 
2140
2232
  ### stopRecordingTraffic
2141
2233
 
@@ -2164,7 +2256,7 @@ I.switchTo(); // switch back to main page
2164
2256
 
2165
2257
  #### Parameters
2166
2258
 
2167
- - `locator` **([string][8]? | [object][5])** (optional, `null` by default) element located by CSS|XPath|strict locator.
2259
+ - `locator` **([string][9]? | [object][6])** (optional, `null` by default) element located by CSS|XPath|strict locator.
2168
2260
 
2169
2261
  Returns **void** automatically synchronized promise through #recorder
2170
2262
 
@@ -2179,7 +2271,7 @@ I.switchToNextTab(2);
2179
2271
 
2180
2272
  #### Parameters
2181
2273
 
2182
- - `num` **[number][19]**
2274
+ - `num` **[number][20]**
2183
2275
 
2184
2276
  ### switchToPreviousTab
2185
2277
 
@@ -2192,13 +2284,13 @@ I.switchToPreviousTab(2);
2192
2284
 
2193
2285
  #### Parameters
2194
2286
 
2195
- - `num` **[number][19]**
2287
+ - `num` **[number][20]**
2196
2288
 
2197
2289
  ### type
2198
2290
 
2199
2291
  Types out the given text into an active field.
2200
2292
  To slow down typing use a second parameter, to set interval between key presses.
2201
- _Note:_ Should be used when [`fillField`][32] is not an option.
2293
+ _Note:_ Should be used when [`fillField`][34] is not an option.
2202
2294
 
2203
2295
  ```js
2204
2296
  // passing in a string
@@ -2217,13 +2309,24 @@ I.type(secret('123456'));
2217
2309
  #### Parameters
2218
2310
 
2219
2311
  - `keys`
2220
- - `delay` **[number][19]?** (optional) delay in ms between key presses
2221
- - `key` **([string][8] | [Array][9]&lt;[string][8]>)** or array of keys to type.
2312
+ - `delay` **[number][20]?** (optional) delay in ms between key presses
2313
+ - `key` **([string][9] | [Array][10]&lt;[string][9]>)** or array of keys to type.
2222
2314
 
2223
2315
  Returns **void** automatically synchronized promise through #recorder
2224
2316
 
2225
2317
  ### uncheckOption
2226
2318
 
2319
+ [Additional options][37] for uncheck available as 3rd argument.
2320
+
2321
+ Examples:
2322
+
2323
+ ```js
2324
+ // click on element at position
2325
+ I.uncheckOption('Agree', '.signup', { position: { x: 5, y: 5 } })
2326
+ ```
2327
+
2328
+ > ⚠️ To avoid flakiness, option `force: true` is set by default
2329
+
2227
2330
  Unselects a checkbox or radio button.
2228
2331
  Element is located by label or name or CSS or XPath.
2229
2332
 
@@ -2237,14 +2340,11 @@ I.uncheckOption('agree', '//form');
2237
2340
 
2238
2341
  #### Parameters
2239
2342
 
2240
- - `field` **([string][8] | [object][5])** checkbox located by label | name | CSS | XPath | strict locator.
2241
- - `context` **([string][8]? | [object][5])** (optional, `null` by default) element located by CSS | XPath | strict locator.
2343
+ - `field` **([string][9] | [object][6])** checkbox located by label | name | CSS | XPath | strict locator.
2344
+ - `context` **([string][9]? | [object][6])** (optional, `null` by default) element located by CSS | XPath | strict locator.
2242
2345
  - `options`
2243
2346
 
2244
- Returns **void** automatically synchronized promise through #recorder[Additional options][35] for uncheck available as 3rd argument.Examples:```js
2245
- // click on element at position
2246
- I.uncheckOption('Agree', '.signup', { position: { x: 5, y: 5 } })
2247
- ```> ⚠️ To avoid flakiness, option `force: true` is set by default
2347
+ Returns **void** automatically synchronized promise through #recorder
2248
2348
 
2249
2349
  ### usePlaywrightTo
2250
2350
 
@@ -2253,7 +2353,7 @@ Use Playwright API inside a test.
2253
2353
  First argument is a description of an action.
2254
2354
  Second argument is async function that gets this helper as parameter.
2255
2355
 
2256
- { [`page`][36], [`browserContext`][37] [`browser`][38] } objects from Playwright API are available.
2356
+ { [`page`][38], [`browserContext`][39] [`browser`][40] } objects from Playwright API are available.
2257
2357
 
2258
2358
  ```js
2259
2359
  I.usePlaywrightTo('emulate offline mode', async ({ browserContext }) => {
@@ -2263,8 +2363,8 @@ I.usePlaywrightTo('emulate offline mode', async ({ browserContext }) => {
2263
2363
 
2264
2364
  #### Parameters
2265
2365
 
2266
- - `description` **[string][8]** used to show in logs.
2267
- - `fn` **[function][20]** async function that executed with Playwright helper as argumen
2366
+ - `description` **[string][9]** used to show in logs.
2367
+ - `fn` **[function][21]** async function that executed with Playwright helper as arguments
2268
2368
 
2269
2369
  ### wait
2270
2370
 
@@ -2276,7 +2376,7 @@ I.wait(2); // wait 2 secs
2276
2376
 
2277
2377
  #### Parameters
2278
2378
 
2279
- - `sec` **[number][19]** number of second to wait.
2379
+ - `sec` **[number][20]** number of second to wait.
2280
2380
 
2281
2381
  Returns **void** automatically synchronized promise through #recorder
2282
2382
 
@@ -2292,9 +2392,9 @@ I.waitForClickable('.btn.continue', 5); // wait for 5 secs
2292
2392
 
2293
2393
  #### Parameters
2294
2394
 
2295
- - `locator` **([string][8] | [object][5])** element located by CSS|XPath|strict locator.
2395
+ - `locator` **([string][9] | [object][6])** element located by CSS|XPath|strict locator.
2296
2396
  - `waitTimeout`
2297
- - `sec` **[number][19]?** (optional, `1` by default) time in seconds to wait
2397
+ - `sec` **[number][20]?** (optional, `1` by default) time in seconds to wait
2298
2398
 
2299
2399
  Returns **void** automatically synchronized promise through #recorder
2300
2400
 
@@ -2309,8 +2409,8 @@ I.waitForDetached('#popup');
2309
2409
 
2310
2410
  #### Parameters
2311
2411
 
2312
- - `locator` **([string][8] | [object][5])** element located by CSS|XPath|strict locator.
2313
- - `sec` **[number][19]** (optional, `1` by default) time in seconds to wait
2412
+ - `locator` **([string][9] | [object][6])** element located by CSS|XPath|strict locator.
2413
+ - `sec` **[number][20]** (optional, `1` by default) time in seconds to wait
2314
2414
 
2315
2415
  Returns **void** automatically synchronized promise through #recorder
2316
2416
 
@@ -2326,8 +2426,8 @@ I.waitForElement('.btn.continue', 5); // wait for 5 secs
2326
2426
 
2327
2427
  #### Parameters
2328
2428
 
2329
- - `locator` **([string][8] | [object][5])** element located by CSS|XPath|strict locator.
2330
- - `sec` **[number][19]?** (optional, `1` by default) time in seconds to wait
2429
+ - `locator` **([string][9] | [object][6])** element located by CSS|XPath|strict locator.
2430
+ - `sec` **[number][20]?** (optional, `1` by default) time in seconds to wait
2331
2431
 
2332
2432
  Returns **void** automatically synchronized promise through #recorder
2333
2433
 
@@ -2338,8 +2438,8 @@ Element can be located by CSS or XPath.
2338
2438
 
2339
2439
  #### Parameters
2340
2440
 
2341
- - `locator` **([string][8] | [object][5])** element located by CSS|XPath|strict locator.
2342
- - `sec` **[number][19]** (optional) time in seconds to wait, 1 by default.
2441
+ - `locator` **([string][9] | [object][6])** element located by CSS|XPath|strict locator.
2442
+ - `sec` **[number][20]** (optional) time in seconds to wait, 1 by default.
2343
2443
 
2344
2444
  Returns **void** automatically synchronized promise through #recorder
2345
2445
 
@@ -2360,9 +2460,9 @@ I.waitForFunction((count) => window.requests == count, [3], 5) // pass args and
2360
2460
 
2361
2461
  #### Parameters
2362
2462
 
2363
- - `fn` **([string][8] | [function][20])** to be executed in browser context.
2364
- - `argsOrSec` **([Array][9]&lt;any> | [number][19])?** (optional, `1` by default) arguments for function or seconds.
2365
- - `sec` **[number][19]?** (optional, `1` by default) time in seconds to wait
2463
+ - `fn` **([string][9] | [function][21])** to be executed in browser context.
2464
+ - `argsOrSec` **([Array][10]&lt;any> | [number][20])?** (optional, `1` by default) arguments for function or seconds.
2465
+ - `sec` **[number][20]?** (optional, `1` by default) time in seconds to wait
2366
2466
 
2367
2467
  Returns **void** automatically synchronized promise through #recorder
2368
2468
 
@@ -2377,8 +2477,8 @@ I.waitForInvisible('#popup');
2377
2477
 
2378
2478
  #### Parameters
2379
2479
 
2380
- - `locator` **([string][8] | [object][5])** element located by CSS|XPath|strict locator.
2381
- - `sec` **[number][19]** (optional, `1` by default) time in seconds to wait
2480
+ - `locator` **([string][9] | [object][6])** element located by CSS|XPath|strict locator.
2481
+ - `sec` **[number][20]** (optional, `1` by default) time in seconds to wait
2382
2482
 
2383
2483
  Returns **void** automatically synchronized promise through #recorder
2384
2484
 
@@ -2386,7 +2486,7 @@ Returns **void** automatically synchronized promise through #recorder
2386
2486
 
2387
2487
  Waits for navigation to finish. By default, it takes configured `waitForNavigation` option.
2388
2488
 
2389
- See [Playwright's reference][39]
2489
+ See [Playwright's reference][41]
2390
2490
 
2391
2491
  #### Parameters
2392
2492
 
@@ -2403,8 +2503,8 @@ I.waitForRequest(request => request.url() === 'http://example.com' && request.me
2403
2503
 
2404
2504
  #### Parameters
2405
2505
 
2406
- - `urlOrPredicate` **([string][8] | [function][20])**
2407
- - `sec` **[number][19]?** seconds to wait
2506
+ - `urlOrPredicate` **([string][9] | [function][21])**
2507
+ - `sec` **[number][20]?** seconds to wait
2408
2508
 
2409
2509
  ### waitForResponse
2410
2510
 
@@ -2417,8 +2517,8 @@ I.waitForResponse(response => response.url() === 'https://example.com' && respon
2417
2517
 
2418
2518
  #### Parameters
2419
2519
 
2420
- - `urlOrPredicate` **([string][8] | [function][20])**
2421
- - `sec` **[number][19]?** number of seconds to wait
2520
+ - `urlOrPredicate` **([string][9] | [function][21])**
2521
+ - `sec` **[number][20]?** number of seconds to wait
2422
2522
 
2423
2523
  ### waitForText
2424
2524
 
@@ -2433,9 +2533,9 @@ I.waitForText('Thank you, form has been submitted', 5, '#modal');
2433
2533
 
2434
2534
  #### Parameters
2435
2535
 
2436
- - `text` **[string][8]** to wait for.
2437
- - `sec` **[number][19]** (optional, `1` by default) time in seconds to wait
2438
- - `context` **([string][8] | [object][5])?** (optional) element located by CSS|XPath|strict locator.
2536
+ - `text` **[string][9]** to wait for.
2537
+ - `sec` **[number][20]** (optional, `1` by default) time in seconds to wait
2538
+ - `context` **([string][9] | [object][6])?** (optional) element located by CSS|XPath|strict locator.
2439
2539
 
2440
2540
  Returns **void** automatically synchronized promise through #recorder
2441
2541
 
@@ -2443,11 +2543,11 @@ Returns **void** automatically synchronized promise through #recorder
2443
2543
 
2444
2544
  Waits for page navigates to a new URL or reloads. By default, it takes configured `waitForNavigation` option.
2445
2545
 
2446
- See [Playwright's reference][40]
2546
+ See [Playwright's reference][42]
2447
2547
 
2448
2548
  #### Parameters
2449
2549
 
2450
- - `url` **([string][8] | [RegExp][10])** A glob pattern, regex pattern or predicate receiving URL to match while waiting for the navigation. Note that if the parameter is a string without wildcard characters, the method will wait for navigation to URL that is exactly equal to the string.
2550
+ - `url` **([string][9] | [RegExp][11])** A glob pattern, regex pattern or predicate receiving URL to match while waiting for the navigation. Note that if the parameter is a string without wildcard characters, the method will wait for navigation to URL that is exactly equal to the string.
2451
2551
  - `options` **any**
2452
2552
 
2453
2553
  ### waitForValue
@@ -2460,14 +2560,16 @@ I.waitForValue('//input', "GoodValue");
2460
2560
 
2461
2561
  #### Parameters
2462
2562
 
2463
- - `field` **([string][8] | [object][5])** input field.
2464
- - `value` **[string][8]** expected value.
2465
- - `sec` **[number][19]** (optional, `1` by default) time in seconds to wait
2563
+ - `field` **([string][9] | [object][6])** input field.
2564
+ - `value` **[string][9]** expected value.
2565
+ - `sec` **[number][20]** (optional, `1` by default) time in seconds to wait
2466
2566
 
2467
2567
  Returns **void** automatically synchronized promise through #recorder
2468
2568
 
2469
2569
  ### waitForVisible
2470
2570
 
2571
+ This method accepts [React selectors][43].
2572
+
2471
2573
  Waits for an element to become visible on a page (by default waits for 1sec).
2472
2574
  Element can be located by CSS or XPath.
2473
2575
 
@@ -2477,10 +2579,10 @@ I.waitForVisible('#popup');
2477
2579
 
2478
2580
  #### Parameters
2479
2581
 
2480
- - `locator` **([string][8] | [object][5])** element located by CSS|XPath|strict locator.
2481
- - `sec` **[number][19]** (optional, `1` by default) time in seconds to wait
2582
+ - `locator` **([string][9] | [object][6])** element located by CSS|XPath|strict locator.
2583
+ - `sec` **[number][20]** (optional, `1` by default) time in seconds to wait
2482
2584
 
2483
- Returns **void** automatically synchronized promise through #recorderThis method accepts [React selectors][41].
2585
+ Returns **void** automatically synchronized promise through #recorder
2484
2586
 
2485
2587
  ### waitInUrl
2486
2588
 
@@ -2492,8 +2594,8 @@ I.waitInUrl('/info', 2);
2492
2594
 
2493
2595
  #### Parameters
2494
2596
 
2495
- - `urlPart` **[string][8]** value to check.
2496
- - `sec` **[number][19]** (optional, `1` by default) time in seconds to wait
2597
+ - `urlPart` **[string][9]** value to check.
2598
+ - `sec` **[number][20]** (optional, `1` by default) time in seconds to wait
2497
2599
 
2498
2600
  Returns **void** automatically synchronized promise through #recorder
2499
2601
 
@@ -2507,9 +2609,9 @@ I.waitNumberOfVisibleElements('a', 3);
2507
2609
 
2508
2610
  #### Parameters
2509
2611
 
2510
- - `locator` **([string][8] | [object][5])** element located by CSS|XPath|strict locator.
2511
- - `num` **[number][19]** number of elements.
2512
- - `sec` **[number][19]** (optional, `1` by default) time in seconds to wait
2612
+ - `locator` **([string][9] | [object][6])** element located by CSS|XPath|strict locator.
2613
+ - `num` **[number][20]** number of elements.
2614
+ - `sec` **[number][20]** (optional, `1` by default) time in seconds to wait
2513
2615
 
2514
2616
  Returns **void** automatically synchronized promise through #recorder
2515
2617
 
@@ -2524,8 +2626,8 @@ I.waitToHide('#popup');
2524
2626
 
2525
2627
  #### Parameters
2526
2628
 
2527
- - `locator` **([string][8] | [object][5])** element located by CSS|XPath|strict locator.
2528
- - `sec` **[number][19]** (optional, `1` by default) time in seconds to wait
2629
+ - `locator` **([string][9] | [object][6])** element located by CSS|XPath|strict locator.
2630
+ - `sec` **[number][20]** (optional, `1` by default) time in seconds to wait
2529
2631
 
2530
2632
  Returns **void** automatically synchronized promise through #recorder
2531
2633
 
@@ -2540,8 +2642,8 @@ I.waitUrlEquals('http://127.0.0.1:8000/info');
2540
2642
 
2541
2643
  #### Parameters
2542
2644
 
2543
- - `urlPart` **[string][8]** value to check.
2544
- - `sec` **[number][19]** (optional, `1` by default) time in seconds to wait
2645
+ - `urlPart` **[string][9]** value to check.
2646
+ - `sec` **[number][20]** (optional, `1` by default) time in seconds to wait
2545
2647
 
2546
2648
  Returns **void** automatically synchronized promise through #recorder
2547
2649
 
@@ -2549,90 +2651,94 @@ Returns **void** automatically synchronized promise through #recorder
2549
2651
 
2550
2652
  [2]: https://playwright.dev/docs/next/api/class-browser#browser-new-context
2551
2653
 
2552
- [3]: https://playwright.dev/docs/api/class-browsertype#browsertypeconnectparams
2654
+ [3]: https://playwright.dev/docs/api/class-browser#browser-new-context-option-record-har
2553
2655
 
2554
- [4]: https://github.com/microsoft/playwright/blob/v0.11.0/docs/api.md#working-with-chrome-extensions
2656
+ [4]: https://playwright.dev/docs/api/class-browsertype#browsertypeconnectparams
2555
2657
 
2556
- [5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object
2658
+ [5]: https://github.com/microsoft/playwright/blob/v0.11.0/docs/api.md#working-with-chrome-extensions
2557
2659
 
2558
- [6]: https://playwright.dev/docs/api/class-browser#browser-new-context
2660
+ [6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object
2559
2661
 
2560
- [7]: http://jster.net/category/windows-modals-popups
2662
+ [7]: https://playwright.dev/docs/api/class-browser#browser-new-context
2561
2663
 
2562
- [8]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
2664
+ [8]: http://jster.net/category/windows-modals-popups
2563
2665
 
2564
- [9]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array
2666
+ [9]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
2565
2667
 
2566
- [10]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RegExp
2668
+ [10]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array
2567
2669
 
2568
- [11]: https://www.example.com**
2670
+ [11]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/RegExp
2569
2671
 
2570
- [12]: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus
2672
+ [12]: https://www.example.com**
2571
2673
 
2572
- [13]: https://playwright.dev/docs/api/class-locator#locator-blur
2674
+ [13]: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus
2573
2675
 
2574
- [14]: https://playwright.dev/docs/api/class-elementhandle#element-handle-check
2676
+ [14]: https://playwright.dev/docs/api/class-locator#locator-blur
2575
2677
 
2576
- [15]: https://playwright.dev/docs/actionability
2678
+ [15]: https://playwright.dev/docs/api/class-elementhandle#element-handle-check
2577
2679
 
2578
- [16]: https://playwright.dev/docs/api/class-locator#locator-clear
2680
+ [16]: https://playwright.dev/docs/actionability
2579
2681
 
2580
- [17]: https://playwright.dev/docs/api/class-page#page-click
2682
+ [17]: https://playwright.dev/docs/api/class-locator#locator-clear
2581
2683
 
2582
- [18]: https://playwright.dev/docs/api/class-page#page-drag-and-drop
2684
+ [18]: https://playwright.dev/docs/api/class-page#page-click
2583
2685
 
2584
- [19]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
2686
+ [19]: https://playwright.dev/docs/api/class-page#page-drag-and-drop
2585
2687
 
2586
- [20]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function
2688
+ [20]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
2587
2689
 
2588
- [21]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise
2690
+ [21]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function
2589
2691
 
2590
- [22]: https://playwright.dev/docs/api/class-locator#locator-focus
2692
+ [22]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise
2591
2693
 
2592
- [23]: https://playwright.dev/docs/api/class-consolemessage
2694
+ [23]: https://playwright.dev/docs/api/class-locator#locator-focus
2593
2695
 
2594
- [24]: https://playwright.dev/docs/api/class-locator#locator-is-checked
2696
+ [24]: https://playwright.dev/docs/api/class-consolemessage
2595
2697
 
2596
- [25]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean
2698
+ [25]: https://playwright.dev/docs/api/class-locator#locator-is-checked
2597
2699
 
2598
- [26]: https://playwright.dev/docs/api/class-locator#locator-is-disabled
2700
+ [26]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean
2599
2701
 
2600
- [27]: https://codecept.io/helpers/FileSystem
2702
+ [27]: https://playwright.dev/docs/api/class-locator#locator-is-disabled
2601
2703
 
2602
- [28]: https://playwright.dev/docs/api/class-apirequestcontext#api-request-context-get
2704
+ [28]: https://codecept.io/helpers/FileSystem
2603
2705
 
2604
- [29]: https://playwright.dev/docs/api/class-browsercontext#browser-context-route
2706
+ [29]: https://playwright.dev/docs/api/class-apirequestcontext#api-request-context-get
2605
2707
 
2606
- [30]: https://playwright.dev/docs/network#handle-requests
2708
+ [30]: https://playwright.dev/docs/api/class-browsercontext#browser-context-route
2607
2709
 
2608
- [31]: https://github.com/microsoft/playwright/blob/main/docs/api.md#browsernewpageoptions
2710
+ [31]: https://playwright.dev/docs/network#handle-requests
2609
2711
 
2610
- [32]: #fillfield
2712
+ [32]: https://github.com/microsoft/playwright/blob/main/docs/api.md#browsernewpageoptions
2611
2713
 
2612
2714
  [33]: https://github.com/GoogleChrome/puppeteer/issues/1313
2613
2715
 
2614
- [34]: #click
2716
+ [34]: #fillfield
2717
+
2718
+ [35]: #click
2719
+
2720
+ [36]: https://playwright.dev/docs/api/class-page#page-route-from-har
2615
2721
 
2616
- [35]: https://playwright.dev/docs/api/class-elementhandle#element-handle-uncheck
2722
+ [37]: https://playwright.dev/docs/api/class-elementhandle#element-handle-uncheck
2617
2723
 
2618
- [36]: https://github.com/microsoft/playwright/blob/main/docs/src/api/class-page.md
2724
+ [38]: https://github.com/microsoft/playwright/blob/main/docs/src/api/class-page.md
2619
2725
 
2620
- [37]: https://github.com/microsoft/playwright/blob/main/docs/src/api/class-browsercontext.md
2726
+ [39]: https://github.com/microsoft/playwright/blob/main/docs/src/api/class-browsercontext.md
2621
2727
 
2622
- [38]: https://github.com/microsoft/playwright/blob/main/docs/src/api/class-browser.md
2728
+ [40]: https://github.com/microsoft/playwright/blob/main/docs/src/api/class-browser.md
2623
2729
 
2624
- [39]: https://playwright.dev/docs/api/class-page?_highlight=waitfornavi#pagewaitfornavigationoptions
2730
+ [41]: https://playwright.dev/docs/api/class-page?_highlight=waitfornavi#pagewaitfornavigationoptions
2625
2731
 
2626
- [40]: https://playwright.dev/docs/api/class-page#page-wait-for-url
2732
+ [42]: https://playwright.dev/docs/api/class-page#page-wait-for-url
2627
2733
 
2628
- [41]: https://codecept.io/react
2734
+ [43]: https://codecept.io/react
2629
2735
 
2630
- [42]: https://playwright.dev/docs/api/class-browsercontext
2736
+ [44]: https://playwright.dev/docs/api/class-browsercontext
2631
2737
 
2632
- [43]: https://playwright.dev/docs/api/class-page#page-set-default-timeout
2738
+ [45]: https://playwright.dev/docs/api/class-page#page-set-default-timeout
2633
2739
 
2634
- [44]: https://playwright.dev/docs/trace-viewer
2740
+ [46]: https://playwright.dev/docs/trace-viewer
2635
2741
 
2636
- [45]: https://playwright.dev/docs/browsers/#google-chrome--microsoft-edge
2742
+ [47]: https://playwright.dev/docs/browsers/#google-chrome--microsoft-edge
2637
2743
 
2638
- [46]: https://playwright.dev/docs/api/class-consolemessage#console-message-type
2744
+ [48]: https://playwright.dev/docs/api/class-consolemessage#console-message-type