codeceptjs 3.5.8 → 3.5.9-beta.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.
- package/README.md +1 -1
- package/docs/build/Appium.js +24 -24
- package/docs/build/Nightmare.js +51 -52
- package/docs/build/Playwright.js +137 -76
- package/docs/build/Protractor.js +64 -65
- package/docs/build/Puppeteer.js +74 -75
- package/docs/build/TestCafe.js +54 -55
- package/docs/build/WebDriver.js +79 -80
- package/docs/changelog.md +1 -571
- package/docs/community-helpers.md +4 -8
- package/docs/examples.md +2 -8
- package/docs/helpers/Appium.md +19 -19
- package/docs/helpers/Nightmare.md +75 -77
- package/docs/helpers/Playwright.md +350 -314
- package/docs/helpers/Protractor.md +153 -155
- package/docs/helpers/Puppeteer.md +146 -148
- package/docs/helpers/TestCafe.md +124 -126
- package/docs/helpers/WebDriver.md +155 -157
- package/docs/internal-api.md +111 -0
- package/docs/plugins.md +4 -2
- package/docs/webapi/amOnPage.mustache +1 -1
- package/docs/webapi/appendField.mustache +1 -1
- package/docs/webapi/attachFile.mustache +1 -1
- package/docs/webapi/blur.mustache +1 -1
- package/docs/webapi/checkOption.mustache +1 -1
- package/docs/webapi/clearCookie.mustache +1 -2
- package/docs/webapi/clearField.mustache +1 -1
- package/docs/webapi/click.mustache +1 -1
- package/docs/webapi/clickLink.mustache +1 -1
- package/docs/webapi/closeCurrentTab.mustache +1 -1
- package/docs/webapi/closeOtherTabs.mustache +1 -1
- package/docs/webapi/dontSee.mustache +1 -1
- package/docs/webapi/dontSeeCheckboxIsChecked.mustache +1 -1
- package/docs/webapi/dontSeeCookie.mustache +1 -1
- package/docs/webapi/dontSeeCurrentUrlEquals.mustache +1 -1
- package/docs/webapi/dontSeeElement.mustache +1 -1
- package/docs/webapi/dontSeeElementInDOM.mustache +1 -1
- package/docs/webapi/dontSeeInCurrentUrl.mustache +1 -1
- package/docs/webapi/dontSeeInField.mustache +1 -1
- package/docs/webapi/dontSeeInSource.mustache +1 -1
- package/docs/webapi/dontSeeInTitle.mustache +1 -1
- package/docs/webapi/doubleClick.mustache +1 -1
- package/docs/webapi/downloadFile.mustache +1 -1
- package/docs/webapi/dragAndDrop.mustache +1 -1
- package/docs/webapi/dragSlider.mustache +1 -1
- package/docs/webapi/fillField.mustache +1 -1
- package/docs/webapi/focus.mustache +1 -1
- package/docs/webapi/forceClick.mustache +1 -1
- package/docs/webapi/forceRightClick.mustache +1 -1
- package/docs/webapi/grabDataFromPerformanceTiming.mustache +1 -1
- package/docs/webapi/moveCursorTo.mustache +1 -1
- package/docs/webapi/openNewTab.mustache +1 -1
- package/docs/webapi/pressKey.mustache +1 -1
- package/docs/webapi/pressKeyDown.mustache +1 -1
- package/docs/webapi/pressKeyUp.mustache +1 -1
- package/docs/webapi/pressKeyWithKeyNormalization.mustache +1 -1
- package/docs/webapi/refreshPage.mustache +1 -1
- package/docs/webapi/resizeWindow.mustache +1 -1
- package/docs/webapi/rightClick.mustache +1 -1
- package/docs/webapi/saveElementScreenshot.mustache +1 -1
- package/docs/webapi/saveScreenshot.mustache +1 -1
- package/docs/webapi/say.mustache +1 -1
- package/docs/webapi/scrollIntoView.mustache +1 -1
- package/docs/webapi/scrollPageToBottom.mustache +1 -1
- package/docs/webapi/scrollPageToTop.mustache +1 -1
- package/docs/webapi/scrollTo.mustache +1 -1
- package/docs/webapi/see.mustache +1 -1
- package/docs/webapi/seeAttributesOnElements.mustache +1 -1
- package/docs/webapi/seeCheckboxIsChecked.mustache +1 -1
- package/docs/webapi/seeCookie.mustache +1 -1
- package/docs/webapi/seeCssPropertiesOnElements.mustache +1 -1
- package/docs/webapi/seeCurrentUrlEquals.mustache +1 -1
- package/docs/webapi/seeElement.mustache +1 -1
- package/docs/webapi/seeElementInDOM.mustache +1 -1
- package/docs/webapi/seeInCurrentUrl.mustache +1 -1
- package/docs/webapi/seeInField.mustache +1 -1
- package/docs/webapi/seeInPopup.mustache +1 -1
- package/docs/webapi/seeInSource.mustache +1 -1
- package/docs/webapi/seeInTitle.mustache +1 -1
- package/docs/webapi/seeNumberOfElements.mustache +1 -1
- package/docs/webapi/seeNumberOfVisibleElements.mustache +1 -1
- package/docs/webapi/seeTextEquals.mustache +1 -1
- package/docs/webapi/seeTitleEquals.mustache +1 -1
- package/docs/webapi/selectOption.mustache +1 -1
- package/docs/webapi/setCookie.mustache +1 -1
- package/docs/webapi/setGeoLocation.mustache +1 -1
- package/docs/webapi/switchTo.mustache +1 -1
- package/docs/webapi/switchToNextTab.mustache +1 -1
- package/docs/webapi/switchToPreviousTab.mustache +1 -1
- package/docs/webapi/type.mustache +1 -1
- package/docs/webapi/uncheckOption.mustache +1 -1
- package/docs/webapi/wait.mustache +1 -1
- package/docs/webapi/waitForClickable.mustache +1 -1
- package/docs/webapi/waitForDetached.mustache +1 -1
- package/docs/webapi/waitForElement.mustache +1 -1
- package/docs/webapi/waitForEnabled.mustache +1 -1
- package/docs/webapi/waitForFunction.mustache +1 -1
- package/docs/webapi/waitForInvisible.mustache +1 -1
- package/docs/webapi/waitForText.mustache +1 -1
- package/docs/webapi/waitForValue.mustache +1 -1
- package/docs/webapi/waitForVisible.mustache +1 -1
- package/docs/webapi/waitInUrl.mustache +1 -1
- package/docs/webapi/waitNumberOfVisibleElements.mustache +1 -1
- package/docs/webapi/waitToHide.mustache +1 -1
- package/docs/webapi/waitUrlEquals.mustache +1 -1
- package/lib/command/run-multiple.js +1 -1
- package/lib/command/run-workers.js +30 -4
- package/lib/command/workers/runTests.js +23 -0
- package/lib/event.js +2 -0
- package/lib/helper/Appium.js +10 -10
- package/lib/helper/Playwright.js +78 -7
- package/lib/helper/Puppeteer.js +7 -3
- package/lib/helper/WebDriver.js +6 -2
- package/lib/interfaces/gherkin.js +8 -1
- package/lib/interfaces/scenarioConfig.js +1 -0
- package/lib/locator.js +2 -2
- package/lib/plugin/autoLogin.js +4 -2
- package/lib/plugin/retryFailedStep.js +5 -0
- package/lib/plugin/stepByStepReport.js +2 -2
- package/lib/ui.js +1 -0
- package/lib/workers.js +2 -0
- package/package.json +4 -4
- package/typings/promiseBasedTypes.d.ts +449 -1008
- package/typings/types.d.ts +452 -425
|
@@ -48,11 +48,11 @@ Type: [object][4]
|
|
|
48
48
|
- `keepTraceForPassedTests` **[boolean][20]?** save trace for passed tests.
|
|
49
49
|
- `keepBrowserState` **[boolean][20]?** keep browser state between tests when `restart` is set to false.
|
|
50
50
|
- `keepCookies` **[boolean][20]?** keep cookies between tests when `restart` is set to false.
|
|
51
|
-
- `waitForAction` **[number][
|
|
51
|
+
- `waitForAction` **[number][10]?** how long to wait after click, doubleClick or PressKey actions in ms. Default: 100.
|
|
52
52
|
- `waitForNavigation` **[string][6]?** when to consider navigation succeeded. Possible options: `load`, `domcontentloaded`, `networkidle0`, `networkidle2`. See [Puppeteer API][23]. Array values are accepted as well.
|
|
53
|
-
- `pressKeyDelay` **[number][
|
|
54
|
-
- `getPageTimeout` **[number][
|
|
55
|
-
- `waitForTimeout` **[number][
|
|
53
|
+
- `pressKeyDelay` **[number][10]?** delay between key presses in ms. Used when calling Puppeteers page.type(...) in fillField/appendField
|
|
54
|
+
- `getPageTimeout` **[number][10]?** config option to set maximum navigation time in milliseconds. If the timeout is set to 0, then timeout will be disabled.
|
|
55
|
+
- `waitForTimeout` **[number][10]?** default wait* timeout in ms.
|
|
56
56
|
- `windowSize` **[string][6]?** default window size. Set a dimension in format WIDTHxHEIGHT like `640x480`.
|
|
57
57
|
- `userAgent` **[string][6]?** user-agent string.
|
|
58
58
|
- `manualStart` **[boolean][20]?** do not start browser before a test, start it manually inside a helper with `this.helpers["Puppeteer"]._startBrowser()`.
|
|
@@ -298,7 +298,7 @@ I.amOnPage('/login'); // opens a login page
|
|
|
298
298
|
|
|
299
299
|
- `url` **[string][6]** url path or global url.
|
|
300
300
|
|
|
301
|
-
Returns **
|
|
301
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
302
302
|
|
|
303
303
|
### appendField
|
|
304
304
|
|
|
@@ -316,7 +316,7 @@ I.appendField('password', secret('123456'));
|
|
|
316
316
|
- `field` **([string][6] | [object][4])** located by label|name|CSS|XPath|strict locator
|
|
317
317
|
- `value` **[string][6]** text value to append.
|
|
318
318
|
|
|
319
|
-
Returns **
|
|
319
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
320
320
|
|
|
321
321
|
|
|
322
322
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -338,12 +338,12 @@ I.attachFile('form input[name=avatar]', 'data/avatar.jpg');
|
|
|
338
338
|
- `locator` **([string][6] | [object][4])** field located by label|name|CSS|XPath|strict locator.
|
|
339
339
|
- `pathToFile` **[string][6]** local file path relative to codecept.conf.ts or codecept.conf.js config file.
|
|
340
340
|
|
|
341
|
-
Returns **
|
|
341
|
+
Returns **void** automatically synchronized promise through #recorder> ⚠ There is an [issue with file upload in Puppeteer 2.1.0 & 2.1.1][7], downgrade to 2.0.0 if you face it.
|
|
342
342
|
|
|
343
343
|
### blur
|
|
344
344
|
|
|
345
345
|
Remove focus from a text input, button, etc.
|
|
346
|
-
Calls [blur][
|
|
346
|
+
Calls [blur][8] on the element.
|
|
347
347
|
|
|
348
348
|
Examples:
|
|
349
349
|
|
|
@@ -361,9 +361,9 @@ I.dontSee('#add-to-cart-btn');
|
|
|
361
361
|
#### Parameters
|
|
362
362
|
|
|
363
363
|
- `locator` **([string][6] | [object][4])** field located by label|name|CSS|XPath|strict locator.
|
|
364
|
-
- `options` **any?** Playwright only: [Additional options][
|
|
364
|
+
- `options` **any?** Playwright only: [Additional options][9] for available options object as 2nd argument.
|
|
365
365
|
|
|
366
|
-
Returns **
|
|
366
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
367
367
|
|
|
368
368
|
### cancelPopup
|
|
369
369
|
|
|
@@ -387,7 +387,7 @@ I.checkOption('agree', '//form');
|
|
|
387
387
|
- `field` **([string][6] | [object][4])** checkbox located by label | name | CSS | XPath | strict locator.
|
|
388
388
|
- `context` **([string][6]? | [object][4])** (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
389
389
|
|
|
390
|
-
Returns **
|
|
390
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
391
391
|
|
|
392
392
|
### clearCookie
|
|
393
393
|
|
|
@@ -396,7 +396,7 @@ if none provided clears all cookies.
|
|
|
396
396
|
|
|
397
397
|
```js
|
|
398
398
|
I.clearCookie();
|
|
399
|
-
I.clearCookie('test');
|
|
399
|
+
I.clearCookie('test'); // Playwright currently doesn't support clear a particular cookie name
|
|
400
400
|
```
|
|
401
401
|
|
|
402
402
|
#### Parameters
|
|
@@ -404,8 +404,6 @@ I.clearCookie('test');
|
|
|
404
404
|
- `name`
|
|
405
405
|
- `cookie` **[string][6]?** (optional, `null` by default) cookie name
|
|
406
406
|
|
|
407
|
-
Returns **[Promise][7]<void>** automatically synchronized promise through #recorder
|
|
408
|
-
|
|
409
407
|
### clearField
|
|
410
408
|
|
|
411
409
|
Clears a `<textarea>` or text `<input>` element's value.
|
|
@@ -421,7 +419,7 @@ I.clearField('#email');
|
|
|
421
419
|
- `field`
|
|
422
420
|
- `editable` **([string][6] | [object][4])** field located by label|name|CSS|XPath|strict locator.
|
|
423
421
|
|
|
424
|
-
Returns **
|
|
422
|
+
Returns **void** automatically synchronized promise through #recorder.
|
|
425
423
|
|
|
426
424
|
### click
|
|
427
425
|
|
|
@@ -452,7 +450,7 @@ I.click({css: 'nav a.login'});
|
|
|
452
450
|
- `locator` **([string][6] | [object][4])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
|
|
453
451
|
- `context` **([string][6]? | [object][4] | null)** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
|
|
454
452
|
|
|
455
|
-
Returns **
|
|
453
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
456
454
|
|
|
457
455
|
|
|
458
456
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -471,7 +469,7 @@ I.clickLink('Logout', '#nav');
|
|
|
471
469
|
- `locator` **([string][6] | [object][4])** clickable link or button located by text, or any element located by CSS|XPath|strict locator
|
|
472
470
|
- `context` **([string][6]? | [object][4])** (optional, `null` by default) element to search in CSS|XPath|Strict locator
|
|
473
471
|
|
|
474
|
-
Returns **
|
|
472
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
475
473
|
|
|
476
474
|
|
|
477
475
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -508,7 +506,7 @@ I.dontSee('Login', '.nav'); // no login inside .nav element
|
|
|
508
506
|
- `text` **[string][6]** which is not present.
|
|
509
507
|
- `context` **([string][6] | [object][4])?** (optional) element located by CSS|XPath|strict locator in which to perfrom search.
|
|
510
508
|
|
|
511
|
-
Returns **
|
|
509
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
512
510
|
|
|
513
511
|
|
|
514
512
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -528,7 +526,7 @@ I.dontSeeCheckboxIsChecked('agree'); // located by name
|
|
|
528
526
|
|
|
529
527
|
- `field` **([string][6] | [object][4])** located by label|name|CSS|XPath|strict locator.
|
|
530
528
|
|
|
531
|
-
Returns **
|
|
529
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
532
530
|
|
|
533
531
|
### dontSeeCookie
|
|
534
532
|
|
|
@@ -542,7 +540,7 @@ I.dontSeeCookie('auth'); // no auth cookie
|
|
|
542
540
|
|
|
543
541
|
- `name` **[string][6]** cookie name.
|
|
544
542
|
|
|
545
|
-
Returns **
|
|
543
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
546
544
|
|
|
547
545
|
### dontSeeCurrentUrlEquals
|
|
548
546
|
|
|
@@ -558,7 +556,7 @@ I.dontSeeCurrentUrlEquals('http://mysite.com/login'); // absolute urls are also
|
|
|
558
556
|
|
|
559
557
|
- `url` **[string][6]** value to check.
|
|
560
558
|
|
|
561
|
-
Returns **
|
|
559
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
562
560
|
|
|
563
561
|
### dontSeeElement
|
|
564
562
|
|
|
@@ -572,7 +570,7 @@ I.dontSeeElement('.modal'); // modal is not shown
|
|
|
572
570
|
|
|
573
571
|
- `locator` **([string][6] | [object][4])** located by CSS|XPath|Strict locator.
|
|
574
572
|
|
|
575
|
-
Returns **
|
|
573
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
576
574
|
|
|
577
575
|
|
|
578
576
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -590,7 +588,7 @@ I.dontSeeElementInDOM('.nav'); // checks that element is not on page visible or
|
|
|
590
588
|
|
|
591
589
|
- `locator` **([string][6] | [object][4])** located by CSS|XPath|Strict locator.
|
|
592
590
|
|
|
593
|
-
Returns **
|
|
591
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
594
592
|
|
|
595
593
|
### dontSeeInCurrentUrl
|
|
596
594
|
|
|
@@ -600,7 +598,7 @@ Checks that current url does not contain a provided fragment.
|
|
|
600
598
|
|
|
601
599
|
- `url` **[string][6]** value to check.
|
|
602
600
|
|
|
603
|
-
Returns **
|
|
601
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
604
602
|
|
|
605
603
|
### dontSeeInField
|
|
606
604
|
|
|
@@ -617,7 +615,7 @@ I.dontSeeInField({ css: 'form input.email' }, 'user@user.com'); // field by CSS
|
|
|
617
615
|
- `field` **([string][6] | [object][4])** located by label|name|CSS|XPath|strict locator.
|
|
618
616
|
- `value` **([string][6] | [object][4])** value to check.
|
|
619
617
|
|
|
620
|
-
Returns **
|
|
618
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
621
619
|
|
|
622
620
|
### dontSeeInSource
|
|
623
621
|
|
|
@@ -632,7 +630,7 @@ I.dontSeeInSource('<!--'); // no comments in source
|
|
|
632
630
|
- `text`
|
|
633
631
|
- `value` **[string][6]** to check.
|
|
634
632
|
|
|
635
|
-
Returns **
|
|
633
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
636
634
|
|
|
637
635
|
### dontSeeInTitle
|
|
638
636
|
|
|
@@ -646,7 +644,7 @@ I.dontSeeInTitle('Error');
|
|
|
646
644
|
|
|
647
645
|
- `text` **[string][6]** value to check.
|
|
648
646
|
|
|
649
|
-
Returns **
|
|
647
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
650
648
|
|
|
651
649
|
### doubleClick
|
|
652
650
|
|
|
@@ -665,7 +663,7 @@ I.doubleClick('.btn.edit');
|
|
|
665
663
|
- `locator` **([string][6] | [object][4])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
|
|
666
664
|
- `context` **([string][6]? | [object][4])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
|
|
667
665
|
|
|
668
|
-
Returns **
|
|
666
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
669
667
|
|
|
670
668
|
|
|
671
669
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -695,7 +693,7 @@ I.dragAndDrop('#dragHandle', '#container');
|
|
|
695
693
|
- `srcElement` **([string][6] | [object][4])** located by CSS|XPath|strict locator.
|
|
696
694
|
- `destElement` **([string][6] | [object][4])** located by CSS|XPath|strict locator.
|
|
697
695
|
|
|
698
|
-
Returns **
|
|
696
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
699
697
|
|
|
700
698
|
### dragSlider
|
|
701
699
|
|
|
@@ -710,9 +708,9 @@ I.dragSlider('#slider', -70);
|
|
|
710
708
|
#### Parameters
|
|
711
709
|
|
|
712
710
|
- `locator` **([string][6] | [object][4])** located by label|name|CSS|XPath|strict locator.
|
|
713
|
-
- `offsetX` **[number][
|
|
711
|
+
- `offsetX` **[number][10]** position to drag.
|
|
714
712
|
|
|
715
|
-
Returns **
|
|
713
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
716
714
|
|
|
717
715
|
|
|
718
716
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -723,7 +721,7 @@ This action supports [React locators](https://codecept.io/react#locators)
|
|
|
723
721
|
Executes async script on page.
|
|
724
722
|
Provided function should execute a passed callback (as first argument) to signal it is finished.
|
|
725
723
|
|
|
726
|
-
Example: In Vue.js to make components completely rendered we are waiting for [nextTick][
|
|
724
|
+
Example: In Vue.js to make components completely rendered we are waiting for [nextTick][11].
|
|
727
725
|
|
|
728
726
|
```js
|
|
729
727
|
I.executeAsyncScript(function(done) {
|
|
@@ -744,9 +742,9 @@ let val = await I.executeAsyncScript(function(url, done) {
|
|
|
744
742
|
#### Parameters
|
|
745
743
|
|
|
746
744
|
- `args` **...any** to be passed to function.
|
|
747
|
-
- `fn` **([string][6] | [function][
|
|
745
|
+
- `fn` **([string][6] | [function][12])** function to be executed in browser context.
|
|
748
746
|
|
|
749
|
-
Returns **[Promise][
|
|
747
|
+
Returns **[Promise][13]<any>** script return valueAsynchronous scripts can also be executed with `executeScript` if a function returns a Promise.
|
|
750
748
|
|
|
751
749
|
### executeScript
|
|
752
750
|
|
|
@@ -777,9 +775,9 @@ let date = await I.executeScript(function(el) {
|
|
|
777
775
|
#### Parameters
|
|
778
776
|
|
|
779
777
|
- `args` **...any** to be passed to function.
|
|
780
|
-
- `fn` **([string][6] | [function][
|
|
778
|
+
- `fn` **([string][6] | [function][12])** function to be executed in browser context.
|
|
781
779
|
|
|
782
|
-
Returns **[Promise][
|
|
780
|
+
Returns **[Promise][13]<any>** script return valueIf a function returns a Promise It will wait for it resolution.
|
|
783
781
|
|
|
784
782
|
### fillField
|
|
785
783
|
|
|
@@ -802,7 +800,7 @@ I.fillField({css: 'form#login input[name=username]'}, 'John');
|
|
|
802
800
|
- `field` **([string][6] | [object][4])** located by label|name|CSS|XPath|strict locator.
|
|
803
801
|
- `value` **([string][6] | [object][4])** text value to fill.
|
|
804
802
|
|
|
805
|
-
Returns **
|
|
803
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
806
804
|
|
|
807
805
|
|
|
808
806
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -810,7 +808,7 @@ This action supports [React locators](https://codecept.io/react#locators)
|
|
|
810
808
|
|
|
811
809
|
### focus
|
|
812
810
|
|
|
813
|
-
Calls [focus][
|
|
811
|
+
Calls [focus][8] on the matching element.
|
|
814
812
|
|
|
815
813
|
Examples:
|
|
816
814
|
|
|
@@ -825,7 +823,7 @@ I.see('#add-to-cart-bnt');
|
|
|
825
823
|
- `locator` **([string][6] | [object][4])** field located by label|name|CSS|XPath|strict locator.
|
|
826
824
|
- `options` **any?** Playwright only: [Additional options][14] for available options object as 2nd argument.
|
|
827
825
|
|
|
828
|
-
Returns **
|
|
826
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
829
827
|
|
|
830
828
|
### forceClick
|
|
831
829
|
|
|
@@ -859,7 +857,7 @@ I.forceClick({css: 'nav a.login'});
|
|
|
859
857
|
- `locator` **([string][6] | [object][4])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
|
|
860
858
|
- `context` **([string][6]? | [object][4])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
|
|
861
859
|
|
|
862
|
-
Returns **
|
|
860
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
863
861
|
|
|
864
862
|
|
|
865
863
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -880,7 +878,7 @@ let hint = await I.grabAttributeFrom('#tooltip', 'title');
|
|
|
880
878
|
- `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
|
|
881
879
|
- `attr` **[string][6]** attribute name.
|
|
882
880
|
|
|
883
|
-
Returns **[Promise][
|
|
881
|
+
Returns **[Promise][13]<[string][6]>** attribute value
|
|
884
882
|
|
|
885
883
|
|
|
886
884
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -900,7 +898,7 @@ let hints = await I.grabAttributeFromAll('.tooltip', 'title');
|
|
|
900
898
|
- `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
|
|
901
899
|
- `attr` **[string][6]** attribute name.
|
|
902
900
|
|
|
903
|
-
Returns **[Promise][
|
|
901
|
+
Returns **[Promise][13]<[Array][15]<[string][6]>>** attribute value
|
|
904
902
|
|
|
905
903
|
|
|
906
904
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -915,7 +913,7 @@ let logs = await I.grabBrowserLogs();
|
|
|
915
913
|
console.log(JSON.stringify(logs))
|
|
916
914
|
```
|
|
917
915
|
|
|
918
|
-
Returns **[Promise][
|
|
916
|
+
Returns **[Promise][13]<[Array][15]<any>>**
|
|
919
917
|
|
|
920
918
|
### grabCookie
|
|
921
919
|
|
|
@@ -949,7 +947,7 @@ const value = await I.grabCssPropertyFrom('h3', 'font-weight');
|
|
|
949
947
|
- `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
|
|
950
948
|
- `cssProperty` **[string][6]** CSS property name.
|
|
951
949
|
|
|
952
|
-
Returns **[Promise][
|
|
950
|
+
Returns **[Promise][13]<[string][6]>** CSS value
|
|
953
951
|
|
|
954
952
|
|
|
955
953
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -969,7 +967,7 @@ const values = await I.grabCssPropertyFromAll('h3', 'font-weight');
|
|
|
969
967
|
- `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
|
|
970
968
|
- `cssProperty` **[string][6]** CSS property name.
|
|
971
969
|
|
|
972
|
-
Returns **[Promise][
|
|
970
|
+
Returns **[Promise][13]<[Array][15]<[string][6]>>** CSS value
|
|
973
971
|
|
|
974
972
|
|
|
975
973
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -985,7 +983,7 @@ let url = await I.grabCurrentUrl();
|
|
|
985
983
|
console.log(`Current URL is [${url}]`);
|
|
986
984
|
```
|
|
987
985
|
|
|
988
|
-
Returns **[Promise][
|
|
986
|
+
Returns **[Promise][13]<[string][6]>** current URL
|
|
989
987
|
|
|
990
988
|
### grabDataFromPerformanceTiming
|
|
991
989
|
|
|
@@ -1010,7 +1008,7 @@ let data = await I.grabDataFromPerformanceTiming();
|
|
|
1010
1008
|
}
|
|
1011
1009
|
```
|
|
1012
1010
|
|
|
1013
|
-
Returns **
|
|
1011
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1014
1012
|
|
|
1015
1013
|
### grabElementBoundingRect
|
|
1016
1014
|
|
|
@@ -1038,7 +1036,7 @@ const width = await I.grabElementBoundingRect('h3', 'width');
|
|
|
1038
1036
|
- `prop`
|
|
1039
1037
|
- `elementSize` **[string][6]?** x, y, width or height of the given element.
|
|
1040
1038
|
|
|
1041
|
-
Returns **([Promise][
|
|
1039
|
+
Returns **([Promise][13]<DOMRect> | [Promise][13]<[number][10]>)** Element bounding rectangle
|
|
1042
1040
|
|
|
1043
1041
|
### grabHTMLFrom
|
|
1044
1042
|
|
|
@@ -1055,7 +1053,7 @@ let postHTML = await I.grabHTMLFrom('#post');
|
|
|
1055
1053
|
- `locator`
|
|
1056
1054
|
- `element` **([string][6] | [object][4])** located by CSS|XPath|strict locator.
|
|
1057
1055
|
|
|
1058
|
-
Returns **[Promise][
|
|
1056
|
+
Returns **[Promise][13]<[string][6]>** HTML code for an element
|
|
1059
1057
|
|
|
1060
1058
|
### grabHTMLFromAll
|
|
1061
1059
|
|
|
@@ -1071,7 +1069,7 @@ let postHTMLs = await I.grabHTMLFromAll('.post');
|
|
|
1071
1069
|
- `locator`
|
|
1072
1070
|
- `element` **([string][6] | [object][4])** located by CSS|XPath|strict locator.
|
|
1073
1071
|
|
|
1074
|
-
Returns **[Promise][
|
|
1072
|
+
Returns **[Promise][13]<[Array][15]<[string][6]>>** HTML code for an element
|
|
1075
1073
|
|
|
1076
1074
|
### grabNumberOfOpenTabs
|
|
1077
1075
|
|
|
@@ -1082,7 +1080,7 @@ Resumes test execution, so **should be used inside async function with `await`**
|
|
|
1082
1080
|
let tabs = await I.grabNumberOfOpenTabs();
|
|
1083
1081
|
```
|
|
1084
1082
|
|
|
1085
|
-
Returns **[Promise][
|
|
1083
|
+
Returns **[Promise][13]<[number][10]>** number of open tabs
|
|
1086
1084
|
|
|
1087
1085
|
### grabNumberOfVisibleElements
|
|
1088
1086
|
|
|
@@ -1097,7 +1095,7 @@ let numOfElements = await I.grabNumberOfVisibleElements('p');
|
|
|
1097
1095
|
|
|
1098
1096
|
- `locator` **([string][6] | [object][4])** located by CSS|XPath|strict locator.
|
|
1099
1097
|
|
|
1100
|
-
Returns **[Promise][
|
|
1098
|
+
Returns **[Promise][13]<[number][10]>** number of visible elements
|
|
1101
1099
|
|
|
1102
1100
|
|
|
1103
1101
|
|
|
@@ -1113,7 +1111,7 @@ Resumes test execution, so **should be used inside an async function with `await
|
|
|
1113
1111
|
let { x, y } = await I.grabPageScrollPosition();
|
|
1114
1112
|
```
|
|
1115
1113
|
|
|
1116
|
-
Returns **[Promise][
|
|
1114
|
+
Returns **[Promise][13]<PageScrollPosition>** scroll position
|
|
1117
1115
|
|
|
1118
1116
|
### grabPopupText
|
|
1119
1117
|
|
|
@@ -1123,7 +1121,7 @@ Grab the text within the popup. If no popup is visible then it will return null
|
|
|
1123
1121
|
await I.grabPopupText();
|
|
1124
1122
|
```
|
|
1125
1123
|
|
|
1126
|
-
Returns **[Promise][
|
|
1124
|
+
Returns **[Promise][13]<([string][6] | null)>**
|
|
1127
1125
|
|
|
1128
1126
|
### grabSource
|
|
1129
1127
|
|
|
@@ -1134,7 +1132,7 @@ Resumes test execution, so **should be used inside async function with `await`**
|
|
|
1134
1132
|
let pageSource = await I.grabSource();
|
|
1135
1133
|
```
|
|
1136
1134
|
|
|
1137
|
-
Returns **[Promise][
|
|
1135
|
+
Returns **[Promise][13]<[string][6]>** source code
|
|
1138
1136
|
|
|
1139
1137
|
### grabTextFrom
|
|
1140
1138
|
|
|
@@ -1151,7 +1149,7 @@ If multiple elements found returns first element.
|
|
|
1151
1149
|
|
|
1152
1150
|
- `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
|
|
1153
1151
|
|
|
1154
|
-
Returns **[Promise][
|
|
1152
|
+
Returns **[Promise][13]<[string][6]>** attribute value
|
|
1155
1153
|
|
|
1156
1154
|
|
|
1157
1155
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -1170,7 +1168,7 @@ let pins = await I.grabTextFromAll('#pin li');
|
|
|
1170
1168
|
|
|
1171
1169
|
- `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
|
|
1172
1170
|
|
|
1173
|
-
Returns **[Promise][
|
|
1171
|
+
Returns **[Promise][13]<[Array][15]<[string][6]>>** attribute value
|
|
1174
1172
|
|
|
1175
1173
|
|
|
1176
1174
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -1185,7 +1183,7 @@ Resumes test execution, so **should be used inside async with `await`** operator
|
|
|
1185
1183
|
let title = await I.grabTitle();
|
|
1186
1184
|
```
|
|
1187
1185
|
|
|
1188
|
-
Returns **[Promise][
|
|
1186
|
+
Returns **[Promise][13]<[string][6]>** title
|
|
1189
1187
|
|
|
1190
1188
|
### grabValueFrom
|
|
1191
1189
|
|
|
@@ -1201,7 +1199,7 @@ let email = await I.grabValueFrom('input[name=email]');
|
|
|
1201
1199
|
|
|
1202
1200
|
- `locator` **([string][6] | [object][4])** field located by label|name|CSS|XPath|strict locator.
|
|
1203
1201
|
|
|
1204
|
-
Returns **[Promise][
|
|
1202
|
+
Returns **[Promise][13]<[string][6]>** attribute value
|
|
1205
1203
|
|
|
1206
1204
|
### grabValueFromAll
|
|
1207
1205
|
|
|
@@ -1216,7 +1214,7 @@ let inputs = await I.grabValueFromAll('//form/input');
|
|
|
1216
1214
|
|
|
1217
1215
|
- `locator` **([string][6] | [object][4])** field located by label|name|CSS|XPath|strict locator.
|
|
1218
1216
|
|
|
1219
|
-
Returns **[Promise][
|
|
1217
|
+
Returns **[Promise][13]<[Array][15]<[string][6]>>** attribute value
|
|
1220
1218
|
|
|
1221
1219
|
### handleDownloads
|
|
1222
1220
|
|
|
@@ -1250,10 +1248,10 @@ I.moveCursorTo('#submit', 5,5);
|
|
|
1250
1248
|
#### Parameters
|
|
1251
1249
|
|
|
1252
1250
|
- `locator` **([string][6] | [object][4])** located by CSS|XPath|strict locator.
|
|
1253
|
-
- `offsetX` **[number][
|
|
1254
|
-
- `offsetY` **[number][
|
|
1251
|
+
- `offsetX` **[number][10]** (optional, `0` by default) X-axis offset.
|
|
1252
|
+
- `offsetY` **[number][10]** (optional, `0` by default) Y-axis offset.
|
|
1255
1253
|
|
|
1256
|
-
Returns **
|
|
1254
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1257
1255
|
|
|
1258
1256
|
|
|
1259
1257
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -1332,7 +1330,7 @@ Some of the supported key names are:
|
|
|
1332
1330
|
|
|
1333
1331
|
- `key` **([string][6] | [Array][15]<[string][6]>)** key or array of keys to press.
|
|
1334
1332
|
|
|
1335
|
-
Returns **
|
|
1333
|
+
Returns **void** automatically synchronized promise through #recorder_Note:_ Shortcuts like `'Meta'` + `'A'` do not work on macOS ([GoogleChrome/puppeteer#1313][18]).
|
|
1336
1334
|
|
|
1337
1335
|
### pressKeyDown
|
|
1338
1336
|
|
|
@@ -1350,7 +1348,7 @@ I.pressKeyUp('Control');
|
|
|
1350
1348
|
|
|
1351
1349
|
- `key` **[string][6]** name of key to press down.
|
|
1352
1350
|
|
|
1353
|
-
Returns **
|
|
1351
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1354
1352
|
|
|
1355
1353
|
### pressKeyUp
|
|
1356
1354
|
|
|
@@ -1368,7 +1366,7 @@ I.pressKeyUp('Control');
|
|
|
1368
1366
|
|
|
1369
1367
|
- `key` **[string][6]** name of key to release.
|
|
1370
1368
|
|
|
1371
|
-
Returns **
|
|
1369
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1372
1370
|
|
|
1373
1371
|
### refreshPage
|
|
1374
1372
|
|
|
@@ -1378,7 +1376,7 @@ Reload the current page.
|
|
|
1378
1376
|
I.refreshPage();
|
|
1379
1377
|
```
|
|
1380
1378
|
|
|
1381
|
-
Returns **
|
|
1379
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1382
1380
|
|
|
1383
1381
|
### resizeWindow
|
|
1384
1382
|
|
|
@@ -1387,10 +1385,10 @@ First parameter can be set to `maximize`.
|
|
|
1387
1385
|
|
|
1388
1386
|
#### Parameters
|
|
1389
1387
|
|
|
1390
|
-
- `width` **[number][
|
|
1391
|
-
- `height` **[number][
|
|
1388
|
+
- `width` **[number][10]** width in pixels or `maximize`.
|
|
1389
|
+
- `height` **[number][10]** height in pixels.
|
|
1392
1390
|
|
|
1393
|
-
Returns **
|
|
1391
|
+
Returns **void** automatically synchronized promise through #recorderUnlike other drivers Puppeteer changes the size of a viewport, not the window!
|
|
1394
1392
|
Puppeteer does not control the window of a browser so it can't adjust its real size.
|
|
1395
1393
|
It also can't maximize a window.
|
|
1396
1394
|
|
|
@@ -1412,7 +1410,7 @@ I.rightClick('Click me', '.context');
|
|
|
1412
1410
|
- `locator` **([string][6] | [object][4])** clickable element located by CSS|XPath|strict locator.
|
|
1413
1411
|
- `context` **([string][6]? | [object][4])** (optional, `null` by default) element located by CSS|XPath|strict locator.
|
|
1414
1412
|
|
|
1415
|
-
Returns **
|
|
1413
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1416
1414
|
|
|
1417
1415
|
|
|
1418
1416
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -1432,7 +1430,7 @@ I.saveElementScreenshot(`#submit`,'debug.png');
|
|
|
1432
1430
|
- `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
|
|
1433
1431
|
- `fileName` **[string][6]** file name to save.
|
|
1434
1432
|
|
|
1435
|
-
Returns **
|
|
1433
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1436
1434
|
|
|
1437
1435
|
### saveScreenshot
|
|
1438
1436
|
|
|
@@ -1450,7 +1448,7 @@ I.saveScreenshot('debug.png', true) //resizes to available scrollHeight and scro
|
|
|
1450
1448
|
- `fileName` **[string][6]** file name to save.
|
|
1451
1449
|
- `fullPage` **[boolean][20]** (optional, `false` by default) flag to enable fullscreen screenshot mode.
|
|
1452
1450
|
|
|
1453
|
-
Returns **
|
|
1451
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1454
1452
|
|
|
1455
1453
|
### scrollPageToBottom
|
|
1456
1454
|
|
|
@@ -1460,7 +1458,7 @@ Scroll page to the bottom.
|
|
|
1460
1458
|
I.scrollPageToBottom();
|
|
1461
1459
|
```
|
|
1462
1460
|
|
|
1463
|
-
Returns **
|
|
1461
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1464
1462
|
|
|
1465
1463
|
### scrollPageToTop
|
|
1466
1464
|
|
|
@@ -1470,7 +1468,7 @@ Scroll page to the top.
|
|
|
1470
1468
|
I.scrollPageToTop();
|
|
1471
1469
|
```
|
|
1472
1470
|
|
|
1473
|
-
Returns **
|
|
1471
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1474
1472
|
|
|
1475
1473
|
### scrollTo
|
|
1476
1474
|
|
|
@@ -1485,10 +1483,10 @@ I.scrollTo('#submit', 5, 5);
|
|
|
1485
1483
|
#### Parameters
|
|
1486
1484
|
|
|
1487
1485
|
- `locator` **([string][6] | [object][4])** located by CSS|XPath|strict locator.
|
|
1488
|
-
- `offsetX` **[number][
|
|
1489
|
-
- `offsetY` **[number][
|
|
1486
|
+
- `offsetX` **[number][10]** (optional, `0` by default) X-axis offset.
|
|
1487
|
+
- `offsetY` **[number][10]** (optional, `0` by default) Y-axis offset.
|
|
1490
1488
|
|
|
1491
|
-
Returns **
|
|
1489
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1492
1490
|
|
|
1493
1491
|
### see
|
|
1494
1492
|
|
|
@@ -1506,7 +1504,7 @@ I.see('Register', {css: 'form.register'}); // use strict locator
|
|
|
1506
1504
|
- `text` **[string][6]** expected on page.
|
|
1507
1505
|
- `context` **([string][6]? | [object][4])** (optional, `null` by default) element located by CSS|Xpath|strict locator in which to search for text.
|
|
1508
1506
|
|
|
1509
|
-
Returns **
|
|
1507
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1510
1508
|
|
|
1511
1509
|
|
|
1512
1510
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -1525,7 +1523,7 @@ I.seeAttributesOnElements('//form', { method: "post"});
|
|
|
1525
1523
|
- `locator` **([string][6] | [object][4])** located by CSS|XPath|strict locator.
|
|
1526
1524
|
- `attributes` **[object][4]** attributes and their values to check.
|
|
1527
1525
|
|
|
1528
|
-
Returns **
|
|
1526
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1529
1527
|
|
|
1530
1528
|
|
|
1531
1529
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -1545,7 +1543,7 @@ I.seeCheckboxIsChecked({css: '#signup_form input[type=checkbox]'});
|
|
|
1545
1543
|
|
|
1546
1544
|
- `field` **([string][6] | [object][4])** located by label|name|CSS|XPath|strict locator.
|
|
1547
1545
|
|
|
1548
|
-
Returns **
|
|
1546
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1549
1547
|
|
|
1550
1548
|
### seeCookie
|
|
1551
1549
|
|
|
@@ -1559,7 +1557,7 @@ I.seeCookie('Auth');
|
|
|
1559
1557
|
|
|
1560
1558
|
- `name` **[string][6]** cookie name.
|
|
1561
1559
|
|
|
1562
|
-
Returns **
|
|
1560
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1563
1561
|
|
|
1564
1562
|
### seeCssPropertiesOnElements
|
|
1565
1563
|
|
|
@@ -1574,7 +1572,7 @@ I.seeCssPropertiesOnElements('h3', { 'font-weight': "bold"});
|
|
|
1574
1572
|
- `locator` **([string][6] | [object][4])** located by CSS|XPath|strict locator.
|
|
1575
1573
|
- `cssProperties` **[object][4]** object with CSS properties and their values to check.
|
|
1576
1574
|
|
|
1577
|
-
Returns **
|
|
1575
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1578
1576
|
|
|
1579
1577
|
|
|
1580
1578
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -1595,7 +1593,7 @@ I.seeCurrentUrlEquals('http://my.site.com/register');
|
|
|
1595
1593
|
|
|
1596
1594
|
- `url` **[string][6]** value to check.
|
|
1597
1595
|
|
|
1598
|
-
Returns **
|
|
1596
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1599
1597
|
|
|
1600
1598
|
### seeElement
|
|
1601
1599
|
|
|
@@ -1610,7 +1608,7 @@ I.seeElement('#modal');
|
|
|
1610
1608
|
|
|
1611
1609
|
- `locator` **([string][6] | [object][4])** located by CSS|XPath|strict locator.
|
|
1612
1610
|
|
|
1613
|
-
Returns **
|
|
1611
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1614
1612
|
|
|
1615
1613
|
|
|
1616
1614
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -1629,7 +1627,7 @@ I.seeElementInDOM('#modal');
|
|
|
1629
1627
|
|
|
1630
1628
|
- `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
|
|
1631
1629
|
|
|
1632
|
-
Returns **
|
|
1630
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1633
1631
|
|
|
1634
1632
|
### seeInCurrentUrl
|
|
1635
1633
|
|
|
@@ -1643,7 +1641,7 @@ I.seeInCurrentUrl('/register'); // we are on registration page
|
|
|
1643
1641
|
|
|
1644
1642
|
- `url` **[string][6]** a fragment to check
|
|
1645
1643
|
|
|
1646
|
-
Returns **
|
|
1644
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1647
1645
|
|
|
1648
1646
|
### seeInField
|
|
1649
1647
|
|
|
@@ -1662,7 +1660,7 @@ I.seeInField('#searchform input','Search');
|
|
|
1662
1660
|
- `field` **([string][6] | [object][4])** located by label|name|CSS|XPath|strict locator.
|
|
1663
1661
|
- `value` **([string][6] | [object][4])** value to check.
|
|
1664
1662
|
|
|
1665
|
-
Returns **
|
|
1663
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1666
1664
|
|
|
1667
1665
|
### seeInPopup
|
|
1668
1666
|
|
|
@@ -1677,7 +1675,7 @@ I.seeInPopup('Popup text');
|
|
|
1677
1675
|
|
|
1678
1676
|
- `text` **[string][6]** value to check.
|
|
1679
1677
|
|
|
1680
|
-
Returns **
|
|
1678
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1681
1679
|
|
|
1682
1680
|
### seeInSource
|
|
1683
1681
|
|
|
@@ -1691,7 +1689,7 @@ I.seeInSource('<h1>Green eggs & ham</h1>');
|
|
|
1691
1689
|
|
|
1692
1690
|
- `text` **[string][6]** value to check.
|
|
1693
1691
|
|
|
1694
|
-
Returns **
|
|
1692
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1695
1693
|
|
|
1696
1694
|
### seeInTitle
|
|
1697
1695
|
|
|
@@ -1705,7 +1703,7 @@ I.seeInTitle('Home Page');
|
|
|
1705
1703
|
|
|
1706
1704
|
- `text` **[string][6]** text value to check.
|
|
1707
1705
|
|
|
1708
|
-
Returns **
|
|
1706
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1709
1707
|
|
|
1710
1708
|
### seeNumberOfElements
|
|
1711
1709
|
|
|
@@ -1719,9 +1717,9 @@ I.seeNumberOfElements('#submitBtn', 1);
|
|
|
1719
1717
|
#### Parameters
|
|
1720
1718
|
|
|
1721
1719
|
- `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
|
|
1722
|
-
- `num` **[number][
|
|
1720
|
+
- `num` **[number][10]** number of elements.
|
|
1723
1721
|
|
|
1724
|
-
Returns **
|
|
1722
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1725
1723
|
|
|
1726
1724
|
|
|
1727
1725
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -1739,9 +1737,9 @@ I.seeNumberOfVisibleElements('.buttons', 3);
|
|
|
1739
1737
|
#### Parameters
|
|
1740
1738
|
|
|
1741
1739
|
- `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
|
|
1742
|
-
- `num` **[number][
|
|
1740
|
+
- `num` **[number][10]** number of elements.
|
|
1743
1741
|
|
|
1744
|
-
Returns **
|
|
1742
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1745
1743
|
|
|
1746
1744
|
|
|
1747
1745
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -1760,7 +1758,7 @@ I.seeTextEquals('text', 'h1');
|
|
|
1760
1758
|
- `text` **[string][6]** element value to check.
|
|
1761
1759
|
- `context` **([string][6] | [object][4])?** element located by CSS|XPath|strict locator.
|
|
1762
1760
|
|
|
1763
|
-
Returns **
|
|
1761
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1764
1762
|
|
|
1765
1763
|
### seeTitleEquals
|
|
1766
1764
|
|
|
@@ -1774,7 +1772,7 @@ I.seeTitleEquals('Test title.');
|
|
|
1774
1772
|
|
|
1775
1773
|
- `text` **[string][6]** value to check.
|
|
1776
1774
|
|
|
1777
|
-
Returns **
|
|
1775
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1778
1776
|
|
|
1779
1777
|
### selectOption
|
|
1780
1778
|
|
|
@@ -1802,7 +1800,7 @@ I.selectOption('Which OS do you use?', ['Android', 'iOS']);
|
|
|
1802
1800
|
- `select` **([string][6] | [object][4])** field located by label|name|CSS|XPath|strict locator.
|
|
1803
1801
|
- `option` **([string][6] | [Array][15]<any>)** visible text or value of option.
|
|
1804
1802
|
|
|
1805
|
-
Returns **
|
|
1803
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1806
1804
|
|
|
1807
1805
|
### setCookie
|
|
1808
1806
|
|
|
@@ -1824,7 +1822,7 @@ I.setCookie([
|
|
|
1824
1822
|
|
|
1825
1823
|
- `cookie` **(Cookie | [Array][15]<Cookie>)** a cookie object or array of cookie objects.
|
|
1826
1824
|
|
|
1827
|
-
Returns **
|
|
1825
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1828
1826
|
|
|
1829
1827
|
### setPuppeteerRequestHeaders
|
|
1830
1828
|
|
|
@@ -1853,7 +1851,7 @@ I.switchTo(); // switch back to main page
|
|
|
1853
1851
|
|
|
1854
1852
|
- `locator` **([string][6]? | [object][4])** (optional, `null` by default) element located by CSS|XPath|strict locator.
|
|
1855
1853
|
|
|
1856
|
-
Returns **
|
|
1854
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1857
1855
|
|
|
1858
1856
|
### switchToNextTab
|
|
1859
1857
|
|
|
@@ -1866,7 +1864,7 @@ I.switchToNextTab(2);
|
|
|
1866
1864
|
|
|
1867
1865
|
#### Parameters
|
|
1868
1866
|
|
|
1869
|
-
- `num` **[number][
|
|
1867
|
+
- `num` **[number][10]**
|
|
1870
1868
|
|
|
1871
1869
|
### switchToPreviousTab
|
|
1872
1870
|
|
|
@@ -1879,7 +1877,7 @@ I.switchToPreviousTab(2);
|
|
|
1879
1877
|
|
|
1880
1878
|
#### Parameters
|
|
1881
1879
|
|
|
1882
|
-
- `num` **[number][
|
|
1880
|
+
- `num` **[number][10]**
|
|
1883
1881
|
|
|
1884
1882
|
### type
|
|
1885
1883
|
|
|
@@ -1904,10 +1902,10 @@ I.type(secret('123456'));
|
|
|
1904
1902
|
#### Parameters
|
|
1905
1903
|
|
|
1906
1904
|
- `keys`
|
|
1907
|
-
- `delay` **[number][
|
|
1905
|
+
- `delay` **[number][10]?** (optional) delay in ms between key presses
|
|
1908
1906
|
- `key` **([string][6] | [Array][15]<[string][6]>)** or array of keys to type.
|
|
1909
1907
|
|
|
1910
|
-
Returns **
|
|
1908
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1911
1909
|
|
|
1912
1910
|
### uncheckOption
|
|
1913
1911
|
|
|
@@ -1927,7 +1925,7 @@ I.uncheckOption('agree', '//form');
|
|
|
1927
1925
|
- `field` **([string][6] | [object][4])** checkbox located by label | name | CSS | XPath | strict locator.
|
|
1928
1926
|
- `context` **([string][6]? | [object][4])** (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
1929
1927
|
|
|
1930
|
-
Returns **
|
|
1928
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1931
1929
|
|
|
1932
1930
|
### usePuppeteerTo
|
|
1933
1931
|
|
|
@@ -1947,7 +1945,7 @@ I.usePuppeteerTo('emulate offline mode', async ({ page }) {
|
|
|
1947
1945
|
#### Parameters
|
|
1948
1946
|
|
|
1949
1947
|
- `description` **[string][6]** used to show in logs.
|
|
1950
|
-
- `fn` **[function][
|
|
1948
|
+
- `fn` **[function][12]** async function that is executed with Puppeteer as argument
|
|
1951
1949
|
|
|
1952
1950
|
### wait
|
|
1953
1951
|
|
|
@@ -1959,9 +1957,9 @@ I.wait(2); // wait 2 secs
|
|
|
1959
1957
|
|
|
1960
1958
|
#### Parameters
|
|
1961
1959
|
|
|
1962
|
-
- `sec` **[number][
|
|
1960
|
+
- `sec` **[number][10]** number of second to wait.
|
|
1963
1961
|
|
|
1964
|
-
Returns **
|
|
1962
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1965
1963
|
|
|
1966
1964
|
### waitForClickable
|
|
1967
1965
|
|
|
@@ -1977,9 +1975,9 @@ I.waitForClickable('.btn.continue', 5); // wait for 5 secs
|
|
|
1977
1975
|
|
|
1978
1976
|
- `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
|
|
1979
1977
|
- `waitTimeout`
|
|
1980
|
-
- `sec` **[number][
|
|
1978
|
+
- `sec` **[number][10]?** (optional, `1` by default) time in seconds to wait
|
|
1981
1979
|
|
|
1982
|
-
Returns **
|
|
1980
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1983
1981
|
|
|
1984
1982
|
### waitForDetached
|
|
1985
1983
|
|
|
@@ -1993,9 +1991,9 @@ I.waitForDetached('#popup');
|
|
|
1993
1991
|
#### Parameters
|
|
1994
1992
|
|
|
1995
1993
|
- `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
|
|
1996
|
-
- `sec` **[number][
|
|
1994
|
+
- `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
|
|
1997
1995
|
|
|
1998
|
-
Returns **
|
|
1996
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1999
1997
|
|
|
2000
1998
|
### waitForElement
|
|
2001
1999
|
|
|
@@ -2010,9 +2008,9 @@ I.waitForElement('.btn.continue', 5); // wait for 5 secs
|
|
|
2010
2008
|
#### Parameters
|
|
2011
2009
|
|
|
2012
2010
|
- `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
|
|
2013
|
-
- `sec` **[number][
|
|
2011
|
+
- `sec` **[number][10]?** (optional, `1` by default) time in seconds to wait
|
|
2014
2012
|
|
|
2015
|
-
Returns **
|
|
2013
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
2016
2014
|
|
|
2017
2015
|
|
|
2018
2016
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -2026,9 +2024,9 @@ Element can be located by CSS or XPath.
|
|
|
2026
2024
|
#### Parameters
|
|
2027
2025
|
|
|
2028
2026
|
- `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
|
|
2029
|
-
- `sec` **[number][
|
|
2027
|
+
- `sec` **[number][10]** (optional) time in seconds to wait, 1 by default.
|
|
2030
2028
|
|
|
2031
|
-
Returns **
|
|
2029
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
2032
2030
|
|
|
2033
2031
|
### waitForFunction
|
|
2034
2032
|
|
|
@@ -2047,11 +2045,11 @@ I.waitForFunction((count) => window.requests == count, [3], 5) // pass args and
|
|
|
2047
2045
|
|
|
2048
2046
|
#### Parameters
|
|
2049
2047
|
|
|
2050
|
-
- `fn` **([string][6] | [function][
|
|
2051
|
-
- `argsOrSec` **([Array][15]<any> | [number][
|
|
2052
|
-
- `sec` **[number][
|
|
2048
|
+
- `fn` **([string][6] | [function][12])** to be executed in browser context.
|
|
2049
|
+
- `argsOrSec` **([Array][15]<any> | [number][10])?** (optional, `1` by default) arguments for function or seconds.
|
|
2050
|
+
- `sec` **[number][10]?** (optional, `1` by default) time in seconds to wait
|
|
2053
2051
|
|
|
2054
|
-
Returns **
|
|
2052
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
2055
2053
|
|
|
2056
2054
|
### waitForInvisible
|
|
2057
2055
|
|
|
@@ -2065,9 +2063,9 @@ I.waitForInvisible('#popup');
|
|
|
2065
2063
|
#### Parameters
|
|
2066
2064
|
|
|
2067
2065
|
- `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
|
|
2068
|
-
- `sec` **[number][
|
|
2066
|
+
- `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
|
|
2069
2067
|
|
|
2070
|
-
Returns **
|
|
2068
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
2071
2069
|
|
|
2072
2070
|
### waitForNavigation
|
|
2073
2071
|
|
|
@@ -2090,8 +2088,8 @@ I.waitForRequest(request => request.url() === 'http://example.com' && request.me
|
|
|
2090
2088
|
|
|
2091
2089
|
#### Parameters
|
|
2092
2090
|
|
|
2093
|
-
- `urlOrPredicate` **([string][6] | [function][
|
|
2094
|
-
- `sec` **[number][
|
|
2091
|
+
- `urlOrPredicate` **([string][6] | [function][12])**
|
|
2092
|
+
- `sec` **[number][10]?** seconds to wait
|
|
2095
2093
|
|
|
2096
2094
|
### waitForResponse
|
|
2097
2095
|
|
|
@@ -2104,8 +2102,8 @@ I.waitForResponse(response => response.url() === 'http://example.com' && respons
|
|
|
2104
2102
|
|
|
2105
2103
|
#### Parameters
|
|
2106
2104
|
|
|
2107
|
-
- `urlOrPredicate` **([string][6] | [function][
|
|
2108
|
-
- `sec` **[number][
|
|
2105
|
+
- `urlOrPredicate` **([string][6] | [function][12])**
|
|
2106
|
+
- `sec` **[number][10]?** number of seconds to wait
|
|
2109
2107
|
|
|
2110
2108
|
### waitForText
|
|
2111
2109
|
|
|
@@ -2121,10 +2119,10 @@ I.waitForText('Thank you, form has been submitted', 5, '#modal');
|
|
|
2121
2119
|
#### Parameters
|
|
2122
2120
|
|
|
2123
2121
|
- `text` **[string][6]** to wait for.
|
|
2124
|
-
- `sec` **[number][
|
|
2122
|
+
- `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
|
|
2125
2123
|
- `context` **([string][6] | [object][4])?** (optional) element located by CSS|XPath|strict locator.
|
|
2126
2124
|
|
|
2127
|
-
Returns **
|
|
2125
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
2128
2126
|
|
|
2129
2127
|
### waitForValue
|
|
2130
2128
|
|
|
@@ -2138,9 +2136,9 @@ I.waitForValue('//input', "GoodValue");
|
|
|
2138
2136
|
|
|
2139
2137
|
- `field` **([string][6] | [object][4])** input field.
|
|
2140
2138
|
- `value` **[string][6]** expected value.
|
|
2141
|
-
- `sec` **[number][
|
|
2139
|
+
- `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
|
|
2142
2140
|
|
|
2143
|
-
Returns **
|
|
2141
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
2144
2142
|
|
|
2145
2143
|
### waitForVisible
|
|
2146
2144
|
|
|
@@ -2154,9 +2152,9 @@ I.waitForVisible('#popup');
|
|
|
2154
2152
|
#### Parameters
|
|
2155
2153
|
|
|
2156
2154
|
- `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
|
|
2157
|
-
- `sec` **[number][
|
|
2155
|
+
- `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
|
|
2158
2156
|
|
|
2159
|
-
Returns **
|
|
2157
|
+
Returns **void** automatically synchronized promise through #recorderThis method accepts [React selectors][24].
|
|
2160
2158
|
|
|
2161
2159
|
### waitInUrl
|
|
2162
2160
|
|
|
@@ -2169,9 +2167,9 @@ I.waitInUrl('/info', 2);
|
|
|
2169
2167
|
#### Parameters
|
|
2170
2168
|
|
|
2171
2169
|
- `urlPart` **[string][6]** value to check.
|
|
2172
|
-
- `sec` **[number][
|
|
2170
|
+
- `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
|
|
2173
2171
|
|
|
2174
|
-
Returns **
|
|
2172
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
2175
2173
|
|
|
2176
2174
|
### waitNumberOfVisibleElements
|
|
2177
2175
|
|
|
@@ -2184,10 +2182,10 @@ I.waitNumberOfVisibleElements('a', 3);
|
|
|
2184
2182
|
#### Parameters
|
|
2185
2183
|
|
|
2186
2184
|
- `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
|
|
2187
|
-
- `num` **[number][
|
|
2188
|
-
- `sec` **[number][
|
|
2185
|
+
- `num` **[number][10]** number of elements.
|
|
2186
|
+
- `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
|
|
2189
2187
|
|
|
2190
|
-
Returns **
|
|
2188
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
2191
2189
|
|
|
2192
2190
|
|
|
2193
2191
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -2205,9 +2203,9 @@ I.waitToHide('#popup');
|
|
|
2205
2203
|
#### Parameters
|
|
2206
2204
|
|
|
2207
2205
|
- `locator` **([string][6] | [object][4])** element located by CSS|XPath|strict locator.
|
|
2208
|
-
- `sec` **[number][
|
|
2206
|
+
- `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
|
|
2209
2207
|
|
|
2210
|
-
Returns **
|
|
2208
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
2211
2209
|
|
|
2212
2210
|
### waitUrlEquals
|
|
2213
2211
|
|
|
@@ -2221,9 +2219,9 @@ I.waitUrlEquals('http://127.0.0.1:8000/info');
|
|
|
2221
2219
|
#### Parameters
|
|
2222
2220
|
|
|
2223
2221
|
- `urlPart` **[string][6]** value to check.
|
|
2224
|
-
- `sec` **[number][
|
|
2222
|
+
- `sec` **[number][10]** (optional, `1` by default) time in seconds to wait
|
|
2225
2223
|
|
|
2226
|
-
Returns **
|
|
2224
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
2227
2225
|
|
|
2228
2226
|
[1]: https://github.com/GoogleChrome/puppeteer
|
|
2229
2227
|
|
|
@@ -2237,19 +2235,19 @@ Returns **[Promise][7]<void>** automatically synchronized promise through #re
|
|
|
2237
2235
|
|
|
2238
2236
|
[6]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
|
|
2239
2237
|
|
|
2240
|
-
[7]: https://
|
|
2238
|
+
[7]: https://github.com/puppeteer/puppeteer/issues/5420
|
|
2241
2239
|
|
|
2242
|
-
[8]: https://
|
|
2240
|
+
[8]: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus
|
|
2243
2241
|
|
|
2244
|
-
[9]: https://
|
|
2242
|
+
[9]: https://playwright.dev/docs/api/class-locator#locator-blur
|
|
2245
2243
|
|
|
2246
|
-
[10]: https://
|
|
2244
|
+
[10]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
|
|
2247
2245
|
|
|
2248
|
-
[11]: https://
|
|
2246
|
+
[11]: https://vuejs.org/v2/api/#Vue-nextTick
|
|
2249
2247
|
|
|
2250
|
-
[12]: https://
|
|
2248
|
+
[12]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function
|
|
2251
2249
|
|
|
2252
|
-
[13]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/
|
|
2250
|
+
[13]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise
|
|
2253
2251
|
|
|
2254
2252
|
[14]: https://playwright.dev/docs/api/class-locator#locator-focus
|
|
2255
2253
|
|