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