codeceptjs 4.2.0 → 4.2.1-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/bin/codecept.js +11 -0
- package/docs/agents.md +26 -1
- package/docs/ai.md +57 -0
- package/docs/alternative-browsers.md +175 -148
- package/docs/assertions.md +74 -0
- package/docs/bootstrap.md +2 -0
- package/docs/commands.md +45 -0
- package/docs/configuration.md +37 -0
- package/docs/debugging.md +1 -1
- package/docs/helpers/ApiDataFactory.md +20 -20
- package/docs/helpers/Appium.md +1615 -670
- package/docs/helpers/Decision.md +146 -0
- package/docs/helpers/GraphQL.md +31 -31
- package/docs/helpers/GraphQLDataFactory.md +20 -20
- package/docs/helpers/Kitesurf.md +1808 -25
- package/docs/helpers/Lightpanda.md +139 -0
- package/docs/helpers/Obscura.md +1799 -74
- package/docs/helpers/Playwright.md +490 -428
- package/docs/helpers/Puppeteer.md +317 -255
- package/docs/helpers/REST.md +43 -43
- package/docs/helpers/WebDriver.md +237 -175
- package/docs/installation.md +16 -0
- package/docs/mcp.md +7 -1
- package/docs/parallel.md +35 -1
- package/docs/plugins/pause.md +2 -1
- package/docs/plugins/sitemap.md +48 -0
- package/docs/plugins.md +4 -0
- package/lib/ai.js +81 -2
- package/lib/codecept.js +32 -2
- package/lib/command/init.js +22 -0
- package/lib/command/initAgent.js +78 -0
- package/lib/command/run-multiple.js +3 -0
- package/lib/command/run-workers.js +10 -3
- package/lib/command/run.js +3 -2
- package/lib/command/utils.js +15 -0
- package/lib/command/workers/runTests.js +10 -10
- package/lib/container.js +4 -2
- package/lib/effects.js +19 -1
- package/lib/helper/CDPBrowser.js +349 -1384
- package/lib/helper/Decision.js +256 -0
- package/lib/helper/Kitesurf.js +3 -21
- package/lib/helper/Lightpanda.js +137 -0
- package/lib/helper/Obscura.js +21 -238
- package/lib/helper/Playwright.js +6 -4
- package/lib/helper/Puppeteer.js +12 -7
- package/lib/helper/WebDriver.js +2 -1
- package/lib/listener/result.js +4 -0
- package/lib/mocha/bdd.js +19 -1
- package/lib/plugin/junitReporter.js +4 -1
- package/lib/plugin/pause.js +4 -1
- package/lib/plugin/sitemap.js +228 -0
- package/lib/recorder.js +19 -18
- package/lib/result.js +16 -0
- package/lib/step/base.js +12 -0
- package/lib/utils.js +2 -10
- package/lib/webServer.js +193 -0
- package/lib/workers.js +118 -31
- package/package.json +4 -2
- package/typings/index.d.ts +60 -7
- package/typings/promiseBasedTypes.d.ts +772 -824
- package/typings/types.d.ts +866 -833
- package/docs/helpers/CDPBrowser.md +0 -2138
|
@@ -25,7 +25,7 @@ If you have a custom grid, use a cloud service, or prefer to run your own driver
|
|
|
25
25
|
|
|
26
26
|
This helper should be configured in codecept.conf.js
|
|
27
27
|
|
|
28
|
-
Type: [object][
|
|
28
|
+
Type: [object][19]
|
|
29
29
|
|
|
30
30
|
### Properties
|
|
31
31
|
|
|
@@ -46,9 +46,9 @@ Type: [object][17]
|
|
|
46
46
|
* `keepCookies` **[boolean][34]?** keep cookies between tests when `restart` set to false.
|
|
47
47
|
* `windowSize` **[string][18]?** default window size. Set to `maximize` or a dimension in the format `640x480`.
|
|
48
48
|
* `waitForTimeout` **[number][23]?** sets default wait time in *ms* for all `wait*` functions.
|
|
49
|
-
* `desiredCapabilities` **[object][
|
|
49
|
+
* `desiredCapabilities` **[object][19]?** Selenium's [desired capabilities][7].
|
|
50
50
|
* `manualStart` **[boolean][34]?** do not start browser before a test, start it manually inside a helper with `this.helpers["WebDriver"]._startBrowser()`.
|
|
51
|
-
* `timeouts` **[object][
|
|
51
|
+
* `timeouts` **[object][19]?** [WebDriver timeouts][40] defined as hash.
|
|
52
52
|
* `highlightElement` **[boolean][34]?** highlight the interacting elements. Default: false. Note: only activate under verbose mode (--verbose).
|
|
53
53
|
* `logLevel` **[string][18]?** level of logging verbosity. Default: silent. Options: trace | debug | info | warn | error | silent. More info: [https://webdriver.io/docs/configuration/#loglevel][41]
|
|
54
54
|
|
|
@@ -412,95 +412,11 @@ const browser = WebDriver.browser
|
|
|
412
412
|
|
|
413
413
|
* `config`  
|
|
414
414
|
|
|
415
|
-
### _isShadowLocator
|
|
416
|
-
|
|
417
|
-
Check if locator is type of "Shadow"
|
|
418
|
-
|
|
419
|
-
#### Parameters
|
|
420
|
-
|
|
421
|
-
* `locator` **[object][17]** 
|
|
422
|
-
|
|
423
|
-
### _locate
|
|
424
|
-
|
|
425
|
-
Get elements by different locator types, including strict locator.
|
|
426
|
-
Should be used in custom helpers:
|
|
427
|
-
|
|
428
|
-
```js
|
|
429
|
-
this.helpers['WebDriver']._locate({name: 'password'}).then //...
|
|
430
|
-
```
|
|
431
|
-
|
|
432
|
-
#### Parameters
|
|
433
|
-
|
|
434
|
-
* `locator` **([string][18] | [object][17])** element located by CSS|XPath|strict locator.
|
|
435
|
-
* `smartWait`
|
|
436
|
-
|
|
437
|
-
### _locateByRole
|
|
438
|
-
|
|
439
|
-
Locate elements by ARIA role using WebdriverIO accessibility selectors
|
|
440
|
-
|
|
441
|
-
#### Parameters
|
|
442
|
-
|
|
443
|
-
* `locator` **[object][17]** role locator object { role: string, text?: string, exact?: boolean }
|
|
444
|
-
|
|
445
|
-
### _locateCheckable
|
|
446
|
-
|
|
447
|
-
Find a checkbox by providing human-readable text:
|
|
448
|
-
|
|
449
|
-
```js
|
|
450
|
-
this.helpers['WebDriver']._locateCheckable('I agree with terms and conditions').then // ...
|
|
451
|
-
```
|
|
452
|
-
|
|
453
|
-
#### Parameters
|
|
454
|
-
|
|
455
|
-
* `locator` **([string][18] | [object][17])** element located by CSS|XPath|strict locator.
|
|
456
|
-
|
|
457
|
-
### _locateClickable
|
|
458
|
-
|
|
459
|
-
Find a clickable element by providing human-readable text:
|
|
460
|
-
|
|
461
|
-
```js
|
|
462
|
-
const els = await this.helpers.WebDriver._locateClickable('Next page');
|
|
463
|
-
const els = await this.helpers.WebDriver._locateClickable('Next page', '.pages');
|
|
464
|
-
```
|
|
465
|
-
|
|
466
|
-
#### Parameters
|
|
467
|
-
|
|
468
|
-
* `locator` **([string][18] | [object][17])** element located by CSS|XPath|strict locator.
|
|
469
|
-
* `context`  
|
|
470
|
-
|
|
471
|
-
### _locateFields
|
|
472
|
-
|
|
473
|
-
Find field elements by providing human-readable text:
|
|
474
|
-
|
|
475
|
-
```js
|
|
476
|
-
this.helpers['WebDriver']._locateFields('Your email').then // ...
|
|
477
|
-
```
|
|
478
|
-
|
|
479
|
-
#### Parameters
|
|
480
|
-
|
|
481
|
-
* `locator` **([string][18] | [object][17])** element located by CSS|XPath|strict locator.
|
|
482
|
-
|
|
483
|
-
### _locateShadow
|
|
484
|
-
|
|
485
|
-
Locate Element within the Shadow Dom
|
|
486
|
-
|
|
487
|
-
#### Parameters
|
|
488
|
-
|
|
489
|
-
* `locator` **[object][17]** 
|
|
490
|
-
|
|
491
|
-
### _smartWait
|
|
492
|
-
|
|
493
|
-
Smart Wait to locate an element
|
|
494
|
-
|
|
495
|
-
#### Parameters
|
|
496
|
-
|
|
497
|
-
* `locator` **[object][17]** 
|
|
498
|
-
|
|
499
415
|
### acceptPopup
|
|
500
416
|
|
|
501
417
|
Accepts the active JavaScript native popup window, as created by window.alert|window.confirm|window.prompt.
|
|
502
418
|
Don't confuse popups with modal windows, as created by [various
|
|
503
|
-
libraries][
|
|
419
|
+
libraries][17].
|
|
504
420
|
|
|
505
421
|
### amOnPage
|
|
506
422
|
|
|
@@ -536,9 +452,9 @@ I.appendField('name', 'John', '.form-container');
|
|
|
536
452
|
|
|
537
453
|
#### Parameters
|
|
538
454
|
|
|
539
|
-
* `field` **([string][18] | [object][
|
|
455
|
+
* `field` **([string][18] | [object][19])** located by label|name|CSS|XPath|strict locator
|
|
540
456
|
* `value` **[string][18]** text value to append.
|
|
541
|
-
* `context` **([string][18]? | [object][
|
|
457
|
+
* `context` **([string][18]? | [object][19])** (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
542
458
|
|
|
543
459
|
Returns **void** automatically synchronized promise through #recorder
|
|
544
460
|
|
|
@@ -568,9 +484,9 @@ I.attachFile('#dropzone', 'data/avatar.jpg');
|
|
|
568
484
|
|
|
569
485
|
#### Parameters
|
|
570
486
|
|
|
571
|
-
* `locator` **([string][18] | [object][
|
|
487
|
+
* `locator` **([string][18] | [object][19])** field located by label|name|CSS|XPath|strict locator.
|
|
572
488
|
* `pathToFile` **[string][18]** local file path relative to codecept.conf.ts or codecept.conf.js config file.
|
|
573
|
-
* `context` **([string][18]? | [object][
|
|
489
|
+
* `context` **([string][18]? | [object][19])** (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
574
490
|
|
|
575
491
|
Returns **void** automatically synchronized promise through #recorder
|
|
576
492
|
|
|
@@ -594,7 +510,7 @@ I.dontSee('#add-to-cart-btn');
|
|
|
594
510
|
|
|
595
511
|
#### Parameters
|
|
596
512
|
|
|
597
|
-
* `locator` **([string][18] | [object][
|
|
513
|
+
* `locator` **([string][18] | [object][19])** field located by label|name|CSS|XPath|strict locator.
|
|
598
514
|
* `options` **any?** Playwright only: [Additional options][21] for available options object as 2nd argument.
|
|
599
515
|
|
|
600
516
|
Returns **void** automatically synchronized promise through #recorder
|
|
@@ -619,8 +535,19 @@ I.checkOption('agree', '//form');
|
|
|
619
535
|
|
|
620
536
|
#### Parameters
|
|
621
537
|
|
|
622
|
-
* `field` **([string][18] | [object][
|
|
623
|
-
* `context` **([string][18]? | [object][
|
|
538
|
+
* `field` **([string][18] | [object][19])** checkbox located by label | name | CSS | XPath | strict locator.
|
|
539
|
+
* `context` **([string][18]? | [object][19])** (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
540
|
+
|
|
541
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
542
|
+
|
|
543
|
+
### clearClipboard
|
|
544
|
+
|
|
545
|
+
Clears the system clipboard.
|
|
546
|
+
|
|
547
|
+
```js
|
|
548
|
+
I.clearClipboard();
|
|
549
|
+
I.seeClipboardEquals('');
|
|
550
|
+
```
|
|
624
551
|
|
|
625
552
|
Returns **void** automatically synchronized promise through #recorder
|
|
626
553
|
|
|
@@ -655,8 +582,8 @@ I.clearField('Email', '.form-container');
|
|
|
655
582
|
#### Parameters
|
|
656
583
|
|
|
657
584
|
* `field`  
|
|
658
|
-
* `context` **([string][18]? | [object][
|
|
659
|
-
* `editable` **([string][18] | [object][
|
|
585
|
+
* `context` **([string][18]? | [object][19])** (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
586
|
+
* `editable` **([string][18] | [object][19])** field located by label|name|CSS|XPath|strict locator.
|
|
660
587
|
|
|
661
588
|
Returns **void** automatically synchronized promise through #recorder.
|
|
662
589
|
|
|
@@ -694,8 +621,8 @@ I.click({role: 'button', name: 'Submit'});
|
|
|
694
621
|
|
|
695
622
|
#### Parameters
|
|
696
623
|
|
|
697
|
-
* `locator` **([string][18] | [object][
|
|
698
|
-
* `context` **([string][18]? | [object][
|
|
624
|
+
* `locator` **([string][18] | [object][19])** (optional, `'//body'` by default) clickable link or button located by text, or any element located by CSS|XPath|strict locator.
|
|
625
|
+
* `context` **([string][18]? | [object][19] | null)** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
|
|
699
626
|
|
|
700
627
|
Returns **void** automatically synchronized promise through #recorder
|
|
701
628
|
|
|
@@ -715,7 +642,7 @@ I.clickXY('#someElement', 50, 30);
|
|
|
715
642
|
|
|
716
643
|
#### Parameters
|
|
717
644
|
|
|
718
|
-
* `locator` **([string][18] | [object][
|
|
645
|
+
* `locator` **([string][18] | [object][19] | [number][23])** Element to click on or X coordinate if no element.
|
|
719
646
|
* `x` **[number][23]?** X coordinate relative to element's top-left, or Y coordinate if locator is a number.
|
|
720
647
|
* `y` **[number][23]?** Y coordinate relative to element's top-left.
|
|
721
648
|
|
|
@@ -769,7 +696,7 @@ I.dontSee('Login', '.nav'); // no login inside .nav element
|
|
|
769
696
|
#### Parameters
|
|
770
697
|
|
|
771
698
|
* `text` **[string][18]** which is not present.
|
|
772
|
-
* `context` **([string][18] | [object][
|
|
699
|
+
* `context` **([string][18] | [object][19])?** (optional) element located by CSS|XPath|strict locator in which to perfrom search.
|
|
773
700
|
|
|
774
701
|
Returns **void** automatically synchronized promise through #recorder
|
|
775
702
|
|
|
@@ -786,7 +713,7 @@ I.dontSeeCheckboxIsChecked('agree'); // located by name
|
|
|
786
713
|
|
|
787
714
|
#### Parameters
|
|
788
715
|
|
|
789
|
-
* `field` **([string][18] | [object][
|
|
716
|
+
* `field` **([string][18] | [object][19])** located by label|name|CSS|XPath|strict locator.
|
|
790
717
|
|
|
791
718
|
Returns **void** automatically synchronized promise through #recorder
|
|
792
719
|
|
|
@@ -849,8 +776,8 @@ I.dontSeeElement('.modal', '#container');
|
|
|
849
776
|
|
|
850
777
|
#### Parameters
|
|
851
778
|
|
|
852
|
-
* `locator` **([string][18] | [object][
|
|
853
|
-
* `context` **([string][18]? | [object][
|
|
779
|
+
* `locator` **([string][18] | [object][19])** located by CSS|XPath|Strict locator.
|
|
780
|
+
* `context` **([string][18]? | [object][19])** (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
854
781
|
|
|
855
782
|
Returns **void** automatically synchronized promise through #recorder
|
|
856
783
|
|
|
@@ -864,7 +791,7 @@ I.dontSeeElementInDOM('.nav'); // checks that element is not on page visible or
|
|
|
864
791
|
|
|
865
792
|
#### Parameters
|
|
866
793
|
|
|
867
|
-
* `locator` **([string][18] | [object][
|
|
794
|
+
* `locator` **([string][18] | [object][19])** located by CSS|XPath|Strict locator.
|
|
868
795
|
|
|
869
796
|
Returns **void** automatically synchronized promise through #recorder
|
|
870
797
|
|
|
@@ -894,9 +821,9 @@ I.dontSeeInField('Name', 'old_value', '.form-container');
|
|
|
894
821
|
|
|
895
822
|
#### Parameters
|
|
896
823
|
|
|
897
|
-
* `field` **([string][18] | [object][
|
|
898
|
-
* `value` **([string][18] | [object][
|
|
899
|
-
* `context` **([string][18]? | [object][
|
|
824
|
+
* `field` **([string][18] | [object][19])** located by label|name|CSS|XPath|strict locator.
|
|
825
|
+
* `value` **([string][18] | [object][19])** value to check.
|
|
826
|
+
* `context` **([string][18]? | [object][19])** (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
900
827
|
|
|
901
828
|
Returns **void** automatically synchronized promise through #recorder
|
|
902
829
|
|
|
@@ -943,8 +870,8 @@ I.doubleClick('.btn.edit');
|
|
|
943
870
|
|
|
944
871
|
#### Parameters
|
|
945
872
|
|
|
946
|
-
* `locator` **([string][18] | [object][
|
|
947
|
-
* `context` **([string][18]? | [object][
|
|
873
|
+
* `locator` **([string][18] | [object][19])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
|
|
874
|
+
* `context` **([string][18]? | [object][19])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
|
|
948
875
|
|
|
949
876
|
Returns **void** automatically synchronized promise through #recorder
|
|
950
877
|
|
|
@@ -959,8 +886,8 @@ I.dragAndDrop('#dragHandle', '#container');
|
|
|
959
886
|
|
|
960
887
|
#### Parameters
|
|
961
888
|
|
|
962
|
-
* `srcElement` **([string][18] | [object][
|
|
963
|
-
* `destElement` **([string][18] | [object][
|
|
889
|
+
* `srcElement` **([string][18] | [object][19])** located by CSS|XPath|strict locator.
|
|
890
|
+
* `destElement` **([string][18] | [object][19])** located by CSS|XPath|strict locator.
|
|
964
891
|
|
|
965
892
|
Returns **void** automatically synchronized promise through #recorder
|
|
966
893
|
|
|
@@ -976,7 +903,7 @@ I.dragSlider('#slider', -70);
|
|
|
976
903
|
|
|
977
904
|
#### Parameters
|
|
978
905
|
|
|
979
|
-
* `locator` **([string][18] | [object][
|
|
906
|
+
* `locator` **([string][18] | [object][19])** located by label|name|CSS|XPath|strict locator.
|
|
980
907
|
* `offsetX` **[number][23]** position to drag.
|
|
981
908
|
|
|
982
909
|
Returns **void** automatically synchronized promise through #recorder
|
|
@@ -1072,9 +999,9 @@ I.fillField('Name', 'John', '#section2');
|
|
|
1072
999
|
|
|
1073
1000
|
#### Parameters
|
|
1074
1001
|
|
|
1075
|
-
* `field` **([string][18] | [object][
|
|
1076
|
-
* `value` **([string][18] | [object][
|
|
1077
|
-
* `context` **([string][18]? | [object][
|
|
1002
|
+
* `field` **([string][18] | [object][19])** located by label|name|CSS|XPath|strict locator.
|
|
1003
|
+
* `value` **([string][18] | [object][19])** text value to fill.
|
|
1004
|
+
* `context` **([string][18]? | [object][19])** (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
1078
1005
|
|
|
1079
1006
|
Returns **void** automatically synchronized promise through #recorder{{ custom }}
|
|
1080
1007
|
|
|
@@ -1092,7 +1019,7 @@ I.see('#add-to-cart-bnt');
|
|
|
1092
1019
|
|
|
1093
1020
|
#### Parameters
|
|
1094
1021
|
|
|
1095
|
-
* `locator` **([string][18] | [object][
|
|
1022
|
+
* `locator` **([string][18] | [object][19])** field located by label|name|CSS|XPath|strict locator.
|
|
1096
1023
|
* `options` **any?** Playwright only: [Additional options][29] for available options object as 2nd argument.
|
|
1097
1024
|
|
|
1098
1025
|
Returns **void** automatically synchronized promise through #recorder
|
|
@@ -1126,8 +1053,8 @@ I.forceClick({css: 'nav a.login'});
|
|
|
1126
1053
|
|
|
1127
1054
|
#### Parameters
|
|
1128
1055
|
|
|
1129
|
-
* `locator` **([string][18] | [object][
|
|
1130
|
-
* `context` **([string][18]? | [object][
|
|
1056
|
+
* `locator` **([string][18] | [object][19])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
|
|
1057
|
+
* `context` **([string][18]? | [object][19])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
|
|
1131
1058
|
|
|
1132
1059
|
Returns **void** automatically synchronized promise through #recorder
|
|
1133
1060
|
|
|
@@ -1150,8 +1077,8 @@ I.forceRightClick('Menu');
|
|
|
1150
1077
|
|
|
1151
1078
|
#### Parameters
|
|
1152
1079
|
|
|
1153
|
-
* `locator` **([string][18] | [object][
|
|
1154
|
-
* `context` **([string][18]? | [object][
|
|
1080
|
+
* `locator` **([string][18] | [object][19])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
|
|
1081
|
+
* `context` **([string][18]? | [object][19])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
|
|
1155
1082
|
|
|
1156
1083
|
Returns **void** automatically synchronized promise through #recorder
|
|
1157
1084
|
|
|
@@ -1178,7 +1105,7 @@ let hint = await I.grabAttributeFrom('#tooltip', 'title');
|
|
|
1178
1105
|
|
|
1179
1106
|
#### Parameters
|
|
1180
1107
|
|
|
1181
|
-
* `locator` **([string][18] | [object][
|
|
1108
|
+
* `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
1182
1109
|
* `attr` **[string][18]** attribute name.
|
|
1183
1110
|
|
|
1184
1111
|
Returns **[Promise][24]<[string][18]>** attribute value
|
|
@@ -1194,7 +1121,7 @@ let hints = await I.grabAttributeFromAll('.tooltip', 'title');
|
|
|
1194
1121
|
|
|
1195
1122
|
#### Parameters
|
|
1196
1123
|
|
|
1197
|
-
* `locator` **([string][18] | [object][
|
|
1124
|
+
* `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
1198
1125
|
* `attr` **[string][18]** attribute name.
|
|
1199
1126
|
|
|
1200
1127
|
Returns **[Promise][24]<[Array][30]<[string][18]>>** attribute value
|
|
@@ -1209,7 +1136,7 @@ let logs = await I.grabBrowserLogs();
|
|
|
1209
1136
|
console.log(JSON.stringify(logs))
|
|
1210
1137
|
```
|
|
1211
1138
|
|
|
1212
|
-
Returns **([Promise][24]<[Array][30]<[object][
|
|
1139
|
+
Returns **([Promise][24]<[Array][30]<[object][19]>> | [undefined][31])** all browser logs
|
|
1213
1140
|
|
|
1214
1141
|
### grabCookie
|
|
1215
1142
|
|
|
@@ -1240,7 +1167,7 @@ const value = await I.grabCssPropertyFrom('h3', 'font-weight');
|
|
|
1240
1167
|
|
|
1241
1168
|
#### Parameters
|
|
1242
1169
|
|
|
1243
|
-
* `locator` **([string][18] | [object][
|
|
1170
|
+
* `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
1244
1171
|
* `cssProperty` **[string][18]** CSS property name.
|
|
1245
1172
|
|
|
1246
1173
|
Returns **[Promise][24]<[string][18]>** CSS value
|
|
@@ -1256,7 +1183,7 @@ const values = await I.grabCssPropertyFromAll('h3', 'font-weight');
|
|
|
1256
1183
|
|
|
1257
1184
|
#### Parameters
|
|
1258
1185
|
|
|
1259
|
-
* `locator` **([string][18] | [object][
|
|
1186
|
+
* `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
1260
1187
|
* `cssProperty` **[string][18]** CSS property name.
|
|
1261
1188
|
|
|
1262
1189
|
Returns **[Promise][24]<[Array][30]<[string][18]>>** CSS value
|
|
@@ -1306,12 +1233,27 @@ const width = await I.grabElementBoundingRect('h3', 'width');
|
|
|
1306
1233
|
|
|
1307
1234
|
#### Parameters
|
|
1308
1235
|
|
|
1309
|
-
* `locator` **([string][18] | [object][
|
|
1236
|
+
* `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
1310
1237
|
* `prop`  
|
|
1311
1238
|
* `elementSize` **[string][18]?** x, y, width or height of the given element.
|
|
1312
1239
|
|
|
1313
1240
|
Returns **([Promise][24]<DOMRect> | [Promise][24]<[number][23]>)** Element bounding rectangle
|
|
1314
1241
|
|
|
1242
|
+
### grabFromClipboard
|
|
1243
|
+
|
|
1244
|
+
Grabs the text content of the system clipboard and returns it to test.
|
|
1245
|
+
Resumes test execution, so **should be used inside async function with `await`** operator.
|
|
1246
|
+
|
|
1247
|
+
```js
|
|
1248
|
+
I.click('Copy to clipboard');
|
|
1249
|
+
let url = await I.grabFromClipboard();
|
|
1250
|
+
```
|
|
1251
|
+
|
|
1252
|
+
Reading the clipboard requires a secure context (`https` or `localhost`) and is supported
|
|
1253
|
+
in Chromium-based browsers, where read access is granted automatically.
|
|
1254
|
+
|
|
1255
|
+
Returns **[Promise][24]<[string][18]>** the system clipboard contents.
|
|
1256
|
+
|
|
1315
1257
|
### grabHTMLFrom
|
|
1316
1258
|
|
|
1317
1259
|
Retrieves the innerHTML from an element located by CSS or XPath and returns it to test.
|
|
@@ -1325,7 +1267,7 @@ let postHTML = await I.grabHTMLFrom('#post');
|
|
|
1325
1267
|
#### Parameters
|
|
1326
1268
|
|
|
1327
1269
|
* `locator`  
|
|
1328
|
-
* `element` **([string][18] | [object][
|
|
1270
|
+
* `element` **([string][18] | [object][19])** located by CSS|XPath|strict locator.
|
|
1329
1271
|
|
|
1330
1272
|
Returns **[Promise][24]<[string][18]>** HTML code for an element
|
|
1331
1273
|
|
|
@@ -1341,7 +1283,7 @@ let postHTMLs = await I.grabHTMLFromAll('.post');
|
|
|
1341
1283
|
#### Parameters
|
|
1342
1284
|
|
|
1343
1285
|
* `locator`  
|
|
1344
|
-
* `element` **([string][18] | [object][
|
|
1286
|
+
* `element` **([string][18] | [object][19])** located by CSS|XPath|strict locator.
|
|
1345
1287
|
|
|
1346
1288
|
Returns **[Promise][24]<[Array][30]<[string][18]>>** HTML code for an element
|
|
1347
1289
|
|
|
@@ -1367,7 +1309,7 @@ let numOfElements = await I.grabNumberOfVisibleElements('p');
|
|
|
1367
1309
|
|
|
1368
1310
|
#### Parameters
|
|
1369
1311
|
|
|
1370
|
-
* `locator` **([string][18] | [object][
|
|
1312
|
+
* `locator` **([string][18] | [object][19])** located by CSS|XPath|strict locator.
|
|
1371
1313
|
|
|
1372
1314
|
Returns **[Promise][24]<[number][23]>** number of visible elements
|
|
1373
1315
|
|
|
@@ -1416,7 +1358,7 @@ If multiple elements found returns first element.
|
|
|
1416
1358
|
|
|
1417
1359
|
#### Parameters
|
|
1418
1360
|
|
|
1419
|
-
* `locator` **([string][18] | [object][
|
|
1361
|
+
* `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
1420
1362
|
|
|
1421
1363
|
Returns **[Promise][24]<[string][18]>** attribute value
|
|
1422
1364
|
|
|
@@ -1431,7 +1373,7 @@ let pins = await I.grabTextFromAll('#pin li');
|
|
|
1431
1373
|
|
|
1432
1374
|
#### Parameters
|
|
1433
1375
|
|
|
1434
|
-
* `locator` **([string][18] | [object][
|
|
1376
|
+
* `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
1435
1377
|
|
|
1436
1378
|
Returns **[Promise][24]<[Array][30]<[string][18]>>** attribute value
|
|
1437
1379
|
|
|
@@ -1458,7 +1400,7 @@ let email = await I.grabValueFrom('input[name=email]');
|
|
|
1458
1400
|
|
|
1459
1401
|
#### Parameters
|
|
1460
1402
|
|
|
1461
|
-
* `locator` **([string][18] | [object][
|
|
1403
|
+
* `locator` **([string][18] | [object][19])** field located by label|name|CSS|XPath|strict locator.
|
|
1462
1404
|
|
|
1463
1405
|
Returns **[Promise][24]<[string][18]>** attribute value
|
|
1464
1406
|
|
|
@@ -1473,7 +1415,7 @@ let inputs = await I.grabValueFromAll('//form/input');
|
|
|
1473
1415
|
|
|
1474
1416
|
#### Parameters
|
|
1475
1417
|
|
|
1476
|
-
* `locator` **([string][18] | [object][
|
|
1418
|
+
* `locator` **([string][18] | [object][19])** field located by label|name|CSS|XPath|strict locator.
|
|
1477
1419
|
|
|
1478
1420
|
Returns **[Promise][24]<[Array][30]<[string][18]>>** attribute value
|
|
1479
1421
|
|
|
@@ -1488,7 +1430,7 @@ const webElement = await I.grabWebElement('#button');
|
|
|
1488
1430
|
|
|
1489
1431
|
#### Parameters
|
|
1490
1432
|
|
|
1491
|
-
* `locator` **([string][18] | [object][
|
|
1433
|
+
* `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
1492
1434
|
|
|
1493
1435
|
Returns **[Promise][24]<any>** WebElement of being used Web helper
|
|
1494
1436
|
|
|
@@ -1503,7 +1445,7 @@ const webElements = await I.grabWebElements('#button');
|
|
|
1503
1445
|
|
|
1504
1446
|
#### Parameters
|
|
1505
1447
|
|
|
1506
|
-
* `locator` **([string][18] | [object][
|
|
1448
|
+
* `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
1507
1449
|
|
|
1508
1450
|
Returns **[Promise][24]<any>** WebElement of being used Web helper
|
|
1509
1451
|
|
|
@@ -1523,10 +1465,10 @@ I.moveCursorTo('#submit', '.container');
|
|
|
1523
1465
|
|
|
1524
1466
|
#### Parameters
|
|
1525
1467
|
|
|
1526
|
-
* `locator` **([string][18] | [object][
|
|
1468
|
+
* `locator` **([string][18] | [object][19])** located by CSS|XPath|strict locator.
|
|
1527
1469
|
* `xOffset`  
|
|
1528
1470
|
* `yOffset`  
|
|
1529
|
-
* `offsetX` **([number][23] | [string][18] | [object][
|
|
1471
|
+
* `offsetX` **([number][23] | [string][18] | [object][19])** (optional, `0` by default) X-axis offset or context locator.
|
|
1530
1472
|
* `offsetY` **[number][23]** (optional, `0` by default) Y-axis offset.
|
|
1531
1473
|
|
|
1532
1474
|
Returns **void** automatically synchronized promise through #recorder
|
|
@@ -1690,8 +1632,8 @@ I.rightClick('Click me', '.context');
|
|
|
1690
1632
|
|
|
1691
1633
|
#### Parameters
|
|
1692
1634
|
|
|
1693
|
-
* `locator` **([string][18] | [object][
|
|
1694
|
-
* `context` **([string][18]? | [object][
|
|
1635
|
+
* `locator` **([string][18] | [object][19])** clickable element located by CSS|XPath|strict locator.
|
|
1636
|
+
* `context` **([string][18]? | [object][19])** (optional, `null` by default) element located by CSS|XPath|strict locator.
|
|
1695
1637
|
|
|
1696
1638
|
Returns **void** automatically synchronized promise through #recorder
|
|
1697
1639
|
|
|
@@ -1732,7 +1674,7 @@ I.saveElementScreenshot(`#submit`,'debug.png');
|
|
|
1732
1674
|
|
|
1733
1675
|
#### Parameters
|
|
1734
1676
|
|
|
1735
|
-
* `locator` **([string][18] | [object][
|
|
1677
|
+
* `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
1736
1678
|
* `fileName` **[string][18]** file name to save.
|
|
1737
1679
|
|
|
1738
1680
|
Returns **void** automatically synchronized promise through #recorder
|
|
@@ -1767,7 +1709,7 @@ I.scrollIntoView('#submit', { behavior: "smooth", block: "center", inline: "cent
|
|
|
1767
1709
|
|
|
1768
1710
|
#### Parameters
|
|
1769
1711
|
|
|
1770
|
-
* `locator` **([string][18] | [object][
|
|
1712
|
+
* `locator` **([string][18] | [object][19])** located by CSS|XPath|strict locator.
|
|
1771
1713
|
* `scrollIntoViewOptions` **(ScrollIntoViewOptions | [boolean][34])** either alignToTop=true|false or scrollIntoViewOptions. See [https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView][35].
|
|
1772
1714
|
|
|
1773
1715
|
Returns **void** automatically synchronized promise through #recorder
|
|
@@ -1804,7 +1746,7 @@ I.scrollTo('#submit', 5, 5);
|
|
|
1804
1746
|
|
|
1805
1747
|
#### Parameters
|
|
1806
1748
|
|
|
1807
|
-
* `locator` **([string][18] | [object][
|
|
1749
|
+
* `locator` **([string][18] | [object][19])** located by CSS|XPath|strict locator.
|
|
1808
1750
|
* `offsetX` **[number][23]** (optional, `0` by default) X-axis offset.
|
|
1809
1751
|
* `offsetY` **[number][23]** (optional, `0` by default) Y-axis offset.
|
|
1810
1752
|
|
|
@@ -1824,7 +1766,7 @@ I.see('Register', {css: 'form.register'}); // use strict locator
|
|
|
1824
1766
|
#### Parameters
|
|
1825
1767
|
|
|
1826
1768
|
* `text` **[string][18]** expected on page.
|
|
1827
|
-
* `context` **([string][18]? | [object][
|
|
1769
|
+
* `context` **([string][18]? | [object][19])** (optional, `null` by default) element located by CSS|Xpath|strict locator in which to search for text.
|
|
1828
1770
|
|
|
1829
1771
|
Returns **void** automatically synchronized promise through #recorder
|
|
1830
1772
|
|
|
@@ -1838,8 +1780,8 @@ I.seeAttributesOnElements('//form', { method: "post"});
|
|
|
1838
1780
|
|
|
1839
1781
|
#### Parameters
|
|
1840
1782
|
|
|
1841
|
-
* `locator` **([string][18] | [object][
|
|
1842
|
-
* `attributes` **[object][
|
|
1783
|
+
* `locator` **([string][18] | [object][19])** located by CSS|XPath|strict locator.
|
|
1784
|
+
* `attributes` **[object][19]** attributes and their values to check.
|
|
1843
1785
|
|
|
1844
1786
|
Returns **void** automatically synchronized promise through #recorder
|
|
1845
1787
|
|
|
@@ -1856,7 +1798,25 @@ I.seeCheckboxIsChecked({css: '#signup_form input[type=checkbox]'});
|
|
|
1856
1798
|
|
|
1857
1799
|
#### Parameters
|
|
1858
1800
|
|
|
1859
|
-
* `field` **([string][18] | [object][
|
|
1801
|
+
* `field` **([string][18] | [object][19])** located by label|name|CSS|XPath|strict locator.
|
|
1802
|
+
|
|
1803
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1804
|
+
|
|
1805
|
+
### seeClipboardEquals
|
|
1806
|
+
|
|
1807
|
+
Checks that the system clipboard is equal to the given text.
|
|
1808
|
+
|
|
1809
|
+
```js
|
|
1810
|
+
I.click('Copy to clipboard');
|
|
1811
|
+
I.seeClipboardEquals('https://codecept.io');
|
|
1812
|
+
```
|
|
1813
|
+
|
|
1814
|
+
Reading the clipboard requires a secure context (`https` or `localhost`) and is supported
|
|
1815
|
+
in Chromium-based browsers, where read access is granted automatically.
|
|
1816
|
+
|
|
1817
|
+
#### Parameters
|
|
1818
|
+
|
|
1819
|
+
* `text` **[string][18]** value to check.
|
|
1860
1820
|
|
|
1861
1821
|
Returns **void** automatically synchronized promise through #recorder
|
|
1862
1822
|
|
|
@@ -1884,8 +1844,8 @@ I.seeCssPropertiesOnElements('h3', { 'font-weight': "bold"});
|
|
|
1884
1844
|
|
|
1885
1845
|
#### Parameters
|
|
1886
1846
|
|
|
1887
|
-
* `locator` **([string][18] | [object][
|
|
1888
|
-
* `cssProperties` **[object][
|
|
1847
|
+
* `locator` **([string][18] | [object][19])** located by CSS|XPath|strict locator.
|
|
1848
|
+
* `cssProperties` **[object][19]** object with CSS properties and their values to check.
|
|
1889
1849
|
|
|
1890
1850
|
Returns **void** automatically synchronized promise through #recorder
|
|
1891
1851
|
|
|
@@ -1940,8 +1900,8 @@ I.seeElement({role: 'dialog'});
|
|
|
1940
1900
|
|
|
1941
1901
|
#### Parameters
|
|
1942
1902
|
|
|
1943
|
-
* `locator` **([string][18] | [object][
|
|
1944
|
-
* `context` **([string][18]? | [object][
|
|
1903
|
+
* `locator` **([string][18] | [object][19])** located by CSS|XPath|strict locator.
|
|
1904
|
+
* `context` **([string][18]? | [object][19])** (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
1945
1905
|
|
|
1946
1906
|
Returns **void** automatically synchronized promise through #recorder
|
|
1947
1907
|
|
|
@@ -1956,7 +1916,25 @@ I.seeElementInDOM('#modal');
|
|
|
1956
1916
|
|
|
1957
1917
|
#### Parameters
|
|
1958
1918
|
|
|
1959
|
-
* `locator` **([string][18] | [object][
|
|
1919
|
+
* `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
1920
|
+
|
|
1921
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1922
|
+
|
|
1923
|
+
### seeInClipboard
|
|
1924
|
+
|
|
1925
|
+
Checks that the system clipboard contains the given text.
|
|
1926
|
+
|
|
1927
|
+
```js
|
|
1928
|
+
I.click('Copy to clipboard');
|
|
1929
|
+
I.seeInClipboard('https://codecept.io');
|
|
1930
|
+
```
|
|
1931
|
+
|
|
1932
|
+
Reading the clipboard requires a secure context (`https` or `localhost`) and is supported
|
|
1933
|
+
in Chromium-based browsers, where read access is granted automatically.
|
|
1934
|
+
|
|
1935
|
+
#### Parameters
|
|
1936
|
+
|
|
1937
|
+
* `text` **[string][18]** value to check.
|
|
1960
1938
|
|
|
1961
1939
|
Returns **void** automatically synchronized promise through #recorder
|
|
1962
1940
|
|
|
@@ -1992,9 +1970,9 @@ I.seeInField('Name', 'John', '.form-container');
|
|
|
1992
1970
|
|
|
1993
1971
|
#### Parameters
|
|
1994
1972
|
|
|
1995
|
-
* `field` **([string][18] | [object][
|
|
1996
|
-
* `value` **([string][18] | [object][
|
|
1997
|
-
* `context` **([string][18]? | [object][
|
|
1973
|
+
* `field` **([string][18] | [object][19])** located by label|name|CSS|XPath|strict locator.
|
|
1974
|
+
* `value` **([string][18] | [object][19])** value to check.
|
|
1975
|
+
* `context` **([string][18]? | [object][19])** (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
1998
1976
|
|
|
1999
1977
|
Returns **void** automatically synchronized promise through #recorder
|
|
2000
1978
|
|
|
@@ -2046,7 +2024,7 @@ I.seeNumberOfElements('#submitBtn', 1);
|
|
|
2046
2024
|
|
|
2047
2025
|
#### Parameters
|
|
2048
2026
|
|
|
2049
|
-
* `locator` **([string][18] | [object][
|
|
2027
|
+
* `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
2050
2028
|
* `num` **[number][23]** number of elements.
|
|
2051
2029
|
|
|
2052
2030
|
Returns **void** automatically synchronized promise through #recorder
|
|
@@ -2062,7 +2040,7 @@ I.seeNumberOfVisibleElements('.buttons', 3);
|
|
|
2062
2040
|
|
|
2063
2041
|
#### Parameters
|
|
2064
2042
|
|
|
2065
|
-
* `locator` **([string][18] | [object][
|
|
2043
|
+
* `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
2066
2044
|
* `num` **[number][23]** number of elements.
|
|
2067
2045
|
|
|
2068
2046
|
Returns **void** automatically synchronized promise through #recorder
|
|
@@ -2078,7 +2056,7 @@ I.seeTextEquals('text', 'h1');
|
|
|
2078
2056
|
#### Parameters
|
|
2079
2057
|
|
|
2080
2058
|
* `text` **[string][18]** element value to check.
|
|
2081
|
-
* `context` **([string][18] | [object][
|
|
2059
|
+
* `context` **([string][18] | [object][19])?** element located by CSS|XPath|strict locator.
|
|
2082
2060
|
|
|
2083
2061
|
Returns **void** automatically synchronized promise through #recorder
|
|
2084
2062
|
|
|
@@ -2123,9 +2101,9 @@ I.selectOption('Which OS do you use?', ['Android', 'iOS']);
|
|
|
2123
2101
|
|
|
2124
2102
|
#### Parameters
|
|
2125
2103
|
|
|
2126
|
-
* `select` **([string][18] | [object][
|
|
2104
|
+
* `select` **([string][18] | [object][19])** field located by label|name|CSS|XPath|strict locator.
|
|
2127
2105
|
* `option` **([string][18] | [Array][30]<any>)** visible text or value of option.
|
|
2128
|
-
* `context` **([string][18]? | [object][
|
|
2106
|
+
* `context` **([string][18]? | [object][19])** (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
2129
2107
|
|
|
2130
2108
|
Returns **void** automatically synchronized promise through #recorder
|
|
2131
2109
|
|
|
@@ -2163,7 +2141,7 @@ I.switchTo(); // switch back to main page
|
|
|
2163
2141
|
|
|
2164
2142
|
#### Parameters
|
|
2165
2143
|
|
|
2166
|
-
* `locator` **([string][18]? | [object][
|
|
2144
|
+
* `locator` **([string][18]? | [object][19])** (optional, `null` by default) element located by CSS|XPath|strict locator.
|
|
2167
2145
|
|
|
2168
2146
|
Returns **void** automatically synchronized promise through #recorder
|
|
2169
2147
|
|
|
@@ -2261,8 +2239,8 @@ I.uncheckOption('agree', '//form');
|
|
|
2261
2239
|
|
|
2262
2240
|
#### Parameters
|
|
2263
2241
|
|
|
2264
|
-
* `field` **([string][18] | [object][
|
|
2265
|
-
* `context` **([string][18]? | [object][
|
|
2242
|
+
* `field` **([string][18] | [object][19])** checkbox located by label | name | CSS | XPath | strict locator.
|
|
2243
|
+
* `context` **([string][18]? | [object][19])** (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
2266
2244
|
|
|
2267
2245
|
Returns **void** automatically synchronized promise through #recorder
|
|
2268
2246
|
|
|
@@ -2322,7 +2300,7 @@ I.waitForClickable('.btn.continue', 5); // wait for 5 secs
|
|
|
2322
2300
|
|
|
2323
2301
|
#### Parameters
|
|
2324
2302
|
|
|
2325
|
-
* `locator` **([string][18] | [object][
|
|
2303
|
+
* `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
2326
2304
|
* `waitTimeout`  
|
|
2327
2305
|
* `sec` **[number][23]?** (optional, `1` by default) time in seconds to wait
|
|
2328
2306
|
|
|
@@ -2354,7 +2332,7 @@ I.waitForDetached('#popup');
|
|
|
2354
2332
|
|
|
2355
2333
|
#### Parameters
|
|
2356
2334
|
|
|
2357
|
-
* `locator` **([string][18] | [object][
|
|
2335
|
+
* `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
2358
2336
|
* `sec` **[number][23]** (optional, `1` by default) time in seconds to wait
|
|
2359
2337
|
|
|
2360
2338
|
Returns **void** automatically synchronized promise through #recorder
|
|
@@ -2371,7 +2349,7 @@ I.waitForElement('.btn.continue', 5); // wait for 5 secs
|
|
|
2371
2349
|
|
|
2372
2350
|
#### Parameters
|
|
2373
2351
|
|
|
2374
|
-
* `locator` **([string][18] | [object][
|
|
2352
|
+
* `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
2375
2353
|
* `sec` **[number][23]?** (optional, `1` by default) time in seconds to wait
|
|
2376
2354
|
|
|
2377
2355
|
Returns **void** automatically synchronized promise through #recorder
|
|
@@ -2383,7 +2361,7 @@ Element can be located by CSS or XPath.
|
|
|
2383
2361
|
|
|
2384
2362
|
#### Parameters
|
|
2385
2363
|
|
|
2386
|
-
* `locator` **([string][18] | [object][
|
|
2364
|
+
* `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
2387
2365
|
* `sec` **[number][23]** (optional) time in seconds to wait, 1 by default.
|
|
2388
2366
|
|
|
2389
2367
|
Returns **void** automatically synchronized promise through #recorder
|
|
@@ -2422,7 +2400,7 @@ I.waitForInvisible('#popup');
|
|
|
2422
2400
|
|
|
2423
2401
|
#### Parameters
|
|
2424
2402
|
|
|
2425
|
-
* `locator` **([string][18] | [object][
|
|
2403
|
+
* `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
2426
2404
|
* `sec` **[number][23]** (optional, `1` by default) time in seconds to wait
|
|
2427
2405
|
|
|
2428
2406
|
Returns **void** automatically synchronized promise through #recorder
|
|
@@ -2457,7 +2435,7 @@ I.waitForText('Thank you, form has been submitted', 5, '#modal');
|
|
|
2457
2435
|
|
|
2458
2436
|
* `text` **[string][18]** to wait for.
|
|
2459
2437
|
* `sec` **[number][23]** (optional, `1` by default) time in seconds to wait
|
|
2460
|
-
* `context` **([string][18] | [object][
|
|
2438
|
+
* `context` **([string][18] | [object][19])?** (optional) element located by CSS|XPath|strict locator.
|
|
2461
2439
|
|
|
2462
2440
|
Returns **void** automatically synchronized promise through #recorder
|
|
2463
2441
|
|
|
@@ -2471,7 +2449,7 @@ I.waitForValue('//input', "GoodValue");
|
|
|
2471
2449
|
|
|
2472
2450
|
#### Parameters
|
|
2473
2451
|
|
|
2474
|
-
* `field` **([string][18] | [object][
|
|
2452
|
+
* `field` **([string][18] | [object][19])** input field.
|
|
2475
2453
|
* `value` **[string][18]** expected value.
|
|
2476
2454
|
* `sec` **[number][23]** (optional, `1` by default) time in seconds to wait
|
|
2477
2455
|
|
|
@@ -2488,7 +2466,7 @@ I.waitForVisible('#popup');
|
|
|
2488
2466
|
|
|
2489
2467
|
#### Parameters
|
|
2490
2468
|
|
|
2491
|
-
* `locator` **([string][18] | [object][
|
|
2469
|
+
* `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
2492
2470
|
* `sec` **[number][23]** (optional, `1` by default) time in seconds to wait
|
|
2493
2471
|
|
|
2494
2472
|
Returns **void** automatically synchronized promise through #recorder
|
|
@@ -2518,7 +2496,7 @@ I.waitNumberOfVisibleElements('a', 3);
|
|
|
2518
2496
|
|
|
2519
2497
|
#### Parameters
|
|
2520
2498
|
|
|
2521
|
-
* `locator` **([string][18] | [object][
|
|
2499
|
+
* `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
2522
2500
|
* `num` **[number][23]** number of elements.
|
|
2523
2501
|
* `sec` **[number][23]** (optional, `1` by default) time in seconds to wait
|
|
2524
2502
|
|
|
@@ -2535,7 +2513,7 @@ I.waitToHide('#popup');
|
|
|
2535
2513
|
|
|
2536
2514
|
#### Parameters
|
|
2537
2515
|
|
|
2538
|
-
* `locator` **([string][18] | [object][
|
|
2516
|
+
* `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
2539
2517
|
* `sec` **[number][23]** (optional, `1` by default) time in seconds to wait
|
|
2540
2518
|
|
|
2541
2519
|
Returns **void** automatically synchronized promise through #recorder
|
|
@@ -2556,6 +2534,90 @@ I.waitUrlEquals('http://127.0.0.1:8000/info');
|
|
|
2556
2534
|
|
|
2557
2535
|
Returns **void** automatically synchronized promise through #recorder
|
|
2558
2536
|
|
|
2537
|
+
### _isShadowLocator
|
|
2538
|
+
|
|
2539
|
+
Check if locator is type of "Shadow"
|
|
2540
|
+
|
|
2541
|
+
#### Parameters
|
|
2542
|
+
|
|
2543
|
+
* `locator` **[object][19]** 
|
|
2544
|
+
|
|
2545
|
+
### _locate
|
|
2546
|
+
|
|
2547
|
+
Get elements by different locator types, including strict locator.
|
|
2548
|
+
Should be used in custom helpers:
|
|
2549
|
+
|
|
2550
|
+
```js
|
|
2551
|
+
this.helpers['WebDriver']._locate({name: 'password'}).then //...
|
|
2552
|
+
```
|
|
2553
|
+
|
|
2554
|
+
#### Parameters
|
|
2555
|
+
|
|
2556
|
+
* `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
2557
|
+
* `smartWait`
|
|
2558
|
+
|
|
2559
|
+
### _locateByRole
|
|
2560
|
+
|
|
2561
|
+
Locate elements by ARIA role using WebdriverIO accessibility selectors
|
|
2562
|
+
|
|
2563
|
+
#### Parameters
|
|
2564
|
+
|
|
2565
|
+
* `locator` **[object][19]** role locator object { role: string, text?: string, exact?: boolean }
|
|
2566
|
+
|
|
2567
|
+
### _locateCheckable
|
|
2568
|
+
|
|
2569
|
+
Find a checkbox by providing human-readable text:
|
|
2570
|
+
|
|
2571
|
+
```js
|
|
2572
|
+
this.helpers['WebDriver']._locateCheckable('I agree with terms and conditions').then // ...
|
|
2573
|
+
```
|
|
2574
|
+
|
|
2575
|
+
#### Parameters
|
|
2576
|
+
|
|
2577
|
+
* `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
2578
|
+
|
|
2579
|
+
### _locateClickable
|
|
2580
|
+
|
|
2581
|
+
Find a clickable element by providing human-readable text:
|
|
2582
|
+
|
|
2583
|
+
```js
|
|
2584
|
+
const els = await this.helpers.WebDriver._locateClickable('Next page');
|
|
2585
|
+
const els = await this.helpers.WebDriver._locateClickable('Next page', '.pages');
|
|
2586
|
+
```
|
|
2587
|
+
|
|
2588
|
+
#### Parameters
|
|
2589
|
+
|
|
2590
|
+
* `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
2591
|
+
* `context`  
|
|
2592
|
+
|
|
2593
|
+
### _locateFields
|
|
2594
|
+
|
|
2595
|
+
Find field elements by providing human-readable text:
|
|
2596
|
+
|
|
2597
|
+
```js
|
|
2598
|
+
this.helpers['WebDriver']._locateFields('Your email').then // ...
|
|
2599
|
+
```
|
|
2600
|
+
|
|
2601
|
+
#### Parameters
|
|
2602
|
+
|
|
2603
|
+
* `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
2604
|
+
|
|
2605
|
+
### _locateShadow
|
|
2606
|
+
|
|
2607
|
+
Locate Element within the Shadow Dom
|
|
2608
|
+
|
|
2609
|
+
#### Parameters
|
|
2610
|
+
|
|
2611
|
+
* `locator` **[object][19]** 
|
|
2612
|
+
|
|
2613
|
+
### _smartWait
|
|
2614
|
+
|
|
2615
|
+
Smart Wait to locate an element
|
|
2616
|
+
|
|
2617
|
+
#### Parameters
|
|
2618
|
+
|
|
2619
|
+
* `locator` **[object][19]** 
|
|
2620
|
+
|
|
2559
2621
|
[1]: http://webdriver.io/
|
|
2560
2622
|
|
|
2561
2623
|
[2]: https://webdriver.io/blog/2023/07/31/driver-management/
|
|
@@ -2588,11 +2650,11 @@ Returns **void** automatically synchronized promise through #recorder
|
|
|
2588
2650
|
|
|
2589
2651
|
[16]: http://webdriver.io/guide/usage/multiremote.html
|
|
2590
2652
|
|
|
2591
|
-
[17]:
|
|
2653
|
+
[17]: http://jster.net/category/windows-modals-popups
|
|
2592
2654
|
|
|
2593
2655
|
[18]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
|
|
2594
2656
|
|
|
2595
|
-
[19]:
|
|
2657
|
+
[19]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object
|
|
2596
2658
|
|
|
2597
2659
|
[20]: https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus
|
|
2598
2660
|
|