codeceptjs 3.0.6 → 3.1.2

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 (62) hide show
  1. package/CHANGELOG.md +92 -8
  2. package/README.md +9 -1
  3. package/bin/codecept.js +28 -17
  4. package/docs/build/Appium.js +69 -0
  5. package/docs/build/GraphQL.js +9 -10
  6. package/docs/build/Playwright.js +271 -63
  7. package/docs/build/Protractor.js +2 -0
  8. package/docs/build/Puppeteer.js +56 -18
  9. package/docs/build/REST.js +16 -3
  10. package/docs/build/WebDriver.js +82 -16
  11. package/docs/changelog.md +93 -9
  12. package/docs/configuration.md +15 -2
  13. package/docs/email.md +8 -8
  14. package/docs/examples.md +3 -3
  15. package/docs/helpers/Appium.md +66 -68
  16. package/docs/helpers/MockRequest.md +3 -3
  17. package/docs/helpers/Playwright.md +269 -203
  18. package/docs/helpers/Puppeteer.md +17 -1
  19. package/docs/helpers/REST.md +23 -9
  20. package/docs/helpers/WebDriver.md +3 -2
  21. package/docs/locators.md +27 -0
  22. package/docs/mobile.md +2 -1
  23. package/docs/nightmare.md +0 -5
  24. package/docs/parallel.md +14 -7
  25. package/docs/playwright.md +178 -11
  26. package/docs/plugins.md +61 -69
  27. package/docs/react.md +1 -1
  28. package/docs/reports.md +5 -4
  29. package/lib/actor.js +1 -2
  30. package/lib/codecept.js +13 -2
  31. package/lib/command/definitions.js +8 -1
  32. package/lib/command/interactive.js +4 -2
  33. package/lib/command/run-multiple/collection.js +4 -0
  34. package/lib/container.js +3 -3
  35. package/lib/helper/Appium.js +41 -0
  36. package/lib/helper/GraphQL.js +9 -10
  37. package/lib/helper/Playwright.js +218 -70
  38. package/lib/helper/Protractor.js +2 -0
  39. package/lib/helper/Puppeteer.js +56 -18
  40. package/lib/helper/REST.js +12 -0
  41. package/lib/helper/WebDriver.js +82 -16
  42. package/lib/helper/errors/ConnectionRefused.js +1 -1
  43. package/lib/helper/extras/Popup.js +1 -1
  44. package/lib/helper/extras/React.js +44 -32
  45. package/lib/interfaces/gherkin.js +1 -0
  46. package/lib/listener/exit.js +2 -4
  47. package/lib/listener/helpers.js +3 -4
  48. package/lib/locator.js +7 -0
  49. package/lib/mochaFactory.js +11 -6
  50. package/lib/output.js +5 -2
  51. package/lib/plugin/allure.js +7 -18
  52. package/lib/plugin/commentStep.js +1 -1
  53. package/lib/plugin/{puppeteerCoverage.js → coverage.js} +10 -22
  54. package/lib/plugin/customLocator.js +2 -2
  55. package/lib/plugin/screenshotOnFail.js +5 -0
  56. package/lib/plugin/subtitles.js +88 -0
  57. package/lib/plugin/tryTo.js +1 -1
  58. package/lib/step.js +4 -2
  59. package/lib/ui.js +6 -2
  60. package/package.json +5 -4
  61. package/typings/index.d.ts +44 -21
  62. package/typings/types.d.ts +137 -16
@@ -28,17 +28,19 @@ Requires `playwright` package version ^1 to be installed:
28
28
  This helper should be configured in codecept.json or codecept.conf.js
29
29
 
30
30
  - `url`: base url of website to be tested
31
- - `browser`: a browser to test on, either: `chromium`, `firefox`, `webkit`. Default: chromium.
31
+ - `browser`: a browser to test on, either: `chromium`, `firefox`, `webkit`, `electron`. Default: chromium.
32
32
  - `show`: - show browser window.
33
33
  - `restart`: - restart browser between tests.
34
34
  - `disableScreenshots`: - don't save screenshot on failure.
35
35
  - `emulate`: launch browser in device emulation mode.
36
+ - `video`: enables video recording for failed tests; videos are saved into `output/videos` folder
37
+ - `trace`: record [tracing information][2] with screenshots and snapshots.
36
38
  - `fullPageScreenshots` - make full page screenshots on failure.
37
39
  - `uniqueScreenshotNames`: - option to prevent screenshot override if you have scenarios with the same name in different suites.
38
40
  - `keepBrowserState`: - keep browser state between tests when `restart` is set to false.
39
41
  - `keepCookies`: - keep cookies between tests when `restart` is set to false.
40
42
  - `waitForAction`: (optional) how long to wait after click, doubleClick or PressKey actions in ms. Default: 100.
41
- - `waitForNavigation`: . When to consider navigation succeeded. Possible options: `load`, `domcontentloaded`, `networkidle`. Choose one of those options is possible. See [Playwright API][2].
43
+ - `waitForNavigation`: . When to consider navigation succeeded. Possible options: `load`, `domcontentloaded`, `networkidle`. Choose one of those options is possible. See [Playwright API][3].
42
44
  - `pressKeyDelay`: . Delay between key presses in ms. Used when calling Playwrights page.type(...) in fillField/appendField
43
45
  - `getPageTimeout` config option to set maximum navigation time in milliseconds.
44
46
  - `waitForTimeout`: (optional) default wait* timeout in ms. Default: 1000.
@@ -47,6 +49,23 @@ This helper should be configured in codecept.json or codecept.conf.js
47
49
  - `userAgent`: (optional) user-agent string.
48
50
  - `manualStart`: - do not start browser before a test, start it manually inside a helper with `this.helpers["Playwright"]._startBrowser()`.
49
51
  - `chromium`: (optional) pass additional chromium options
52
+ - `electron`: (optional) pass additional electron options
53
+
54
+ #### Video Recording Customization
55
+
56
+ By default, video is saved to `output/video` dir. You can customize this path by passing `dir` option to `recordVideo` option.
57
+
58
+ - `video`: enables video recording for failed tests; videos are saved into `output/videos` folder
59
+ - `keepVideoForPassedTests`: - save videos for passed tests
60
+ - `recordVideo`: [additional options for videos customization][4]
61
+
62
+ #### Trace Recording Customization
63
+
64
+ Trace recording provides a complete information on test execution and includes DOM snapshots, screenshots, and network requests logged during run.
65
+ Traces will be saved to `output/trace`
66
+
67
+ - `trace`: enables trace recording for failed tests; trace are saved into `output/trace` folder
68
+ - `keepTraceForPassedTests`: - save trace for passed tests
50
69
 
51
70
  #### Example #1: Wait for 0 network connections.
52
71
 
@@ -91,7 +110,7 @@ This helper should be configured in codecept.json or codecept.conf.js
91
110
  }
92
111
  ```
93
112
 
94
- #### Example #4: Connect to remote browser by specifying [websocket endpoint][3]
113
+ #### Example #4: Connect to remote browser by specifying [websocket endpoint][5]
95
114
 
96
115
  ```js
97
116
  {
@@ -99,7 +118,7 @@ This helper should be configured in codecept.json or codecept.conf.js
99
118
  Playwright: {
100
119
  url: "http://localhost",
101
120
  chromium: {
102
- browserWSEndpoint: { wsEndpoint: 'ws://localhost:9222/devtools/browser/c5aa6160-b5bc-4d53-bb49-6ecb36cd2e0a' }
121
+ browserWSEndpoint: 'ws://localhost:9222/devtools/browser/c5aa6160-b5bc-4d53-bb49-6ecb36cd2e0a'
103
122
  }
104
123
  }
105
124
  }
@@ -108,7 +127,7 @@ This helper should be configured in codecept.json or codecept.conf.js
108
127
 
109
128
  #### Example #5: Testing with Chromium extensions
110
129
 
111
- [official docs][4]
130
+ [official docs][6]
112
131
 
