codeceptjs 2.2.0 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/CHANGELOG.md +30 -1
  2. package/README.md +15 -22
  3. package/bin/codecept.js +3 -1
  4. package/docs/advanced.md +1 -1
  5. package/docs/angular.md +6 -9
  6. package/docs/basics.md +388 -86
  7. package/docs/bdd.md +4 -3
  8. package/docs/build/Nightmare.js +3 -0
  9. package/docs/build/Polly.js +26 -12
  10. package/docs/build/Puppeteer.js +14 -13
  11. package/docs/build/TestCafe.js +101 -2
  12. package/docs/build/WebDriver.js +53 -52
  13. package/docs/changelog.md +86 -57
  14. package/docs/detox.md +235 -0
  15. package/docs/helpers/Detox.md +579 -0
  16. package/docs/helpers/Polly.md +13 -3
  17. package/docs/helpers/Puppeteer.md +155 -156
  18. package/docs/helpers/TestCafe.md +53 -0
  19. package/docs/helpers/WebDriver.md +209 -204
  20. package/docs/locators.md +2 -0
  21. package/docs/mobile.md +5 -1
  22. package/docs/puppeteer.md +59 -13
  23. package/docs/quickstart.md +47 -12
  24. package/docs/testcafe.md +157 -0
  25. package/docs/webdriver.md +453 -0
  26. package/lib/command/definitions.js +152 -7
  27. package/lib/command/gherkin/snippets.js +19 -8
  28. package/lib/command/init.js +30 -22
  29. package/lib/command/utils.js +1 -1
  30. package/lib/container.js +36 -10
  31. package/lib/data/dataScenarioConfig.js +18 -0
  32. package/lib/helper/Nightmare.js +3 -0
  33. package/lib/helper/Polly.js +26 -12
  34. package/lib/helper/Puppeteer.js +14 -13
  35. package/lib/helper/TestCafe.js +72 -2
  36. package/lib/helper/WebDriver.js +53 -52
  37. package/lib/helper/testcafe/testcafe-utils.js +3 -2
  38. package/lib/interfaces/scenarioConfig.js +2 -2
  39. package/lib/listener/config.js +2 -2
  40. package/lib/plugin/allure.js +3 -0
  41. package/lib/step.js +5 -2
  42. package/lib/ui.js +1 -1
  43. package/lib/utils.js +13 -21
  44. package/package.json +14 -12
@@ -31,13 +31,14 @@ This helper should be configured in codecept.json or codecept.conf.js
31
31
  - `keepCookies`: - keep cookies between tests when `restart` is set to false.
32
32
  - `waitForAction`: (optional) how long to wait after click, doubleClick or PressKey actions in ms. Default: 100.
33
33
  - `waitForNavigation`: . When to consider navigation succeeded. Possible options: `load`, `domcontentloaded`, `networkidle0`, `networkidle2`. See [Puppeteer API][3]. Array values are accepted as well.
34
+ - `pressKeyDelay`: . Delay between key presses in ms. Used when calling Puppeteers page.type(...) in fillField/appendField
34
35
  - `getPageTimeout` config option to set maximum navigation time in milliseconds.
35
36
  - `waitForTimeout`: (optional) default wait\ timeout in ms. Default: 1000.
36
37
  - `windowSize`: (optional) default window size. Set a dimension like `640x480`.
37
38
  - `userAgent`: (optional) user-agent string.
38
39
  - `manualStart`: - do not start browser before a test, start it manually inside a helper with `this.helpers["Puppeteer"]._startBrowser()`.
39
- - `browser`: - can be changed to `firefox` when using [puppeteer-firefox][4].
40
- - `chrome`: (optional) pass additional [Puppeteer run options][5].
40
+ - `browser`: - can be changed to `firefox` when using [puppeteer-firefox][2].
41
+ - `chrome`: (optional) pass additional [Puppeteer run options][4].
41
42
 
42
43
  #### Example #1: Wait for 0 network connections.
43
44
 
@@ -82,7 +83,7 @@ This helper should be configured in codecept.json or codecept.conf.js
82
83
  }
83
84
  ```
84
85
 
85
- #### Example #4: Connect to remote browser by specifying [websocket endpoint][6]
86
+ #### Example #4: Connect to remote browser by specifying [websocket endpoint][5]
86
87
 
87
88
  ```json
88
89
  {
@@ -192,13 +193,13 @@ Set current page
192
193
 
193
194
  #### Parameters
194
195
 
195
- - `page` [object][7] page to set
196
+ - `page` [object][6] page to set
196
197
 
197
198
  ### acceptPopup
198
199
 
199
200
  Accepts the active JavaScript native popup window, as created by window.alert|window.confirm|window.prompt.
200
201
  Don't confuse popups with modal windows, as created by [various
201
- libraries][8].
202
+ libraries][7].
202
203
 
203
204
  ### amAcceptingPopups
204
205
 
@@ -236,7 +237,7 @@ I.amOnPage('/login'); // opens a login page
236
237
 
237
238
  #### Parameters
238
239
 
239
- - `url` [string][9] url path or global url.
240
+ - `url` [string][8] url path or global url.
240
241
 
241
242
 
242
243
 
@@ -251,8 +252,8 @@ I.appendField('#myTextField', 'appended');
251
252
 
252
253
  #### Parameters
253
254
 
254
- - `field` ([string][9] \| [object][7]) located by label|name|CSS|XPath|strict locator
255
- - `value` [string][9] text value to append.
255
+ - `field` ([string][8] \| [object][6]) located by label|name|CSS|XPath|strict locator
256
+ - `value` [string][8] text value to append.
256
257
 
257
258
 
258
259
 
@@ -273,8 +274,8 @@ I.attachFile('form input[name=avatar]', 'data/avatar.jpg');
273
274
 
274
275
  #### Parameters
275
276
 
276
- - `locator` ([string][9] \| [object][7]) field located by label|name|CSS|XPath|strict locator.
277
- - `pathToFile` [string][9] local file path relative to codecept.json config file.
277
+ - `locator` ([string][8] \| [object][6]) field located by label|name|CSS|XPath|strict locator.
278
+ - `pathToFile` [string][8] local file path relative to codecept.json config file.
278
279
 