113
132
  ```js
114
133
  {
@@ -175,6 +194,14 @@ Add the 'dialog' event listener to a page
175
194
 
176
195
  - `page`
177
196
 
197
+ ### _contextLocator
198
+
199
+ Grab Locator if called within Context
200
+
201
+ #### Parameters
202
+
203
+ - `locator` **any**
204
+
178
205
  ### _getPageUrl
179
206
 
180
207
  Gets page URL including hash.
@@ -236,13 +263,13 @@ Set current page
236
263
 
237
264
  #### Parameters
238
265
 
239
- - `page` **[object][5]** page to set
266
+ - `page` **[object][7]** page to set
240
267
 
241
268
  ### acceptPopup
242
269
 
243
270
  Accepts the active JavaScript native popup window, as created by window.alert|window.confirm|window.prompt.
244
271
  Don't confuse popups with modal windows, as created by [various
245
- libraries][6].
272
+ libraries][8].
246
273
 
247
274
  ### amAcceptingPopups
248
275
 
@@ -279,7 +306,7 @@ I.amOnPage('/login'); // opens a login page
279
306
 
280
307
  #### Parameters
281
308
 
282
- - `url` **[string][7]** url path or global url.
309
+ - `url` **[string][9]** url path or global url.
283
310
 
284
311
  ### appendField
285
312
 
@@ -292,8 +319,8 @@ I.appendField('#myTextField', 'appended');
292
319
 
293
320
  #### Parameters
294
321
 
295
- - `field` **([string][7] | [object][5])** located by label|name|CSS|XPath|strict locator
296
- - `value` **[string][7]** text value to append.
322
+ - `field` **([string][9] | [object][7])** located by label|name|CSS|XPath|strict locator
323
+ - `value` **[string][9]** text value to append.
297
324
 
298
325
  ### attachFile
299
326
 
@@ -308,8 +335,8 @@ I.attachFile('form input[name=avatar]', 'data/avatar.jpg');
308
335
 
309
336
  #### Parameters
310
337
 
311
- - `locator` **([string][7] | [object][5])** field located by label|name|CSS|XPath|strict locator.
312
- - `pathToFile` **[string][7]** local file path relative to codecept.json config file.
338
+ - `locator` **([string][9] | [object][7])** field located by label|name|CSS|XPath|strict locator.
339
+ - `pathToFile` **[string][9]** local file path relative to codecept.json config file.
313
340
 
314
341
  ### cancelPopup
315
342
 
@@ -330,8 +357,8 @@ I.checkOption('agree', '//form');
330
357
 
331
358
  #### Parameters
332
359
 
333
- - `field` **([string][7] | [object][5])** checkbox located by label | name | CSS | XPath | strict locator.
334
- - `context` **([string][7]? | [object][5])** (optional, `null` by default) element located by CSS | XPath | strict locator.
360
+ - `field` **([string][9] | [object][7])** checkbox located by label | name | CSS | XPath | strict locator.
361
+ - `context` **([string][9]? | [object][7])** (optional, `null` by default) element located by CSS | XPath | strict locator.
335
362
 
336
363
  ### clearCookie
337
364
 
@@ -345,7 +372,7 @@ I.clearCookie('test');
345
372
 
346
373
  #### Parameters
347
374
 
348
- - `cookie` **[string][7]?** (optional, `null` by default) cookie name
375
+ - `cookie` **[string][9]?** (optional, `null` by default) cookie name
349
376
 
350
377
  ### clearField
351
378
 
@@ -360,7 +387,7 @@ I.clearField('#email');
360
387
  #### Parameters
361
388
 
362
389
  - `field`
363
- - `editable` **([string][7] | [object][5])** field located by label|name|CSS|XPath|strict locator.
390
+ - `editable` **([string][9] | [object][7])** field located by label|name|CSS|XPath|strict locator.
364
391
 
365
392
  ### click
366
393
 
@@ -388,8 +415,8 @@ I.click({css: 'nav a.login'});
388
415
 
389
416
  #### Parameters
390
417
 
391
- - `locator` **([string][7] | [object][5])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
392
- - `context` **([string][7]? | [object][5])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
418
+ - `locator` **([string][9] | [object][7])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
419
+ - `context` **([string][9]? | [object][7])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
393
420
 
394
421
  ### clickLink
395
422
 
@@ -428,8 +455,8 @@ I.dontSee('Login', '.nav'); // no login inside .nav element
428
455
 
429
456
  #### Parameters
430
457
 
431
- - `text` **[string][7]** which is not present.
432
- - `context` **([string][7] | [object][5])?** (optional) element located by CSS|XPath|strict locator in which to perfrom search.
458
+ - `text` **[string][9]** which is not present.
459
+ - `context` **([string][9] | [object][7])?** (optional) element located by CSS|XPath|strict locator in which to perfrom search.
433
460
 
434
461
  ### dontSeeCheckboxIsChecked
435
462
 
@@ -443,7 +470,7 @@ I.dontSeeCheckboxIsChecked('agree'); // located by name
443
470
 
444
471
  #### Parameters
445
472
 
446
- - `field` **([string][7] | [object][5])** located by label|name|CSS|XPath|strict locator.
473
+ - `field` **([string][9] | [object][7])** located by label|name|CSS|XPath|strict locator.
447
474
 
448
475
  ### dontSeeCookie
449
476
 
@@ -455,7 +482,7 @@ I.dontSeeCookie('auth'); // no auth cookie
455
482
 
456
483
  #### Parameters
457
484
 
458
- - `name` **[string][7]** cookie name.
485
+ - `name` **[string][9]** cookie name.
459
486
 
460
487
  ### dontSeeCurrentUrlEquals
461
488
 
@@ -469,7 +496,7 @@ I.dontSeeCurrentUrlEquals('http://mysite.com/login'); // absolute urls are also
469
496
 
470
497
  #### Parameters
471
498
 
472
- - `url` **[string][7]** value to check.
499
+ - `url` **[string][9]** value to check.
473
500
 
474
501
  ### dontSeeElement
475
502
 
@@ -481,7 +508,7 @@ I.dontSeeElement('.modal'); // modal is not shown
481
508
 
482
509
  #### Parameters
483
510
 
484
- - `locator` **([string][7] | [object][5])** located by CSS|XPath|Strict locator.
511
+ - `locator` **([string][9] | [object][7])** located by CSS|XPath|Strict locator.
485
512
 
486
513
  ### dontSeeElementInDOM
487
514
 
@@ -493,7 +520,7 @@ I.dontSeeElementInDOM('.nav'); // checks that element is not on page visible or
493
520
 
494
521
  #### Parameters
495
522
 
496
- - `locator` **([string][7] | [object][5])** located by CSS|XPath|Strict locator.
523
+ - `locator` **([string][9] | [object][7])** located by CSS|XPath|Strict locator.
497
524
 
498
525
  ### dontSeeInCurrentUrl
499
526
 
@@ -501,7 +528,7 @@ Checks that current url does not contain a provided fragment.
501
528
 
502
529
  #### Parameters
503
530
 
504
- - `url` **[string][7]** value to check.
531
+ - `url` **[string][9]** value to check.
505
532
 
506
533
  ### dontSeeInField
507
534
 
@@ -515,8 +542,8 @@ I.dontSeeInField({ css: 'form input.email' }, 'user@user.com'); // field by CSS
515
542
 
516
543
  #### Parameters
517
544
 
518
- - `field` **([string][7] | [object][5])** located by label|name|CSS|XPath|strict locator.
519
- - `value` **[string][7]** value to check.
545
+ - `field` **([string][9] | [object][7])** located by label|name|CSS|XPath|strict locator.
546
+ - `value` **[string][9]** value to check.
520
547
 
521
548
  ### dontSeeInSource
522
549
 
@@ -529,7 +556,7 @@ I.dontSeeInSource('<!--'); // no comments in source
529
556
  #### Parameters
530
557
 
531
558
  - `text`
532
- - `value` **[string][7]** to check.
559
+ - `value` **[string][9]** to check.
533
560
 
534
561
  ### dontSeeInTitle
535
562
 
@@ -541,7 +568,7 @@ I.dontSeeInTitle('Error');
541
568
 
542
569
  #### Parameters
543
570
 
544
- - `text` **[string][7]** value to check.
571
+ - `text` **[string][9]** value to check.
545
572
 
546
573
  ### doubleClick
547
574
 
@@ -557,8 +584,8 @@ I.doubleClick('.btn.edit');
557
584
 
558
585
  #### Parameters
559
586
 
560
- - `locator` **([string][7] | [object][5])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
561
- - `context` **([string][7]? | [object][5])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
587
+ - `locator` **([string][9] | [object][7])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
588
+ - `context` **([string][9]? | [object][7])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
562
589
 
563
590
  ### dragAndDrop
564
591
 
@@ -570,8 +597,8 @@ I.dragAndDrop('#dragHandle', '#container');
570
597
 
571
598
  #### Parameters
572
599
 
573
- - `srcElement` **([string][7] | [object][5])** located by CSS|XPath|strict locator.
574
- - `destElement` **([string][7] | [object][5])** located by CSS|XPath|strict locator.
600
+ - `srcElement` **([string][9] | [object][7])** located by CSS|XPath|strict locator.
601
+ - `destElement` **([string][9] | [object][7])** located by CSS|XPath|strict locator.
575
602
 
576
603
  ### dragSlider
577
604
 
@@ -585,8 +612,8 @@ I.dragSlider('#slider', -70);
585
612
 
586
613
  #### Parameters
587
614
 
588
- - `locator` **([string][7] | [object][5])** located by label|name|CSS|XPath|strict locator.
589
- - `offsetX` **[number][8]** position to drag.
615
+ - `locator` **([string][9] | [object][7])** located by label|name|CSS|XPath|strict locator.
616
+ - `offsetX` **[number][10]** position to drag.
590
617
 
591
618
  ### executeScript
592
619
 
@@ -613,10 +640,10 @@ If a function returns a Promise it will wait for its resolution.
613
640
 
614
641
  #### Parameters
615
642
 
616
- - `fn` **([string][7] | [function][9])** function to be executed in browser context.
643
+ - `fn` **([string][9] | [function][11])** function to be executed in browser context.
617
644
  - `arg` **any?** optional argument to pass to the function
618
645
 
619
- Returns **[Promise][10]&lt;any>**
646
+ Returns **[Promise][12]&lt;any>**
620
647
 
621
648
  ### fillField
622
649
 
@@ -636,8 +663,8 @@ I.fillField({css: 'form#login input[name=username]'}, 'John');
636
663
 
637
664
  #### Parameters
638
665
 
639
- - `field` **([string][7] | [object][5])** located by label|name|CSS|XPath|strict locator.
640
- - `value` **([string][7] | [object][5])** text value to fill.
666
+ - `field` **([string][9] | [object][7])** located by label|name|CSS|XPath|strict locator.
667
+ - `value` **([string][9] | [object][7])** text value to fill.
641
668
 
642
669
  ### forceClick
643
670
 
@@ -668,8 +695,8 @@ I.forceClick({css: 'nav a.login'});
668
695
 
669
696
  #### Parameters
670
697
 
671
- - `locator` **([string][7] | [object][5])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
672
- - `context` **([string][7]? | [object][5])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
698
+ - `locator` **([string][9] | [object][7])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
699
+ - `context` **([string][9]? | [object][7])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
673
700
 
674
701
  ### grabAttributeFrom
675
702
 
@@ -683,10 +710,10 @@ let hint = await I.grabAttributeFrom('#tooltip', 'title');
683
710
 
684
711
  #### Parameters
685
712
 
686
- - `locator` **([string][7] | [object][5])** element located by CSS|XPath|strict locator.
687
- - `attr` **[string][7]** attribute name.
713
+ - `locator` **([string][9] | [object][7])** element located by CSS|XPath|strict locator.
714
+ - `attr` **[string][9]** attribute name.
688
715
 
689
- Returns **[Promise][10]&lt;[string][7]>** attribute value
716
+ Returns **[Promise][12]&lt;[string][9]>** attribute value
690
717
 
691
718
  ### grabAttributeFromAll
692
719
 
@@ -699,10 +726,10 @@ let hints = await I.grabAttributeFromAll('.tooltip', 'title');
699
726
 
700
727
  #### Parameters
701
728
 
702
- - `locator` **([string][7] | [object][5])** element located by CSS|XPath|strict locator.
703
- - `attr` **[string][7]** attribute name.
729
+ - `locator` **([string][9] | [object][7])** element located by CSS|XPath|strict locator.
730
+ - `attr` **[string][9]** attribute name.
704
731
 
705
- Returns **[Promise][10]&lt;[Array][11]&lt;[string][7]>>** attribute value
732
+ Returns **[Promise][12]&lt;[Array][13]&lt;[string][9]>>** attribute value
706
733
 
707
734
  ### grabBrowserLogs
708
735
 
@@ -713,7 +740,7 @@ let logs = await I.grabBrowserLogs();
713
740
  console.log(JSON.stringify(logs))
714
741
  ```
715
742
 
716
- Returns **[Promise][10]&lt;[Array][11]&lt;any>>**
743
+ Returns **[Promise][12]&lt;[Array][13]&lt;any>>**
717
744
 
718
745
  ### grabCookie
719
746
 
@@ -728,9 +755,9 @@ assert(cookie.value, '123456');
728
755
 
729
756
  #### Parameters
730
757
 
731
- - `name` **[string][7]?** cookie name.
758
+ - `name` **[string][9]?** cookie name.
732
759
 
733
- Returns **([Promise][10]&lt;[string][7]> | [Promise][10]&lt;[Array][11]&lt;[string][7]>>)** attribute valueReturns cookie in JSON format. If name not passed returns all cookies for this domain.
760
+ Returns **([Promise][12]&lt;[string][9]> | [Promise][12]&lt;[Array][13]&lt;[string][9]>>)** attribute valueReturns cookie in JSON format. If name not passed returns all cookies for this domain.
734
761
 
735
762
  ### grabCssPropertyFrom
736
763
 
@@ -744,10 +771,10 @@ const value = await I.grabCssPropertyFrom('h3', 'font-weight');
744
771
 
745
772
  #### Parameters
746
773
 
747
- - `locator` **([string][7] | [object][5])** element located by CSS|XPath|strict locator.
748
- - `cssProperty` **[string][7]** CSS property name.
774
+ - `locator` **([string][9] | [object][7])** element located by CSS|XPath|strict locator.
775
+ - `cssProperty` **[string][9]** CSS property name.
749
776
 
750
- Returns **[Promise][10]&lt;[string][7]>** CSS value
777
+ Returns **[Promise][12]&lt;[string][9]>** CSS value
751
778
 
752
779
  ### grabCssPropertyFromAll
753
780
 
@@ -760,10 +787,10 @@ const values = await I.grabCssPropertyFromAll('h3', 'font-weight');
760
787
 
761
788
  #### Parameters
762
789
 
763
- - `locator` **([string][7] | [object][5])** element located by CSS|XPath|strict locator.
764
- - `cssProperty` **[string][7]** CSS property name.
790
+ - `locator` **([string][9] | [object][7])** element located by CSS|XPath|strict locator.
791
+ - `cssProperty` **[string][9]** CSS property name.
765
792
 
766
- Returns **[Promise][10]&lt;[Array][11]&lt;[string][7]>>** CSS value
793
+ Returns **[Promise][12]&lt;[Array][13]&lt;[string][9]>>** CSS value
767
794
 
768
795
  ### grabCurrentUrl
769
796
 
@@ -775,7 +802,7 @@ let url = await I.grabCurrentUrl();
775
802
  console.log(`Current URL is [${url}]`);
776
803
  ```
777
804
 
778
- Returns **[Promise][10]&lt;[string][7]>** current URL
805
+ Returns **[Promise][12]&lt;[string][9]>** current URL
779
806
 
780
807
  ### grabDataFromPerformanceTiming
781
808
 
@@ -822,11 +849,11 @@ const width = await I.grabElementBoundingRect('h3', 'width');
822
849
 
823
850
  #### Parameters
824
851
 
825
- - `locator` **([string][7] | [object][5])** element located by CSS|XPath|strict locator.
852
+ - `locator` **([string][9] | [object][7])** element located by CSS|XPath|strict locator.
826
853
  - `prop`
827
- - `elementSize` **[string][7]?** x, y, width or height of the given element.
854
+ - `elementSize` **[string][9]?** x, y, width or height of the given element.
828
855
 
829
- Returns **([Promise][10]&lt;DOMRect> | [Promise][10]&lt;[number][8]>)** Element bounding rectangle
856
+ Returns **([Promise][12]&lt;DOMRect> | [Promise][12]&lt;[number][10]>)** Element bounding rectangle
830
857
 
831
858
  ### grabHTMLFrom
832
859
 
@@ -841,9 +868,9 @@ let postHTML = await I.grabHTMLFrom('#post');
841
868
  #### Parameters
842
869
 
843
870
  - `locator`
844
- - `element` **([string][7] | [object][5])** located by CSS|XPath|strict locator.
871
+ - `element` **([string][9] | [object][7])** located by CSS|XPath|strict locator.
845
872
 
846
- Returns **[Promise][10]&lt;[string][7]>** HTML code for an element
873
+ Returns **[Promise][12]&lt;[string][9]>** HTML code for an element
847
874
 
848
875
  ### grabHTMLFromAll
849
876
 
@@ -857,9 +884,9 @@ let postHTMLs = await I.grabHTMLFromAll('.post');
857
884
  #### Parameters
858
885
 
859
886
  - `locator`
860
- - `element` **([string][7] | [object][5])** located by CSS|XPath|strict locator.
887
+ - `element` **([string][9] | [object][7])** located by CSS|XPath|strict locator.
861
888
 
862
- Returns **[Promise][10]&lt;[Array][11]&lt;[string][7]>>** HTML code for an element
889
+ Returns **[Promise][12]&lt;[Array][13]&lt;[string][9]>>** HTML code for an element
863
890
 
864
891
  ### grabNumberOfOpenTabs
865
892
 
@@ -870,7 +897,7 @@ Resumes test execution, so **should be used inside async function with `await`**
870
897
  let tabs = await I.grabNumberOfOpenTabs();
871
898
  ```