279
280
 
280
281
 
@@ -297,8 +298,8 @@ I.checkOption('agree', '//form');
297
298
 
298
299
  #### Parameters
299
300
 
300
- - `field` ([string][9] \| [object][7]) checkbox located by label | name | CSS | XPath | strict locator.
301
- - `context` [string][9] (optional, `null` by default) element located by CSS | XPath | strict locator.
301
+ - `field` ([string][8] \| [object][6]) checkbox located by label | name | CSS | XPath | strict locator.
302
+ - `context` [string][8] (optional, `null` by default) element located by CSS | XPath | strict locator.
302
303
 
303
304
 
304
305
 
@@ -315,7 +316,7 @@ I.clearCookie('test');
315
316
  #### Parameters
316
317
 
317
318
  - `name`
318
- - `cookie` [string][9] (optional, `null` by default) cookie name
319
+ - `cookie` [string][8] (optional, `null` by default) cookie name
319
320
 
320
321
 
321
322
 
@@ -332,7 +333,7 @@ I.clearField('#email');
332
333
  #### Parameters
333
334
 
334
335
  - `field`
335
- - `editable` ([string][9] \| [object][7]) field located by label|name|CSS|XPath|strict locator.
336
+ - `editable` ([string][8] \| [object][6]) field located by label|name|CSS|XPath|strict locator.
336
337
 
337
338
 
338
339
 
@@ -362,8 +363,8 @@ I.click({css: 'nav a.login'});
362
363
 
363
364
  #### Parameters
364
365
 
365
- - `locator` ([string][9] \| [object][7]) clickable link or button located by text, or any element located by CSS|XPath|strict locator.
366
- - `context` ([string][9] \| [object][7]) (optional, `null` by default) element to search in CSS|XPath|Strict locator.
366
+ - `locator` ([string][8] \| [object][6]) clickable link or button located by text, or any element located by CSS|XPath|strict locator.
367
+ - `context` ([string][8] \| [object][6]) (optional, `null` by default) element to search in CSS|XPath|Strict locator.
367
368
 
368
369
 
369
370
 
@@ -381,8 +382,8 @@ I.clickLink('Logout', '#nav');
381
382
 
382
383
  #### Parameters
383
384
 
384
- - `locator` ([string][9] \| [object][7]) clickable link or button located by text, or any element located by CSS|XPath|strict locator
385
- - `context` ([string][9] \| [object][7]) (optional, `null` by default) element to search in CSS|XPath|Strict locator
385
+ - `locator` ([string][8] \| [object][6]) clickable link or button located by text, or any element located by CSS|XPath|strict locator
386
+ - `context` ([string][8] \| [object][6]) (optional, `null` by default) element to search in CSS|XPath|Strict locator
386
387
 
387
388
 
388
389
 
@@ -418,8 +419,8 @@ I.dontSee('Login', '.nav'); // no login inside .nav element
418
419
 
419
420
  #### Parameters
420
421
 
421
- - `text` [string][9] which is not present.
422
- - `context` ([string][9] \| [object][7]) (optional) element located by CSS|XPath|strict locator in which to perfrom search.
422
+ - `text` [string][8] which is not present.
423
+ - `context` ([string][8] \| [object][6]) (optional) element located by CSS|XPath|strict locator in which to perfrom search.
423
424
 
424
425
 
425
426
 
@@ -438,7 +439,7 @@ I.dontSeeeCheckboxIsChedcked('agree'); // located by name
438
439
 
439
440
  #### Parameters
440
441
 
441
- - `field` ([string][9] \| [object][7]) located by label|name|CSS|XPath|strict locator.
442
+ - `field` ([string][8] \| [object][6]) located by label|name|CSS|XPath|strict locator.
442
443
 
443
444
 
444
445
 
@@ -452,7 +453,7 @@ I.dontSeeCookie('auth'); // no auth cookie
452
453
 
453
454
  #### Parameters
454
455
 
455
- - `name` [string][9] cookie name.
456
+ - `name` [string][8] cookie name.
456
457
 
457
458
 
458
459
 
@@ -468,7 +469,7 @@ I.dontSeeCurrentUrlEquals('http://mysite.com/login'); // absolute urls are also
468
469
 
469
470
  #### Parameters
470
471
 
471
- - `url` [string][9] value to check.
472
+ - `url` [string][8] value to check.
472
473
 
473
474
 
474
475
 
@@ -482,7 +483,7 @@ I.dontSeeElement('.modal'); // modal is not shown
482
483
 
483
484
  #### Parameters
484
485
 
485
- - `locator` ([string][9] \| [object][7]) located by CSS|XPath|Strict locator.
486
+ - `locator` ([string][8] \| [object][6]) located by CSS|XPath|Strict locator.
486
487
 
487
488
 
488
489
 
@@ -501,7 +502,7 @@ I.dontSeeElementInDOM('.nav'); // checks that element is not on page visible or
501
502
 
502
503
  #### Parameters
503
504
 
504
- - `locator` ([string][9] \| [object][7]) located by CSS|XPath|Strict locator.
505
+ - `locator` ([string][8] \| [object][6]) located by CSS|XPath|Strict locator.
505
506
 
506
507
 
507
508
 
@@ -511,7 +512,7 @@ Checks that current url does not contain a provided fragment.
511
512
 
512
513
  #### Parameters
513
514
 
514
- - `url` [string][9] value to check.
515
+ - `url` [string][8] value to check.
515
516
 
516
517
 
517
518
 
@@ -527,8 +528,8 @@ I.dontSeeInField({ css: 'form input.email' }, 'user@user.com'); // field by CSS
527
528
 
528
529
  #### Parameters
529
530
 
530
- - `field` ([string][9] \| [object][7]) located by label|name|CSS|XPath|strict locator.
531
- - `value` [string][9] value to check.
531
+ - `field` ([string][8] \| [object][6]) located by label|name|CSS|XPath|strict locator.
532
+ - `value` [string][8] value to check.
532
533
 