872
899
 
873
- Returns **[Promise][10]&lt;[number][8]>** number of open tabs
900
+ Returns **[Promise][12]&lt;[number][10]>** number of open tabs
874
901
 
875
902
  ### grabNumberOfVisibleElements
876
903
 
@@ -883,9 +910,9 @@ let numOfElements = await I.grabNumberOfVisibleElements('p');
883
910
 
884
911
  #### Parameters
885
912
 
886
- - `locator` **([string][7] | [object][5])** located by CSS|XPath|strict locator.
913
+ - `locator` **([string][9] | [object][7])** located by CSS|XPath|strict locator.
887
914
 
888
- Returns **[Promise][10]&lt;[number][8]>** number of visible elements
915
+ Returns **[Promise][12]&lt;[number][10]>** number of visible elements
889
916
 
890
917
  ### grabPageScrollPosition
891
918
 
@@ -896,7 +923,7 @@ Resumes test execution, so **should be used inside an async function with `await
896
923
  let { x, y } = await I.grabPageScrollPosition();
897
924
  ```
898
925
 
899
- Returns **[Promise][10]&lt;PageScrollPosition>** scroll position
926
+ Returns **[Promise][12]&lt;PageScrollPosition>** scroll position
900
927
 
901
928
  ### grabPopupText
902
929
 
@@ -906,7 +933,7 @@ Grab the text within the popup. If no popup is visible then it will return null
906
933
  await I.grabPopupText();
907
934
  ```
908
935
 
909
- Returns **[Promise][10]&lt;([string][7] | null)>**
936
+ Returns **[Promise][12]&lt;([string][9] | null)>**
910
937
 
911
938
  ### grabSource
912
939
 
@@ -917,7 +944,7 @@ Resumes test execution, so **should be used inside async function with `await`**
917
944
  let pageSource = await I.grabSource();
918
945
  ```
919
946
 
920
- Returns **[Promise][10]&lt;[string][7]>** source code
947
+ Returns **[Promise][12]&lt;[string][9]>** source code
921
948
 
922
949
  ### grabTextFrom
923
950
 
@@ -932,9 +959,9 @@ If multiple elements found returns first element.
932
959
 
933
960
  #### Parameters
934
961
 
935
- - `locator` **([string][7] | [object][5])** element located by CSS|XPath|strict locator.
962
+ - `locator` **([string][9] | [object][7])** element located by CSS|XPath|strict locator.
936
963
 
937
- Returns **[Promise][10]&lt;[string][7]>** attribute value
964
+ Returns **[Promise][12]&lt;[string][9]>** attribute value
938
965
 
939
966
  ### grabTextFromAll
940
967
 
@@ -947,9 +974,9 @@ let pins = await I.grabTextFromAll('#pin li');
947
974
 
948
975
  #### Parameters
949
976
 
950
- - `locator` **([string][7] | [object][5])** element located by CSS|XPath|strict locator.
977
+ - `locator` **([string][9] | [object][7])** element located by CSS|XPath|strict locator.
951
978
 
952
- Returns **[Promise][10]&lt;[Array][11]&lt;[string][7]>>** attribute value
979
+ Returns **[Promise][12]&lt;[Array][13]&lt;[string][9]>>** attribute value
953
980
 
954
981
  ### grabTitle
955
982
 
@@ -960,7 +987,7 @@ Resumes test execution, so **should be used inside async with `await`** operator
960
987
  let title = await I.grabTitle();
961
988
  ```
962
989
 
963
- Returns **[Promise][10]&lt;[string][7]>** title
990
+ Returns **[Promise][12]&lt;[string][9]>** title
964
991
 
965
992
  ### grabValueFrom
966
993
 
@@ -974,9 +1001,9 @@ let email = await I.grabValueFrom('input[name=email]');
974
1001
 
975
1002
  #### Parameters
976
1003
 
977
- - `locator` **([string][7] | [object][5])** field located by label|name|CSS|XPath|strict locator.
1004
+ - `locator` **([string][9] | [object][7])** field located by label|name|CSS|XPath|strict locator.
978
1005
 
979
- Returns **[Promise][10]&lt;[string][7]>** attribute value
1006
+ Returns **[Promise][12]&lt;[string][9]>** attribute value
980
1007
 
981
1008
  ### grabValueFromAll
982
1009
 
@@ -989,16 +1016,16 @@ let inputs = await I.grabValueFromAll('//form/input');
989
1016
 
990
1017
  #### Parameters
991
1018
 
992
- - `locator` **([string][7] | [object][5])** field located by label|name|CSS|XPath|strict locator.
1019
+ - `locator` **([string][9] | [object][7])** field located by label|name|CSS|XPath|strict locator.
993
1020
 
994
- Returns **[Promise][10]&lt;[Array][11]&lt;[string][7]>>** attribute value
1021
+ Returns **[Promise][12]&lt;[Array][13]&lt;[string][9]>>** attribute value
995
1022
 
996
1023
  ### handleDownloads
997
1024
 
998
1025
  Handles a file download.Aa file name is required to save the file on disk.
999
1026
  Files are saved to "output" directory.
1000
1027
 
1001
- Should be used with [FileSystem helper][12] to check that file were downloaded correctly.
1028
+ Should be used with [FileSystem helper][14] to check that file were downloaded correctly.
1002
1029
 
1003
1030
  ```js
1004
1031
  I.handleDownloads('downloads/avatar.jpg');
@@ -1009,7 +1036,7 @@ I.waitForFile('downloads/avatar.jpg', 5);
1009
1036
 
1010
1037
  #### Parameters
1011
1038
 
1012
- - `fileName` **[string][7]?** set filename for downloaded file
1039
+ - `fileName` **[string][9]?** set filename for downloaded file
1013
1040
 
1014
1041
  ### haveRequestHeaders
1015
1042
 
@@ -1023,7 +1050,22 @@ I.haveRequestHeaders({
1023
1050
 
1024
1051
  #### Parameters
1025
1052
 
1026
- - `customHeaders` **[object][5]** headers to set
1053
+ - `customHeaders` **[object][7]** headers to set
1054
+
1055
+ ### mockRoute
1056
+
1057
+ Mocks network request using [`browserContext.route`][15] of Playwright
1058
+
1059
+ ```js
1060
+ I.mockRoute(/(.png$)|(.jpg$)/, route => route.abort());
1061
+ ```
1062
+
1063
+ This method allows intercepting and mocking requests & responses. [Learn more about it][16]
1064
+
1065
+ #### Parameters
1066
+
1067
+ - `url` **[string][9]?** URL, regex or pattern for to match URL
1068
+ - `handler` **[function][11]?** a function to process request
1027
1069
 
1028
1070
  ### moveCursorTo
1029
1071
 
@@ -1037,9 +1079,9 @@ I.moveCursorTo('#submit', 5,5);
1037
1079
 
1038
1080
  #### Parameters
1039
1081
 
1040
- - `locator` **([string][7] | [object][5])** located by CSS|XPath|strict locator.
1041
- - `offsetX` **[number][8]** (optional, `0` by default) X-axis offset.
1042
- - `offsetY` **[number][8]** (optional, `0` by default) Y-axis offset.
1082
+ - `locator` **([string][9] | [object][7])** located by CSS|XPath|strict locator.
1083
+ - `offsetX` **[number][10]** (optional, `0` by default) X-axis offset.
1084
+ - `offsetY` **[number][10]** (optional, `0` by default) Y-axis offset.
1043
1085
 
1044
1086
  ### openNewTab
1045
1087
 
@@ -1049,7 +1091,7 @@ Open new tab and automatically switched to new tab
1049
1091
  I.openNewTab();
1050
1092
  ```
1051
1093
 
1052
- You can pass in [page options][13] to emulate device on this page
1094
+ You can pass in [page options][17] to emulate device on this page
1053
1095
 
1054
1096
  ```js
1055
1097
  // enable mobile
@@ -1064,7 +1106,7 @@ I.openNewTab({ isMobile: true });
1064
1106
 
1065
1107
  Presses a key in the browser (on a focused element).
1066
1108
 
1067
- _Hint:_ For populating text field or textarea, it is recommended to use [`fillField`][14].
1109
+ _Hint:_ For populating text field or textarea, it is recommended to use [`fillField`][18].
1068
1110
 
1069
1111
  ```js
1070
1112
  I.pressKey('Backspace');
@@ -1123,13 +1165,13 @@ Some of the supported key names are:
1123
1165
 
1124
1166
  #### Parameters
1125
1167
 
1126
- - `key` **([string][7] | [Array][11]&lt;[string][7]>)** key or array of keys to press._Note:_ Shortcuts like `'Meta'` + `'A'` do not work on macOS ([GoogleChrome/Puppeteer#1313][15]).
1168
+ - `key` **([string][9] | [Array][13]&lt;[string][9]>)** key or array of keys to press._Note:_ Shortcuts like `'Meta'` + `'A'` do not work on macOS ([GoogleChrome/Puppeteer#1313][19]).
1127
1169
 
1128
1170
  ### pressKeyDown
1129
1171
 
1130
1172
  Presses a key in the browser and leaves it in a down state.
1131
1173
 
1132
- To make combinations with modifier key and user operation (e.g. `'Control'` + [`click`][16]).
1174
+ To make combinations with modifier key and user operation (e.g. `'Control'` + [`click`][20]).
1133
1175
 
1134
1176
  ```js
1135
1177
  I.pressKeyDown('Control');
@@ -1139,13 +1181,13 @@ I.pressKeyUp('Control');
1139
1181
 
1140
1182
  #### Parameters
1141
1183
 
1142
- - `key` **[string][7]** name of key to press down.
1184
+ - `key` **[string][9]** name of key to press down.
1143
1185
 
1144
1186
  ### pressKeyUp
1145
1187
 
1146
1188
  Releases a key in the browser which was previously set to a down state.
1147
1189
 
1148
- To make combinations with modifier key and user operation (e.g. `'Control'` + [`click`][16]).
1190
+ To make combinations with modifier key and user operation (e.g. `'Control'` + [`click`][20]).
1149
1191
 
1150
1192
  ```js
1151
1193
  I.pressKeyDown('Control');
@@ -1155,7 +1197,7 @@ I.pressKeyUp('Control');
1155
1197
 
1156
1198
  #### Parameters
1157
1199
 
1158
- - `key` **[string][7]** name of key to release.
1200
+ - `key` **[string][9]** name of key to release.
1159
1201
 
1160
1202
  ### refreshPage
1161
1203
 
@@ -1172,8 +1214,8 @@ First parameter can be set to `maximize`.
1172
1214
 
1173
1215
  #### Parameters
1174
1216
 
1175
- - `width` **[number][8]** width in pixels or `maximize`.
1176
- - `height` **[number][8]** height in pixels.Unlike other drivers Playwright changes the size of a viewport, not the window!
1217
+ - `width` **[number][10]** width in pixels or `maximize`.
1218
+ - `height` **[number][10]** height in pixels.Unlike other drivers Playwright changes the size of a viewport, not the window!
1177
1219
  Playwright does not control the window of a browser so it can't adjust its real size.
1178
1220
  It also can't maximize a window.Update configuration to change real window size on start:```js
1179
1221
  // inside codecept.conf.js
@@ -1196,8 +1238,8 @@ I.rightClick('Click me', '.context');
1196
1238
 
1197
1239
  #### Parameters
1198
1240
 
1199
- - `locator` **([string][7] | [object][5])** clickable element located by CSS|XPath|strict locator.
1200
- - `context` **([string][7]? | [object][5])** (optional, `null` by default) element located by CSS|XPath|strict locator.
1241
+ - `locator` **([string][9] | [object][7])** clickable element located by CSS|XPath|strict locator.
1242
+ - `context` **([string][9]? | [object][7])** (optional, `null` by default) element located by CSS|XPath|strict locator.
1201
1243
 
1202
1244
  ### saveElementScreenshot
1203
1245
 
@@ -1210,8 +1252,8 @@ I.saveElementScreenshot(`#submit`,'debug.png');
1210
1252
 
1211
1253
  #### Parameters
1212
1254
 
1213
- - `locator` **([string][7] | [object][5])** element located by CSS|XPath|strict locator.
1214
- - `fileName` **[string][7]** file name to save.
1255
+ - `locator` **([string][9] | [object][7])** element located by CSS|XPath|strict locator.
1256
+ - `fileName` **[string][9]** file name to save.
1215
1257
 
1216
1258
  ### saveScreenshot
1217
1259
 
@@ -1226,8 +1268,8 @@ I.saveScreenshot('debug.png', true) //resizes to available scrollHeight and scro
1226
1268
 
1227
1269
  #### Parameters
1228
1270
 
1229
- - `fileName` **[string][7]** file name to save.
1230
- - `fullPage` **[boolean][17]** (optional, `false` by default) flag to enable fullscreen screenshot mode.
1271
+ - `fileName` **[string][9]** file name to save.
1272
+ - `fullPage` **[boolean][21]** (optional, `false` by default) flag to enable fullscreen screenshot mode.
1231
1273
 
1232
1274
  ### scrollPageToBottom
1233
1275
 
@@ -1257,9 +1299,9 @@ I.scrollTo('#submit', 5, 5);
1257
1299
 
1258
1300
  #### Parameters
1259
1301
 
1260
- - `locator` **([string][7] | [object][5])** located by CSS|XPath|strict locator.
1261
- - `offsetX` **[number][8]** (optional, `0` by default) X-axis offset.
1262
- - `offsetY` **[number][8]** (optional, `0` by default) Y-axis offset.
1302
+ - `locator` **([string][9] | [object][7])** located by CSS|XPath|strict locator.
1303
+ - `offsetX` **[number][10]** (optional, `0` by default) X-axis offset.
1304
+ - `offsetY` **[number][10]** (optional, `0` by default) Y-axis offset.
1263
1305
 
1264
1306
  ### see
1265
1307
 
@@ -1274,8 +1316,8 @@ I.see('Register', {css: 'form.register'}); // use strict locator
1274
1316
 
1275
1317
  #### Parameters
1276
1318
 
1277
- - `text` **[string][7]** expected on page.
1278
- - `context` **([string][7]? | [object][5])** (optional, `null` by default) element located by CSS|Xpath|strict locator in which to search for text.
1319
+ - `text` **[string][9]** expected on page.
1320
+ - `context` **([string][9]? | [object][7])** (optional, `null` by default) element located by CSS|Xpath|strict locator in which to search for text.
1279
1321
 
1280
1322
  ### seeAttributesOnElements
1281
1323
 
@@ -1287,8 +1329,8 @@ I.seeAttributesOnElements('//form', { method: "post"});
1287
1329
 
1288
1330
  #### Parameters
1289
1331
 
1290
- - `locator` **([string][7] | [object][5])** located by CSS|XPath|strict locator.
1291
- - `attributes` **[object][5]** attributes and their values to check.
1332
+ - `locator` **([string][9] | [object][7])** located by CSS|XPath|strict locator.
1333
+ - `attributes` **[object][7]** attributes and their values to check.
1292
1334
 
1293
1335
  ### seeCheckboxIsChecked
1294
1336
 
@@ -1302,7 +1344,7 @@ I.seeCheckboxIsChecked({css: '#signup_form input[type=checkbox]'});
1302
1344
 
1303
1345
  #### Parameters
1304
1346
 
1305
- - `field` **([string][7] | [object][5])** located by label|name|CSS|XPath|strict locator.
1347
+ - `field` **([string][9] | [object][7])** located by label|name|CSS|XPath|strict locator.
1306
1348
 
1307
1349
  ### seeCookie
1308
1350
 
@@ -1314,7 +1356,7 @@ I.seeCookie('Auth');
1314
1356
 
1315
1357
  #### Parameters
1316
1358
 
1317
- - `name` **[string][7]** cookie name.
1359
+ - `name` **[string][9]** cookie name.
1318
1360
 
1319
1361
  ### seeCssPropertiesOnElements
1320
1362
 
@@ -1326,8 +1368,8 @@ I.seeCssPropertiesOnElements('h3', { 'font-weight': "bold"});
1326
1368
 
1327
1369
  #### Parameters
1328
1370
 
1329
- - `locator` **([string][7] | [object][5])** located by CSS|XPath|strict locator.
1330
- - `cssProperties` **[object][5]** object with CSS properties and their values to check.
1371
+ - `locator` **([string][9] | [object][7])** located by CSS|XPath|strict locator.
1372
+ - `cssProperties` **[object][7]** object with CSS properties and their values to check.
1331
1373
 
1332
1374
  ### seeCurrentUrlEquals
1333
1375
 
@@ -1342,7 +1384,7 @@ I.seeCurrentUrlEquals('http://my.site.com/register');
1342
1384
 
1343
1385
  #### Parameters
1344
1386
 
1345
- - `url` **[string][7]** value to check.
1387
+ - `url` **[string][9]** value to check.
1346
1388
 
1347
1389
  ### seeElement
1348
1390
 
@@ -1355,7 +1397,7 @@ I.seeElement('#modal');
1355
1397
 
1356
1398
  #### Parameters
1357
1399
 
1358
- - `locator` **([string][7] | [object][5])** located by CSS|XPath|strict locator.
1400
+ - `locator` **([string][9] | [object][7])** located by CSS|XPath|strict locator.
1359
1401
 
1360
1402
  ### seeElementInDOM
1361
1403
 
@@ -1368,7 +1410,7 @@ I.seeElementInDOM('#modal');
1368
1410
 
1369
1411
  #### Parameters
1370
1412
 
1371
- - `locator` **([string][7] | [object][5])** element located by CSS|XPath|strict locator.
1413
+ - `locator` **([string][9] | [object][7])** element located by CSS|XPath|strict locator.
1372
1414
 
1373
1415
  ### seeInCurrentUrl
1374
1416
 
@@ -1380,7 +1422,7 @@ I.seeInCurrentUrl('/register'); // we are on registration page
1380
1422
 
1381
1423
  #### Parameters
1382
1424
 
1383
- - `url` **[string][7]** a fragment to check
1425
+ - `url` **[string][9]** a fragment to check
1384
1426
 
1385
1427
  ### seeInField
1386
1428
 
@@ -1396,8 +1438,8 @@ I.seeInField('#searchform input','Search');
1396
1438
 
1397
1439
  #### Parameters
1398
1440
 
1399
- - `field` **([string][7] | [object][5])** located by label|name|CSS|XPath|strict locator.
1400
- - `value` **[string][7]** value to check.
1441
+ - `field` **([string][9] | [object][7])** located by label|name|CSS|XPath|strict locator.
1442
+ - `value` **[string][9]** value to check.
1401
1443
 
1402
1444
  ### seeInPopup
1403
1445
 
@@ -1410,7 +1452,7 @@ I.seeInPopup('Popup text');
1410
1452
 
1411
1453
  #### Parameters
1412
1454
 
1413
- - `text` **[string][7]** value to check.
1455
+ - `text` **[string][9]** value to check.
1414
1456
 
1415
1457
  ### seeInSource
1416
1458
 
@@ -1422,7 +1464,7 @@ I.seeInSource('<h1>Green eggs &amp; ham</h1>');
1422
1464
 
1423
1465
  #### Parameters
1424
1466
 
1425
- - `text` **[string][7]** value to check.
1467
+ - `text` **[string][9]** value to check.
1426
1468
 
1427
1469
  ### seeInTitle
1428
1470
 
@@ -1434,7 +1476,7 @@ I.seeInTitle('Home Page');
1434
1476
 
1435
1477
  #### Parameters
1436
1478
 
1437
- - `text` **[string][7]** text value to check.
1479
+ - `text` **[string][9]** text value to check.
1438
1480
 
1439
1481
  ### seeNumberOfElements
1440
1482
 
@@ -1447,8 +1489,8 @@ I.seeNumberOfElements('#submitBtn', 1);
1447
1489
 
1448
1490
  #### Parameters
1449
1491
 
1450
- - `locator` **([string][7] | [object][5])** element located by CSS|XPath|strict locator.
1451
- - `num` **[number][8]** number of elements.
1492
+ - `locator` **([string][9] | [object][7])** element located by CSS|XPath|strict locator.
1493
+ - `num` **[number][10]** number of elements.
1452
1494
 
1453
1495
  ### seeNumberOfVisibleElements
1454
1496
 
@@ -1461,8 +1503,8 @@ I.seeNumberOfVisibleElements('.buttons', 3);
1461
1503
 
1462
1504
  #### Parameters
1463
1505
 
1464
- - `locator` **([string][7] | [object][5])** element located by CSS|XPath|strict locator.
1465
- - `num` **[number][8]** number of elements.
1506
+ - `locator` **([string][9] | [object][7])** element located by CSS|XPath|strict locator.
1507
+ - `num` **[number][10]** number of elements.
1466
1508
 
1467
1509
  ### seeTextEquals
1468
1510
 
@@ -1474,8 +1516,8 @@ I.seeTextEquals('text', 'h1');
1474
1516
 
1475
1517
  #### Parameters
1476
1518
 
1477
- - `text` **[string][7]** element value to check.
1478
- - `context` **([string][7] | [object][5])?** element located by CSS|XPath|strict locator.
1519
+ - `text` **[string][9]** element value to check.
1520
+ - `context` **([string][9] | [object][7])?** element located by CSS|XPath|strict locator.
1479
1521
 
1480
1522
  ### seeTitleEquals
1481
1523
 
@@ -1487,7 +1529,7 @@ I.seeTitleEquals('Test title.');
1487
1529
 
1488
1530
  #### Parameters
1489
1531
 
1490
- - `text` **[string][7]** value to check.
1532
+ - `text` **[string][9]** value to check.
1491
1533
 
1492
1534
  ### selectOption
1493
1535
 
@@ -1512,8 +1554,8 @@ I.selectOption('Which OS do you use?', ['Android', 'iOS']);
1512
1554
 
1513
1555
  #### Parameters
1514
1556
 
1515
- - `select` **([string][7] | [object][5])** field located by label|name|CSS|XPath|strict locator.
1516
- - `option` **([string][7] | [Array][11]&lt;any>)** visible text or value of option.
1557
+ - `select` **([string][9] | [object][7])** field located by label|name|CSS|XPath|strict locator.
1558
+ - `option` **([string][9] | [Array][13]&lt;any>)** visible text or value of option.
1517
1559
 
1518
1560
  ### setCookie
1519
1561
 
@@ -1533,7 +1575,23 @@ I.setCookie([
1533
1575
 
1534
1576
  #### Parameters
1535
1577
 
1536
- - `cookie` **(Cookie | [Array][11]&lt;Cookie>)** a cookie object or array of cookie objects.
1578
+ - `cookie` **(Cookie | [Array][13]&lt;Cookie>)** a cookie object or array of cookie objects.
1579
+
1580
+ ### stopMockingRoute
1581
+
1582
+ Stops network mocking created by `mockRoute`.
1583
+
1584
+ ```js
1585
+ I.stopMockingRoute(/(.png$)|(.jpg$)/);
1586
+ I.stopMockingRoute(/(.png$)|(.jpg$)/, previouslySetHandler);
1587
+ ```
1588
+
1589
+ If no handler is passed, all mock requests for the rote are disabled.
1590
+
1591
+ #### Parameters
1592
+
1593
+ - `url` **[string][9]?** URL, regex or pattern for to match URL
1594
+ - `handler` **[function][11]?** a function to process request
1537
1595
 
1538
1596
  ### switchTo
1539
1597
 
@@ -1546,7 +1604,7 @@ I.switchTo(); // switch back to main page
1546
1604
 
1547
1605
  #### Parameters
1548
1606
 
1549
- - `locator` **([string][7]? | [object][5])** (optional, `null` by default) element located by CSS|XPath|strict locator.
1607
+ - `locator` **([string][9]? | [object][7])** (optional, `null` by default) element located by CSS|XPath|strict locator.
1550
1608
 
1551
1609
  ### switchToNextTab
1552
1610
 
@@ -1559,7 +1617,7 @@ I.switchToNextTab(2);
1559
1617
 
1560
1618
  #### Parameters
1561
1619
 
1562
- - `num` **[number][8]**
1620
+ - `num` **[number][10]**
1563
1621
 
1564
1622
  ### switchToPreviousTab
1565
1623
 
@@ -1572,13 +1630,13 @@ I.switchToPreviousTab(2);
1572
1630
 
1573
1631
  #### Parameters
1574
1632
 
1575
- - `num` **[number][8]**
1633
+ - `num` **[number][10]**
1576
1634
 
1577
1635
  ### type
1578
1636
 
1579
1637
  Types out the given text into an active field.
1580
1638
  To slow down typing use a second parameter, to set interval between key presses.
1581
- _Note:_ Should be used when [`fillField`][14] is not an option.
1639
+ _Note:_ Should be used when [`fillField`][18] is not an option.
1582
1640
 
1583
1641
  ```js
1584
1642
  // passing in a string
@@ -1594,8 +1652,8 @@ I.type(['T', 'E', 'X', 'T']);
1594
1652
  #### Parameters
1595
1653
 
1596
1654
  - `keys`
1597
- - `delay` **[number][8]?** (optional) delay in ms between key presses
1598
- - `key` **([string][7] | [Array][11]&lt;[string][7]>)** or array of keys to type.
1655
+ - `delay` **[number][10]?** (optional) delay in ms between key presses
1656
+ - `key` **([string][9] | [Array][13]&lt;[string][9]>)** or array of keys to type.
1599
1657
 
1600
1658
  ### uncheckOption
1601
1659
 
@@ -1612,8 +1670,8 @@ I.uncheckOption('agree', '//form');
1612
1670
 
1613
1671
  #### Parameters
1614
1672
 
1615
- - `field` **([string][7] | [object][5])** checkbox located by label | name | CSS | XPath | strict locator.
1616
- - `context` **([string][7]? | [object][5])** (optional, `null` by default) element located by CSS | XPath | strict locator.
1673
+ - `field` **([string][9] | [object][7])** checkbox located by label | name | CSS | XPath | strict locator.
1674
+ - `context` **([string][9]? | [object][7])** (optional, `null` by default) element located by CSS | XPath | strict locator.
1617
1675
 
1618
1676
  ### usePlaywrightTo
1619
1677
 
@@ -1622,7 +1680,7 @@ Use Playwright API inside a test.
1622
1680
  First argument is a description of an action.
1623
1681
  Second argument is async function that gets this helper as parameter.
1624
1682
 
1625
- { [`page`][18], [`context`][19] [`browser`][20] } objects from Playwright API are available.
1683
+ { [`page`][22], [`context`][23] [`browser`][24] } objects from Playwright API are available.
1626
1684
 
1627
1685
  ```js
1628
1686
  I.usePlaywrightTo('emulate offline mode', async ({ context }) {
@@ -1632,8 +1690,8 @@ I.usePlaywrightTo('emulate offline mode', async ({ context }) {
1632
1690
 
1633
1691
  #### Parameters
1634
1692
 
1635
- - `description` **[string][7]** used to show in logs.
1636
- - `fn` **[function][9]** async functuion that executed with Playwright helper as argument
1693
+ - `description` **[string][9]** used to show in logs.
1694
+ - `fn` **[function][11]** async functuion that executed with Playwright helper as argument
1637
1695
 
1638
1696
  ### wait
1639
1697
 
@@ -1645,7 +1703,7 @@ I.wait(2); // wait 2 secs
1645
1703
 
1646
1704
  #### Parameters
1647
1705
 
1648
- - `sec` **[number][8]** number of second to wait.
1706
+ - `sec` **[number][10]** number of second to wait.
1649
1707
 
1650
1708
  ### waitForClickable
1651
1709
 
@@ -1659,9 +1717,9 @@ I.waitForClickable('.btn.continue', 5); // wait for 5 secs
1659
1717
 
1660
1718
  #### Parameters
1661
1719
 
1662
- - `locator` **([string][7] | [object][5])** element located by CSS|XPath|strict locator.
1720
+ - `locator` **([string][9] | [object][7])** element located by CSS|XPath|strict locator.
1663
1721
  - `waitTimeout`
1664
- - `sec` **[number][8]?** (optional, `1` by default) time in seconds to wait
1722
+ - `sec` **[number][10]?** (optional, `1` by default) time in seconds to wait
1665
1723
 
1666
1724
  ### waitForDetached
1667
1725
 
@@ -1674,8 +1732,8 @@ I.waitForDetached('#popup');
1674
1732
 
1675
1733
  #### Parameters
1676
1734
 
1677
- - `locator` **([string][7] | [object][5])** element located by CSS|XPath|strict locator.
1678
- - `sec` **[number][8]** (optional, `1` by default) time in seconds to wait
1735
+ - `locator` **([string][9] | [object][7])** element located by CSS|XPath|strict locator.
1736
+ - `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
1679
1737
 
1680
1738
  ### waitForElement
1681
1739
 
@@ -1689,8 +1747,8 @@ I.waitForElement('.btn.continue', 5); // wait for 5 secs
1689
1747
 
1690
1748
  #### Parameters
1691
1749
 
1692
- - `locator` **([string][7] | [object][5])** element located by CSS|XPath|strict locator.
1693
- - `sec` **[number][8]?** (optional, `1` by default) time in seconds to wait
1750
+ - `locator` **([string][9] | [object][7])** element located by CSS|XPath|strict locator.
1751
+ - `sec` **[number][10]?** (optional, `1` by default) time in seconds to wait
1694
1752
 
1695
1753
  ### waitForEnabled
1696
1754
 
@@ -1699,8 +1757,8 @@ Element can be located by CSS or XPath.
1699
1757
 
1700
1758
  #### Parameters
1701
1759
 
1702
- - `locator` **([string][7] | [object][5])** element located by CSS|XPath|strict locator.
1703
- - `sec` **[number][8]** (optional) time in seconds to wait, 1 by default.
1760
+ - `locator` **([string][9] | [object][7])** element located by CSS|XPath|strict locator.
1761
+ - `sec` **[number][10]** (optional) time in seconds to wait, 1 by default.
1704
1762
 
1705
1763
  ### waitForFunction
1706
1764
 
@@ -1719,9 +1777,9 @@ I.waitForFunction((count) => window.requests == count, [3], 5) // pass args and
1719
1777
 
1720
1778
  #### Parameters
1721
1779
 
1722
- - `fn` **([string][7] | [function][9])** to be executed in browser context.
1723
- - `argsOrSec` **([Array][11]&lt;any> | [number][8])?** (optional, `1` by default) arguments for function or seconds.
1724
- - `sec` **[number][8]?** (optional, `1` by default) time in seconds to wait
1780
+ - `fn` **([string][9] | [function][11])** to be executed in browser context.
1781
+ - `argsOrSec` **([Array][13]&lt;any> | [number][10])?** (optional, `1` by default) arguments for function or seconds.
1782
+ - `sec` **[number][10]?** (optional, `1` by default) time in seconds to wait
1725
1783
 
1726
1784
  ### waitForInvisible
1727
1785
 
@@ -1734,14 +1792,14 @@ I.waitForInvisible('#popup');
1734
1792
 
1735
1793
  #### Parameters
1736
1794
 
1737
- - `locator` **([string][7] | [object][5])** element located by CSS|XPath|strict locator.
1738
- - `sec` **[number][8]** (optional, `1` by default) time in seconds to wait
1795
+ - `locator` **([string][9] | [object][7])** element located by CSS|XPath|strict locator.
1796
+ - `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
1739
1797
 
1740
1798
  ### waitForNavigation
1741
1799
 
1742
1800
  Waits for navigation to finish. By default takes configured `waitForNavigation` option.
1743
1801
 
1744
- See [Playwright's reference][21]
1802
+ See [Playwright's reference][25]
1745
1803
 
1746
1804
  #### Parameters
1747
1805
 
@@ -1758,8 +1816,8 @@ I.waitForRequest(request => request.url() === 'http://example.com' && request.me
1758
1816
 
1759
1817
  #### Parameters
1760
1818
 
1761
- - `urlOrPredicate` **([string][7] | [function][9])**
1762
- - `sec` **[number][8]?** seconds to wait
1819
+ - `urlOrPredicate` **([string][9] | [function][11])**
1820
+ - `sec` **[number][10]?** seconds to wait
1763
1821
 
1764
1822
  ### waitForResponse
1765
1823
 
@@ -1772,8 +1830,8 @@ I.waitForResponse(request => request.url() === 'http://example.com' && request.m
1772
1830
 
1773
1831
  #### Parameters
1774
1832
 
1775
- - `urlOrPredicate` **([string][7] | [function][9])**
1776
- - `sec` **[number][8]?** number of seconds to wait
1833
+ - `urlOrPredicate` **([string][9] | [function][11])**
1834
+ - `sec` **[number][10]?** number of seconds to wait
1777
1835
 
1778
1836
  ### waitForText
1779
1837
 
@@ -1788,9 +1846,9 @@ I.waitForText('Thank you, form has been submitted', 5, '#modal');
1788
1846
 
1789
1847
  #### Parameters
1790
1848
 
1791
- - `text` **[string][7]** to wait for.
1792
- - `sec` **[number][8]** (optional, `1` by default) time in seconds to wait
1793
- - `context` **([string][7] | [object][5])?** (optional) element located by CSS|XPath|strict locator.
1849
+ - `text` **[string][9]** to wait for.
1850
+ - `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
1851
+ - `context` **([string][9] | [object][7])?** (optional) element located by CSS|XPath|strict locator.
1794
1852
 
1795
1853
  ### waitForValue
1796
1854
 
@@ -1802,9 +1860,9 @@ I.waitForValue('//input', "GoodValue");
1802
1860
 
1803
1861
  #### Parameters
1804
1862
 
1805
- - `field` **([string][7] | [object][5])** input field.
1806
- - `value` **[string][7]** expected value.
1807
- - `sec` **[number][8]** (optional, `1` by default) time in seconds to wait
1863
+ - `field` **([string][9] | [object][7])** input field.
1864
+ - `value` **[string][9]** expected value.
1865
+ - `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
1808
1866
 
1809
1867
  ### waitForVisible
1810
1868
 
@@ -1817,8 +1875,8 @@ I.waitForVisible('#popup');
1817
1875
 
1818
1876
  #### Parameters
1819
1877
 
1820
- - `locator` **([string][7] | [object][5])** element located by CSS|XPath|strict locator.
1821
- - `sec` **[number][8]** (optional, `1` by default) time in seconds to waitThis method accepts [React selectors][22].
1878
+ - `locator` **([string][9] | [object][7])** element located by CSS|XPath|strict locator.
1879
+ - `sec` **[number][10]** (optional, `1` by default) time in seconds to waitThis method accepts [React selectors][26].
1822
1880
 
1823
1881
  ### waitInUrl
1824
1882
 
@@ -1830,8 +1888,8 @@ I.waitInUrl('/info', 2);
1830
1888
 
1831
1889
  #### Parameters
1832
1890
 
1833
- - `urlPart` **[string][7]** value to check.
1834
- - `sec` **[number][8]** (optional, `1` by default) time in seconds to wait
1891
+ - `urlPart` **[string][9]** value to check.
1892
+ - `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
1835
1893
 
1836
1894
  ### waitNumberOfVisibleElements
1837
1895
 
@@ -1843,9 +1901,9 @@ I.waitNumberOfVisibleElements('a', 3);
1843
1901
 
1844
1902
  #### Parameters
1845
1903
 
1846
- - `locator` **([string][7] | [object][5])** element located by CSS|XPath|strict locator.
1847
- - `num` **[number][8]** number of elements.
1848
- - `sec` **[number][8]** (optional, `1` by default) time in seconds to wait
1904
+ - `locator` **([string][9] | [object][7])** element located by CSS|XPath|strict locator.
1905
+ - `num` **[number][10]** number of elements.
1906
+ - `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
1849
1907
 
1850
1908
  ### waitToHide
1851
1909
 
@@ -1858,8 +1916,8 @@ I.waitToHide('#popup');
1858
1916
 
1859
1917
  #### Parameters
1860
1918
 
1861
- - `locator` **([string][7] | [object][5])** element located by CSS|XPath|strict locator.
1862
- - `sec` **[number][8]** (optional, `1` by default) time in seconds to wait
1919
+ - `locator` **([string][9] | [object][7])** element located by CSS|XPath|strict locator.
1920
+ - `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
1863
1921
 
1864
1922
  ### waitUntil
1865
1923
 
@@ -1872,10 +1930,10 @@ I.waitUntil(() => window.requests == 0, 5);
1872
1930
 
1873
1931
  #### Parameters
1874
1932
 
1875
- - `fn` **([function][9] | [string][7])** function which is executed in browser context.
1876
- - `sec` **[number][8]** (optional, `1` by default) time in seconds to wait
1877
- - `timeoutMsg` **[string][7]** message to show in case of timeout fail.
1878
- - `interval` **[number][8]?**
1933
+ - `fn` **([function][11] | [string][9])** function which is executed in browser context.
1934
+ - `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
1935
+ - `timeoutMsg` **[string][9]** message to show in case of timeout fail.
1936
+ - `interval` **[number][10]?**
1879
1937
 
1880
1938
  ### waitUrlEquals
1881
1939
 
@@ -1888,49 +1946,57 @@ I.waitUrlEquals('http://127.0.0.1:8000/info');
1888
1946
 
1889
1947
  #### Parameters
1890
1948
 
1891
- - `urlPart` **[string][7]** value to check.
1892
- - `sec` **[number][8]** (optional, `1` by default) time in seconds to wait
1949
+ - `urlPart` **[string][9]** value to check.
1950
+ - `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
1893
1951
 
1894
1952
  [1]: https://github.com/microsoft/playwright
1895
1953
 
1896
- [2]: https://github.com/microsoft/playwright/blob/master/docs/api.md#pagewaitfornavigationoptions
1954
+ [2]: https://playwright.dev/docs/trace-viewer
1955
+
1956
+ [3]: https://github.com/microsoft/playwright/blob/master/docs/api.md#pagewaitfornavigationoptions
1957
+
1958
+ [4]: https://playwright.dev/docs/next/api/class-browser#browser-new-context
1959
+
1960
+ [5]: https://playwright.dev/docs/api/class-browsertype#browsertypeconnectparams
1961
+
1962
+ [6]: https://github.com/microsoft/playwright/blob/v0.11.0/docs/api.md#working-with-chrome-extensions
1897
1963
 
1898
- [3]: https://playwright.dev/docs/api/class-browsertype#browsertypeconnectparams
1964
+ [7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object
1899
1965
 
1900
- [4]: https://github.com/microsoft/playwright/blob/v0.11.0/docs/api.md#working-with-chrome-extensions
1966
+ [8]: http://jster.net/category/windows-modals-popups
1901
1967
 
1902
- [5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object
1968
+ [9]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
1903
1969
 
1904
- [6]: http://jster.net/category/windows-modals-popups
1970
+ [10]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
1905
1971
 
1906
- [7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
1972
+ [11]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function
1907
1973
 
1908
- [8]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
1974
+ [12]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise
1909
1975
 
1910
- [9]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function
1976
+ [13]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array
1911
1977
 
1912
- [10]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise
1978
+ [14]: https://codecept.io/helpers/FileSystem
1913
1979
 
1914
- [11]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array
1980
+ [15]: https://playwright.dev/docs/api/class-browsercontext#browser-context-route
1915
1981
 
1916
- [12]: https://codecept.io/helpers/FileSystem
1982
+ [16]: https://playwright.dev/docs/network#handle-requests
1917
1983
 
1918
- [13]: https://github.com/microsoft/playwright/blob/master/docs/api.md#browsernewpageoptions
1984
+ [17]: https://github.com/microsoft/playwright/blob/master/docs/api.md#browsernewpageoptions
1919
1985
 
1920
- [14]: #fillfield
1986
+ [18]: #fillfield
1921
1987
 
1922
- [15]: https://github.com/GoogleChrome/puppeteer/issues/1313
1988
+ [19]: https://github.com/GoogleChrome/puppeteer/issues/1313
1923
1989
 
1924
- [16]: #click
1990
+ [20]: #click
1925
1991
 
1926
- [17]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean
1992
+ [21]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean
1927
1993
 
1928
- [18]: https://github.com/microsoft/playwright/blob/master/docs/api.md#class-page
1994
+ [22]: https://github.com/microsoft/playwright/blob/master/docs/api.md#class-page
1929
1995
 
1930
- [19]: https://github.com/microsoft/playwright/blob/master/docs/api.md#class-context
1996
+ [23]: https://github.com/microsoft/playwright/blob/master/docs/api.md#class-context
1931
1997
 
1932
- [20]: https://github.com/microsoft/playwright/blob/master/docs/api.md#class-browser
1998
+ [24]: https://github.com/microsoft/playwright/blob/master/docs/api.md#class-browser
1933
1999
 
1934
- [21]: https://playwright.dev/docs/api/class-page?_highlight=waitfornavi#pagewaitfornavigationoptions
2000
+ [25]: https://playwright.dev/docs/api/class-page?_highlight=waitfornavi#pagewaitfornavigationoptions
1935
2001
 
1936
- [22]: https://codecept.io/react
2002
+ [26]: https://codecept.io/react