533
534
 
534
535
 
@@ -543,7 +544,7 @@ I.dontSeeInSource('<!--'); // no comments in source
543
544
  #### Parameters
544
545
 
545
546
  - `text`
546
- - `value` [string][9] to check.
547
+ - `value` [string][8] to check.
547
548
 
548
549
 
549
550
 
@@ -557,7 +558,7 @@ I.dontSeeInTitle('Error');
557
558
 
558
559
  #### Parameters
559
560
 
560
- - `text` [string][9] value to check.
561
+ - `text` [string][8] value to check.
561
562
 
562
563
 
563
564
 
@@ -575,8 +576,8 @@ I.doubleClick('.btn.edit');
575
576
 
576
577
  #### Parameters
577
578
 
578
- - `locator` ([string][9] \| [object][7]) clickable link or button located by text, or any element located by CSS|XPath|strict locator.
579
- - `context` ([string][9] \| [object][7]) (optional, `null` by default) element to search in CSS|XPath|Strict locator.
579
+ - `locator` ([string][8] \| [object][6]) clickable link or button located by text, or any element located by CSS|XPath|strict locator.
580
+ - `context` ([string][8] \| [object][6]) (optional, `null` by default) element to search in CSS|XPath|Strict locator.
580
581
 
581
582
 
582
583
 
@@ -605,8 +606,8 @@ I.dragAndDrop('#dragHandle', '#container');
605
606
 
606
607
  #### Parameters
607
608
 
608
- - `srcElement` ([string][9] \| [object][7]) located by CSS|XPath|strict locator.
609
- - `destElement` ([string][9] \| [object][7]) located by CSS|XPath|strict locator.
609
+ - `srcElement` ([string][8] \| [object][6]) located by CSS|XPath|strict locator.
610
+ - `destElement` ([string][8] \| [object][6]) located by CSS|XPath|strict locator.
610
611
 
611
612
 
612
613
 
@@ -622,8 +623,8 @@ I.dragSlider('#slider', -70);
622
623
 
623
624
  #### Parameters
624
625
 
625
- - `locator` ([string][9] \| [object][7]) located by label|name|CSS|XPath|strict locator.
626
- - `offsetX` [number][10] position to drag.
626
+ - `locator` ([string][8] \| [object][6]) located by label|name|CSS|XPath|strict locator.
627
+ - `offsetX` [number][9] position to drag.
627
628
 
628
629
 
629
630
 
@@ -637,7 +638,7 @@ This action supports [React locators](https://codecept.io/react#locators)
637
638
  Executes async script on page.
638
639
  Provided function should execute a passed callback (as first argument) to signal it is finished.
639
640
 
640
- Example: In Vue.js to make components completely rendered we are waiting for [nextTick][11].
641
+ Example: In Vue.js to make components completely rendered we are waiting for [nextTick][10].
641
642
 
642
643
  ```js
643
644
  I.executeAsyncScript(function(done) {
@@ -657,7 +658,7 @@ let val = await I.executeAsyncScript(function(url, done) {
657
658
 
658
659
  #### Parameters
659
660
 
660
- - `fn` ([string][9] \| [function][12]) function to be executed in browser context.
661
+ - `fn` ([string][8] \| [function][11]) function to be executed in browser context.
661
662
 
662
663
  ### executeScript
663
664
 
@@ -687,7 +688,7 @@ let date = await I.executeScript(function(el) {
687
688
 
688
689
  #### Parameters
689
690
 
690
- - `fn` ([string][9] \| [function][12]) function to be executed in browser context.
691
+ - `fn` ([string][8] \| [function][11]) function to be executed in browser context.
691
692
 
692
693
  ### fillField
693
694
 
@@ -707,8 +708,8 @@ I.fillField({css: 'form#login input[name=username]'}, 'John');
707
708
 
708
709
  #### Parameters
709
710
 
710
- - `field` ([string][9] \| [object][7]) located by label|name|CSS|XPath|strict locator.
711
- - `value` [string][9] text value to fill.
711
+ - `field` ([string][8] \| [object][6]) located by label|name|CSS|XPath|strict locator.
712
+ - `value` [string][8] text value to fill.
712
713
 
713
714
 
714
715
 
@@ -729,10 +730,10 @@ let hint = await I.grabAttributeFrom('#tooltip', 'title');
729
730
 
730
731
  #### Parameters
731
732
 
732
- - `locator` ([string][9] \| [object][7]) element located by CSS|XPath|strict locator.
733
- - `attr` [string][9] attribute name.
733
+ - `locator` ([string][8] \| [object][6]) element located by CSS|XPath|strict locator.
734
+ - `attr` [string][8] attribute name.
734
735
 
735
- Returns [Promise][13]&lt;[string][9]> attribute value
736
+ Returns [Promise][12]&lt;[string][8]> attribute value
736
737
 
737
738
 
738
739
 
@@ -766,7 +767,7 @@ assert(cookie.value, '123456');
766
767
 
767
768
  - `name` cookie name.
768
769
 
769
- Returns [Promise][13]&lt;[string][9]> attribute value
770
+ Returns [Promise][12]&lt;[string][8]> attribute value
770
771
 
771
772
  Returns cookie in JSON format. If name not passed returns all cookies for this domain.
772
773
 
@@ -781,10 +782,10 @@ const value = await I.grabCssPropertyFrom('h3', 'font-weight');
781
782
 
782
783
  #### Parameters
783
784
 
784
- - `locator` ([string][9] \| [object][7]) element located by CSS|XPath|strict locator.
785
- - `cssProperty` [string][9] CSS property name.
785
+ - `locator` ([string][8] \| [object][6]) element located by CSS|XPath|strict locator.
786
+ - `cssProperty` [string][8] CSS property name.
786
787
 
787
- Returns [Promise][13]&lt;[string][9]> CSS value
788
+ Returns [Promise][12]&lt;[string][8]> CSS value
788
789
 
789
790
 
790
791
 
@@ -803,7 +804,7 @@ let url = await I.grabCurrentUrl();
803
804
  console.log(`Current URL is [${url}]`);
804
805
  ```
805
806
 
806
- Returns [Promise][13]&lt;[string][9]> current URL
807
+ Returns [Promise][12]&lt;[string][8]> current URL
807
808
 
808
809
 
809
810
 
@@ -847,7 +848,7 @@ let postHTML = await I.grabHTMLFrom('#post');
847
848
 
848
849
  - `locator` element located by CSS|XPath|strict locator.
849
850
 
850
- Returns [Promise][13]&lt;[string][9]> HTML code for an element
851
+ Returns [Promise][12]&lt;[string][8]> HTML code for an element
851
852
 
852
853
 
853
854
 
@@ -859,7 +860,7 @@ Grab number of open tabs.
859
860
  let tabs = await I.grabNumberOfOpenTabs();
860
861
  ```
861
862
 
862
- Returns [Promise][13]&lt;[number][10]> number of open tabs
863
+ Returns [Promise][12]&lt;[number][9]> number of open tabs
863
864
 
864
865
 
865
866
 
@@ -873,9 +874,9 @@ let numOfElements = await I.grabNumberOfVisibleElements('p');
873
874
 
874
875
  #### Parameters
875
876
 
876
- - `locator` ([string][9] \| [object][7]) located by CSS|XPath|strict locator.
877
+ - `locator` ([string][8] \| [object][6]) located by CSS|XPath|strict locator.
877
878
 
878
- Returns [Promise][13]&lt;[number][10]> number of visible elements
879
+ Returns [Promise][12]&lt;[number][9]> number of visible elements
879
880
 
880
881
 
881
882
 
@@ -893,7 +894,7 @@ Resumes test execution, so should be used inside an async function with `await`
893
894
  let { x, y } = await I.grabPageScrollPosition();
894
895
  ```
895
896
 
896
- Returns [Promise][13]&lt;[object][7]> scroll position
897
+ Returns [Promise][12]&lt;[object][6]> scroll position
897
898
 
898
899
 
899
900
 
@@ -914,7 +915,7 @@ Resumes test execution, so should be used inside an async function.
914
915
  let pageSource = await I.grabSource();
915
916
  ```
916
917
 
917
- Returns [Promise][13]&lt;[string][9]> source code
918
+ Returns [Promise][12]&lt;[string][8]> source code
918
919
 
919
920
 
920
921
 
@@ -933,7 +934,7 @@ If multiple elements found returns an array of texts.
933
934
 
934
935
  - `locator` element located by CSS|XPath|strict locator.
935
936
 
936
- Returns [Promise][13]&lt;[string][9]> attribute value
937
+ Returns [Promise][12]&lt;[string][8]> attribute value
937
938
 
938
939
 
939
940
 
@@ -951,7 +952,7 @@ Resumes test execution, so should be used inside async with `await` operator.
951
952
  let title = await I.grabTitle();
952
953
  ```
953
954
 
954
- Returns [Promise][13]&lt;[string][9]> title
955
+ Returns [Promise][12]&lt;[string][8]> title
955
956
 
956
957
 
957
958
 
@@ -966,16 +967,16 @@ let email = await I.grabValueFrom('input[name=email]');
966
967
 
967
968
  #### Parameters
968
969
 
969
- - `locator` ([string][9] \| [object][7]) field located by label|name|CSS|XPath|strict locator.
970
+ - `locator` ([string][8] \| [object][6]) field located by label|name|CSS|XPath|strict locator.
970
971
 
971
- Returns [Promise][13]&lt;[string][9]> attribute value
972
+ Returns [Promise][12]&lt;[string][8]> attribute value
972
973
 
973
974
 
974
975
 
975
976
  ### handleDownloads
976
977
 
977
978
  Sets a directory to where save files. Allows to test file downloads.
978
- Should be used with [FileSystem helper][14] to check that file were downloaded correctly.
979
+ Should be used with [FileSystem helper][13] to check that file were downloaded correctly.
979
980
 
980
981
  By default files are saved to `output/downloads`.
981
982
  This directory is cleaned on every `handleDownloads` call, to ensure no old files are kept.
@@ -989,7 +990,7 @@ I.seeFile('avatar.jpg');
989
990
 
990
991
  #### Parameters
991
992
 
992
- - `downloadPath` [string][9] change this parameter to set another directory for saving
993
+ - `downloadPath` [string][8] change this parameter to set another directory for saving
993
994
 
994
995
  ### haveRequestHeaders
995
996
 
@@ -1003,7 +1004,7 @@ I.haveRequestHeaders({
1003
1004
 
1004
1005
  #### Parameters
1005
1006
 
1006
- - `customHeaders` [object][7] headers to set
1007
+ - `customHeaders` [object][6] headers to set
1007
1008
 
1008
1009
  ### moveCursorTo
1009
1010
 
@@ -1017,9 +1018,9 @@ I.moveCursorTo('#submit', 5,5);
1017
1018
 
1018
1019
  #### Parameters
1019
1020
 
1020
- - `locator` ([string][9] \| [object][7]) located by CSS|XPath|strict locator.
1021
- - `offsetX` [number][10] (optional, `0` by default) X-axis offset.
1022
- - `offsetY` [number][10] (optional, `0` by default) Y-axis offset.
1021
+ - `locator` ([string][8] \| [object][6]) located by CSS|XPath|strict locator.
1022
+ - `offsetX` [number][9] (optional, `0` by default) X-axis offset.
1023
+ - `offsetY` [number][9] (optional, `0` by default) Y-axis offset.
1023
1024
 
1024
1025
 
1025
1026
 
@@ -1039,7 +1040,7 @@ I.openNewTab();
1039
1040
  ### pressKey
1040
1041
 
1041
1042
  Presses a key on a focused element.
1042
- Special keys like 'Enter', 'Control', [etc][15]
1043
+ Special keys like 'Enter', 'Control', [etc][14]
1043
1044
  will be replaced with corresponding unicode.
1044
1045
  If modifier key is used (Control, Command, Alt, Shift) in array, it will be released afterwards.
1045
1046
 
@@ -1050,7 +1051,7 @@ I.pressKey(['Control','a']);
1050
1051
 
1051
1052
  #### Parameters
1052
1053
 
1053
- - `key` ([string][9] \| [array][16]) key or array of keys to press.
1054
+ - `key` ([string][8] \| [array][15]) key or array of keys to press.
1054
1055
 
1055
1056
 
1056
1057
 
@@ -1105,8 +1106,8 @@ First parameter can be set to `maximize`.
1105
1106
 
1106
1107
  #### Parameters
1107
1108
 
1108
- - `width` [number][10] width in pixels or `maximize`.
1109
- - `height` [number][10] height in pixels.
1109
+ - `width` [number][9] width in pixels or `maximize`.
1110
+ - `height` [number][9] height in pixels.
1110
1111
 
1111
1112
  Unlike other drivers Puppeteer changes the size of a viewport, not the window!
1112
1113
  Puppeteer does not control the window of a browser so it can't adjust its real size.
@@ -1127,8 +1128,8 @@ I.rightClick('Click me', '.context');
1127
1128
 
1128
1129
  #### Parameters
1129
1130
 
1130
- - `locator` ([string][9] \| [object][7]) clickable element located by CSS|XPath|strict locator.
1131
- - `context` ([string][9] \| [object][7]) (optional, `null` by default) element located by CSS|XPath|strict locator.
1131
+ - `locator` ([string][8] \| [object][6]) clickable element located by CSS|XPath|strict locator.
1132
+ - `context` ([string][8] \| [object][6]) (optional, `null` by default) element located by CSS|XPath|strict locator.
1132
1133
 
1133
1134
 
1134
1135
 
@@ -1149,8 +1150,8 @@ I.saveScreenshot('debug.png', true) //resizes to available scrollHeight and scro
1149
1150
 
1150
1151
  #### Parameters
1151
1152
 
1152
- - `fileName` [string][9] file name to save.
1153
- - `fullPage` [boolean][17] (optional, `false` by default) flag to enable fullscreen screenshot mode.
1153
+ - `fileName` [string][8] file name to save.
1154
+ - `fullPage` [boolean][16] (optional, `false` by default) flag to enable fullscreen screenshot mode.
1154
1155
 
1155
1156
 
1156
1157
 
@@ -1188,9 +1189,9 @@ I.scrollTo('#submit', 5, 5);
1188
1189
 
1189
1190
  #### Parameters
1190
1191
 
1191
- - `locator` ([string][9] \| [object][7]) located by CSS|XPath|strict locator.
1192
- - `offsetX` [number][10] (optional, `0` by default) X-axis offset.
1193
- - `offsetY` [number][10] (optional, `0` by default) Y-axis offset.
1192
+ - `locator` ([string][8] \| [object][6]) located by CSS|XPath|strict locator.
1193
+ - `offsetX` [number][9] (optional, `0` by default) X-axis offset.
1194
+ - `offsetY` [number][9] (optional, `0` by default) Y-axis offset.
1194
1195
 
1195
1196
 
1196
1197
 
@@ -1207,8 +1208,8 @@ I.see('Register', {css: 'form.register'}); // use strict locator
1207
1208
 
1208
1209
  #### Parameters
1209
1210
 
1210
- - `text` [string][9] expected on page.
1211
- - `context` ([string][9] \| [object][7]) (optional, `null` by default) element located by CSS|Xpath|strict locator in which to search for text.
1211
+ - `text` [string][8] expected on page.
1212
+ - `context` ([string][8] \| [object][6]) (optional, `null` by default) element located by CSS|Xpath|strict locator in which to search for text.
1212
1213
 
1213
1214
 
1214
1215
 
@@ -1226,8 +1227,8 @@ I.seeAttributesOnElements('//form', { method: "post"});
1226
1227
 
1227
1228
  #### Parameters
1228
1229
 
1229
- - `locator` ([string][9] \| [object][7]) located by CSS|XPath|strict locator.
1230
- - `attributes` [object][7] attributes and their values to check.
1230
+ - `locator` ([string][8] \| [object][6]) located by CSS|XPath|strict locator.
1231
+ - `attributes` [object][6] attributes and their values to check.
1231
1232
 
1232
1233
 
1233
1234
 
@@ -1248,7 +1249,7 @@ I.seeCheckboxIsChecked({css: '#signup_form input[type=checkbox]'});
1248
1249
 
1249
1250
  #### Parameters
1250
1251
 
1251
- - `field` ([string][9] \| [object][7]) located by label|name|CSS|XPath|strict locator.
1252
+ - `field` ([string][8] \| [object][6]) located by label|name|CSS|XPath|strict locator.
1252
1253
 
1253
1254
 
1254
1255
 
@@ -1262,7 +1263,7 @@ I.seeCookie('Auth');
1262
1263
 
1263
1264
  #### Parameters
1264
1265
 
1265
- - `name` [string][9] cookie name.
1266
+ - `name` [string][8] cookie name.
1266
1267
 
1267
1268
 
1268
1269
 
@@ -1276,8 +1277,8 @@ I.seeCssPropertiesOnElements('h3', { 'font-weight': "bold"});
1276
1277
 
1277
1278
  #### Parameters
1278
1279
 
1279
- - `locator` ([string][9] \| [object][7]) located by CSS|XPath|strict locator.
1280
- - `cssProperties` [object][7] object with CSS properties and their values to check.
1280
+ - `locator` ([string][8] \| [object][6]) located by CSS|XPath|strict locator.
1281
+ - `cssProperties` [object][6] object with CSS properties and their values to check.
1281
1282
 
1282
1283
 
1283
1284
 
@@ -1299,7 +1300,7 @@ I.seeCurrentUrlEquals('http://my.site.com/register');
1299
1300
 
1300
1301
  #### Parameters
1301
1302
 
1302
- - `url` [string][9] value to check.
1303
+ - `url` [string][8] value to check.
1303
1304
 
1304
1305
 
1305
1306
 
@@ -1314,7 +1315,7 @@ I.seeElement('#modal');
1314
1315
 
1315
1316
  #### Parameters
1316
1317
 
1317
- - `locator` ([string][9] \| [object][7]) located by CSS|XPath|strict locator.
1318
+ - `locator` ([string][8] \| [object][6]) located by CSS|XPath|strict locator.
1318
1319
 
1319
1320
 
1320
1321
 
@@ -1334,7 +1335,7 @@ I.seeElementInDOM('#modal');
1334
1335
 
1335
1336
  #### Parameters
1336
1337
 
1337
- - `locator` ([string][9] \| [object][7]) element located by CSS|XPath|strict locator.
1338
+ - `locator` ([string][8] \| [object][6]) element located by CSS|XPath|strict locator.
1338
1339
 
1339
1340
 
1340
1341
 
@@ -1348,7 +1349,7 @@ I.seeInCurrentUrl('/register'); // we are on registration page
1348
1349
 
1349
1350
  #### Parameters
1350
1351
 
1351
- - `url` [string][9] a fragment to check
1352
+ - `url` [string][8] a fragment to check
1352
1353
 
1353
1354
 
1354
1355
 
@@ -1366,8 +1367,8 @@ I.seeInField('#searchform input','Search');
1366
1367
 
1367
1368
  #### Parameters
1368
1369
 
1369
- - `field` ([string][9] \| [object][7]) located by label|name|CSS|XPath|strict locator.
1370
- - `value` [string][9] value to check.
1370
+ - `field` ([string][8] \| [object][6]) located by label|name|CSS|XPath|strict locator.
1371
+ - `value` [string][8] value to check.
1371
1372
 
1372
1373
 
1373
1374
 
@@ -1390,7 +1391,7 @@ I.seeInSource('<h1>Green eggs &amp; ham</h1>');
1390
1391
 
1391
1392
  #### Parameters
1392
1393
 
1393
- - `text` [string][9] value to check.
1394
+ - `text` [string][8] value to check.
1394
1395
 
1395
1396
 
1396
1397
 
@@ -1404,7 +1405,7 @@ I.seeInTitle('Home Page');
1404
1405
 
1405
1406
  #### Parameters
1406
1407
 
1407
- - `text` [string][9] text value to check.
1408
+ - `text` [string][8] text value to check.
1408
1409
 
1409
1410
 
1410
1411
 
@@ -1419,8 +1420,8 @@ I.seeNumberOfElements('#submitBtn', 1);
1419
1420
 
1420
1421
  #### Parameters
1421
1422
 
1422
- - `locator` ([string][9] \| [object][7]) element located by CSS|XPath|strict locator.
1423
- - `num` [number][10] number of elements.
1423
+ - `locator` ([string][8] \| [object][6]) element located by CSS|XPath|strict locator.
1424
+ - `num` [number][9] number of elements.
1424
1425
 
1425
1426
 
1426
1427
 
@@ -1439,8 +1440,8 @@ I.seeNumberOfVisibleElements('.buttons', 3);
1439
1440
 
1440
1441
  #### Parameters
1441
1442
 
1442
- - `locator` ([string][9] \| [object][7]) element located by CSS|XPath|strict locator.
1443
- - `num` [number][10] number of elements.
1443
+ - `locator` ([string][8] \| [object][6]) element located by CSS|XPath|strict locator.
1444
+ - `num` [number][9] number of elements.
1444
1445
 
1445
1446
 
1446
1447
 
@@ -1496,8 +1497,8 @@ I.selectOption('Which OS do you use?', ['Android', 'iOS']);
1496
1497
 
1497
1498
  #### Parameters
1498
1499
 
1499
- - `select` ([string][9] \| [object][7]) field located by label|name|CSS|XPath|strict locator.
1500
- - `option` ([string][9] \| [array][16]) visible text or value of option.
1500
+ - `select` ([string][8] \| [object][6]) field located by label|name|CSS|XPath|strict locator.
1501
+ - `option` ([string][8] \| [array][15]) visible text or value of option.
1501
1502
 
1502
1503
 
1503
1504
 
@@ -1511,7 +1512,7 @@ I.setCookie({name: 'auth', value: true});
1511
1512
 
1512
1513
  #### Parameters
1513
1514
 
1514
- - `cookie` [object][7] a cookie object.
1515
+ - `cookie` [object][6] a cookie object.
1515
1516
 
1516
1517
 
1517
1518
 
@@ -1526,7 +1527,7 @@ I.switchTo(); // switch back to main page
1526
1527
 
1527
1528
  #### Parameters
1528
1529
 
1529
- - `locator` ([string][9] \| [object][7]) (optional, `null` by default) element located by CSS|XPath|strict locator.
1530
+ - `locator` ([string][8] \| [object][6]) (optional, `null` by default) element located by CSS|XPath|strict locator.
1530
1531
 
1531
1532
 
1532
1533
 
@@ -1541,7 +1542,7 @@ I.switchToNextTab(2);
1541
1542
 
1542
1543
  #### Parameters
1543
1544
 
1544
- - `num` [number][10]
1545
+ - `num` [number][9]
1545
1546
 
1546
1547
  ### switchToPreviousTab
1547
1548
 
@@ -1554,7 +1555,7 @@ I.switchToPreviousTab(2);
1554
1555
 
1555
1556
  #### Parameters
1556
1557
 
1557
- - `num` [number][10]
1558
+ - `num` [number][9]
1558
1559
 
1559
1560
  ### uncheckOption
1560
1561
 
@@ -1571,8 +1572,8 @@ I.uncheckOption('agree', '//form');
1571
1572
 
1572
1573
  #### Parameters
1573
1574
 
1574
- - `field` ([string][9] \| [object][7]) checkbox located by label | name | CSS | XPath | strict locator.
1575
- - `context` [string][9] (optional, `null` by default) element located by CSS | XPath | strict locator.
1575
+ - `field` ([string][8] \| [object][6]) checkbox located by label | name | CSS | XPath | strict locator.
1576
+ - `context` [string][8] (optional, `null` by default) element located by CSS | XPath | strict locator.
1576
1577
 
1577
1578
 
1578
1579
 
@@ -1586,7 +1587,7 @@ I.wait(2); // wait 2 secs
1586
1587
 
1587
1588
  #### Parameters
1588
1589
 
1589
- - `sec` [number][10] number of second to wait.
1590
+ - `sec` [number][9] number of second to wait.
1590
1591
 
1591
1592
 
1592
1593
 
@@ -1601,8 +1602,8 @@ I.waitForDetached('#popup');
1601
1602
 
1602
1603
  #### Parameters
1603
1604
 
1604
- - `locator` ([string][9] \| [object][7]) element located by CSS|XPath|strict locator.
1605
- - `sec` [number][10] (optional, `1` by default) time in seconds to wait
1605
+ - `locator` ([string][8] \| [object][6]) element located by CSS|XPath|strict locator.
1606
+ - `sec` [number][9] (optional, `1` by default) time in seconds to wait
1606
1607
 
1607
1608
 
1608
1609
 
@@ -1618,8 +1619,8 @@ I.waitForElement('.btn.continue', 5); // wait for 5 secs
1618
1619
 
1619
1620
  #### Parameters
1620
1621
 
1621
- - `locator` ([string][9] \| [object][7]) element located by CSS|XPath|strict locator.
1622
- - `sec` [number][10] (optional, `1` by default) time in seconds to wait
1622
+ - `locator` ([string][8] \| [object][6]) element located by CSS|XPath|strict locator.
1623
+ - `sec` [number][9] (optional, `1` by default) time in seconds to wait
1623
1624
 
1624
1625
 
1625
1626
 
@@ -1635,7 +1636,7 @@ Element can be located by CSS or XPath.
1635
1636
 
1636
1637
  #### Parameters
1637
1638
 
1638
- - `locator` ([string][9] \| [object][7]) element located by CSS|XPath|strict locator.
1639
+ - `locator` ([string][8] \| [object][6]) element located by CSS|XPath|strict locator.
1639
1640
  - `sec` (optional) time in seconds to wait, 1 by default.
1640
1641
 
1641
1642
 
@@ -1657,9 +1658,9 @@ I.waitForFunction((count) => window.requests == count, [3], 5) // pass args and
1657
1658
 
1658
1659
  #### Parameters
1659
1660
 
1660
- - `fn` ([string][9] \| [function][12]) to be executed in browser context.
1661
- - `argsOrSec` ([array][16] \| [number][10]) (optional, `1` by default) arguments for function or seconds.
1662
- - `sec` [number][10] (optional, `1` by default) time in seconds to wait
1661
+ - `fn` ([string][8] \| [function][11]) to be executed in browser context.
1662
+ - `argsOrSec` ([array][15] \| [number][9]) (optional, `1` by default) arguments for function or seconds.
1663
+ - `sec` [number][9] (optional, `1` by default) time in seconds to wait
1663
1664
 
1664
1665
 
1665
1666
 
@@ -1674,8 +1675,8 @@ I.waitForInvisible('#popup');
1674
1675
 
1675
1676
  #### Parameters
1676
1677
 
1677
- - `locator` ([string][9] \| [object][7]) element located by CSS|XPath|strict locator.
1678
- - `sec` [number][10] (optional, `1` by default) time in seconds to wait
1678
+ - `locator` ([string][8] \| [object][6]) element located by CSS|XPath|strict locator.
1679
+ - `sec` [number][9] (optional, `1` by default) time in seconds to wait
1679
1680
 
1680
1681
 
1681
1682
 
@@ -1700,8 +1701,8 @@ I.waitForRequest(request => request.url() === 'http://example.com' && request.me
1700
1701
 
1701
1702
  #### Parameters
1702
1703
 
1703
- - `urlOrPredicate` ([string][9] \| [function][12])
1704
- - `sec` [number][10]? seconds to wait
1704
+ - `urlOrPredicate` ([string][8] \| [function][11])
1705
+ - `sec` [number][9]? seconds to wait
1705
1706
 
1706
1707
  ### waitForResponse
1707
1708
 
@@ -1714,8 +1715,8 @@ I.waitForResponse(request => request.url() === 'http://example.com' && request.m
1714
1715
 
1715
1716
  #### Parameters
1716
1717
 
1717
- - `urlOrPredicate` ([string][9] \| [function][12])
1718
- - `sec` [number][10]? number of seconds to wait
1718
+ - `urlOrPredicate` ([string][8] \| [function][11])
1719
+ - `sec` [number][9]? number of seconds to wait
1719
1720
 
1720
1721
  ### waitForText
1721
1722
 
@@ -1730,9 +1731,9 @@ I.waitForText('Thank you, form has been submitted', 5, '#modal');
1730
1731
 
1731
1732
  #### Parameters
1732
1733
 
1733
- - `text` [string][9] to wait for.
1734
- - `sec` [number][10] (optional, `1` by default) time in seconds to wait
1735
- - `context` ([string][9] \| [object][7]) (optional) element located by CSS|XPath|strict locator.
1734
+ - `text` [string][8] to wait for.
1735
+ - `sec` [number][9] (optional, `1` by default) time in seconds to wait
1736
+ - `context` ([string][8] \| [object][6]) (optional) element located by CSS|XPath|strict locator.
1736
1737
 
1737
1738
 
1738
1739
 
@@ -1746,9 +1747,9 @@ I.waitForValue('//input', "GoodValue");
1746
1747
 
1747
1748
  #### Parameters
1748
1749
 
1749
- - `field` ([string][9] \| [object][7]) input field.
1750
- - `value` [string][9] expected value.
1751
- - `sec` [number][10] (optional, `1` by default) time in seconds to wait
1750
+ - `field` ([string][8] \| [object][6]) input field.
1751
+ - `value` [string][8] expected value.
1752
+ - `sec` [number][9] (optional, `1` by default) time in seconds to wait
1752
1753
 
1753
1754
 
1754
1755
 
@@ -1763,10 +1764,10 @@ I.waitForVisible('#popup');
1763
1764
 
1764
1765
  #### Parameters
1765
1766
 
1766
- - `locator` ([string][9] \| [object][7]) element located by CSS|XPath|strict locator.
1767
- - `sec` [number][10] (optional, `1` by default) time in seconds to wait
1767
+ - `locator` ([string][8] \| [object][6]) element located by CSS|XPath|strict locator.
1768
+ - `sec` [number][9] (optional, `1` by default) time in seconds to wait
1768
1769
 
1769
- This method accepts [React selectors][18].
1770
+ This method accepts [React selectors][17].
1770
1771
 
1771
1772
  ### waitInUrl
1772
1773
 
@@ -1778,8 +1779,8 @@ I.waitInUrl('/info', 2);
1778
1779
 
1779
1780
  #### Parameters
1780
1781
 
1781
- - `urlPart` [string][9] value to check.
1782
- - `sec` [number][10] (optional, `1` by default) time in seconds to wait
1782
+ - `urlPart` [string][8] value to check.
1783
+ - `sec` [number][9] (optional, `1` by default) time in seconds to wait
1783
1784
 
1784
1785
 
1785
1786
 
@@ -1793,9 +1794,9 @@ I.waitNumberOfVisibleElements('a', 3);
1793
1794
 
1794
1795
  #### Parameters
1795
1796
 
1796
- - `locator` ([string][9] \| [object][7]) element located by CSS|XPath|strict locator.
1797
- - `num` [number][10] number of elements.
1798
- - `sec` [number][10] (optional, `1` by default) time in seconds to wait
1797
+ - `locator` ([string][8] \| [object][6]) element located by CSS|XPath|strict locator.
1798
+ - `num` [number][9] number of elements.
1799
+ - `sec` [number][9] (optional, `1` by default) time in seconds to wait
1799
1800
 
1800
1801
 
1801
1802
 
@@ -1815,8 +1816,8 @@ I.waitToHide('#popup');
1815
1816
 
1816
1817
  #### Parameters
1817
1818
 
1818
- - `locator` ([string][9] \| [object][7]) element located by CSS|XPath|strict locator.
1819
- - `sec` [number][10] (optional, `1` by default) time in seconds to wait
1819
+ - `locator` ([string][8] \| [object][6]) element located by CSS|XPath|strict locator.
1820
+ - `sec` [number][9] (optional, `1` by default) time in seconds to wait
1820
1821
 
1821
1822
 
1822
1823
 
@@ -1831,9 +1832,9 @@ I.waitUntil(() => window.requests == 0, 5);
1831
1832
 
1832
1833
  #### Parameters
1833
1834
 
1834
- - `fn` ([function][12] \| [string][9]) function which is executed in browser context.
1835
- - `sec` [number][10] (optional, `1` by default) time in seconds to wait
1836
- - `timeoutMsg` [string][9] message to show in case of timeout fail.
1835
+ - `fn` ([function][11] \| [string][8]) function which is executed in browser context.
1836
+ - `sec` [number][9] (optional, `1` by default) time in seconds to wait
1837
+ - `timeoutMsg` [string][8] message to show in case of timeout fail.
1837
1838
 
1838
1839
 
1839
1840
 
@@ -1848,8 +1849,8 @@ I.waitUrlEquals('http://127.0.0.1:8000/info');
1848
1849
 
1849
1850
  #### Parameters
1850
1851
 
1851
- - `urlPart` [string][9] value to check.
1852
- - `sec` [number][10] (optional, `1` by default) time in seconds to wait
1852
+ - `urlPart` [string][8] value to check.
1853
+ - `sec` [number][9] (optional, `1` by default) time in seconds to wait
1853
1854
 
1854
1855
 
1855
1856
 
@@ -1859,32 +1860,30 @@ I.waitUrlEquals('http://127.0.0.1:8000/info');
1859
1860
 
1860
1861
  [3]: https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#pagewaitfornavigationoptions
1861
1862
 
1862
- [4]: (https://codecept.io/helpers/Puppeteer-firefox)
1863
+ [4]: https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#puppeteerlaunchoptions
1863
1864
 
1864
- [5]: https://github.com/GoogleChrome/puppeteer/blob/master/docs/api.md#puppeteerlaunchoptions
1865
+ [5]: https://chromedevtools.github.io/devtools-protocol/#how-do-i-access-the-browser-target
1865
1866
 
1866
- [6]: https://chromedevtools.github.io/devtools-protocol/#how-do-i-access-the-browser-target
1867
+ [6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object
1867
1868
 
1868
- [7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object
1869
+ [7]: http://jster.net/category/windows-modals-popups
1869
1870
 
1870
- [8]: http://jster.net/category/windows-modals-popups
1871
+ [8]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
1871
1872
 
1872
- [9]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
1873
+ [9]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
1873
1874
 
1874
- [10]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
1875
+ [10]: https://vuejs.org/v2/api/#Vue-nextTick
1875
1876
 
1876
- [11]: https://vuejs.org/v2/api/#Vue-nextTick
1877
+ [11]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function
1877
1878
 
1878
- [12]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function
1879
+ [12]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise
1879
1880
 
1880
- [13]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise
1881
+ [13]: https://codecept.io/helpers/FileSystem
1881
1882
 
1882
- [14]: https://codecept.io/helpers/FileSystem
1883
+ [14]: https://code.google.com/p/selenium/wiki/JsonWireProtocol#/session/:sessionId/element/:id/value
1883
1884
 
1884
- [15]: https://code.google.com/p/selenium/wiki/JsonWireProtocol#/session/:sessionId/element/:id/value
1885
+ [15]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array
1885
1886
 
1886
- [16]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array
1887
+ [16]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean
1887
1888
 
1888
- [17]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean
1889
-
1890
- [18]: https://codecept.io/react
1889
+ [17]: https://codecept.io/react