codeceptjs 3.5.8 → 3.5.9-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/docs/build/Appium.js +24 -24
- package/docs/build/Nightmare.js +51 -52
- package/docs/build/Playwright.js +137 -76
- package/docs/build/Protractor.js +64 -65
- package/docs/build/Puppeteer.js +74 -75
- package/docs/build/TestCafe.js +54 -55
- package/docs/build/WebDriver.js +79 -80
- package/docs/changelog.md +1 -571
- package/docs/community-helpers.md +4 -8
- package/docs/examples.md +2 -8
- package/docs/helpers/Appium.md +19 -19
- package/docs/helpers/Nightmare.md +75 -77
- package/docs/helpers/Playwright.md +350 -314
- package/docs/helpers/Protractor.md +153 -155
- package/docs/helpers/Puppeteer.md +146 -148
- package/docs/helpers/TestCafe.md +124 -126
- package/docs/helpers/WebDriver.md +155 -157
- package/docs/internal-api.md +111 -0
- package/docs/plugins.md +4 -2
- package/docs/webapi/amOnPage.mustache +1 -1
- package/docs/webapi/appendField.mustache +1 -1
- package/docs/webapi/attachFile.mustache +1 -1
- package/docs/webapi/blur.mustache +1 -1
- package/docs/webapi/checkOption.mustache +1 -1
- package/docs/webapi/clearCookie.mustache +1 -2
- package/docs/webapi/clearField.mustache +1 -1
- package/docs/webapi/click.mustache +1 -1
- package/docs/webapi/clickLink.mustache +1 -1
- package/docs/webapi/closeCurrentTab.mustache +1 -1
- package/docs/webapi/closeOtherTabs.mustache +1 -1
- package/docs/webapi/dontSee.mustache +1 -1
- package/docs/webapi/dontSeeCheckboxIsChecked.mustache +1 -1
- package/docs/webapi/dontSeeCookie.mustache +1 -1
- package/docs/webapi/dontSeeCurrentUrlEquals.mustache +1 -1
- package/docs/webapi/dontSeeElement.mustache +1 -1
- package/docs/webapi/dontSeeElementInDOM.mustache +1 -1
- package/docs/webapi/dontSeeInCurrentUrl.mustache +1 -1
- package/docs/webapi/dontSeeInField.mustache +1 -1
- package/docs/webapi/dontSeeInSource.mustache +1 -1
- package/docs/webapi/dontSeeInTitle.mustache +1 -1
- package/docs/webapi/doubleClick.mustache +1 -1
- package/docs/webapi/downloadFile.mustache +1 -1
- package/docs/webapi/dragAndDrop.mustache +1 -1
- package/docs/webapi/dragSlider.mustache +1 -1
- package/docs/webapi/fillField.mustache +1 -1
- package/docs/webapi/focus.mustache +1 -1
- package/docs/webapi/forceClick.mustache +1 -1
- package/docs/webapi/forceRightClick.mustache +1 -1
- package/docs/webapi/grabDataFromPerformanceTiming.mustache +1 -1
- package/docs/webapi/moveCursorTo.mustache +1 -1
- package/docs/webapi/openNewTab.mustache +1 -1
- package/docs/webapi/pressKey.mustache +1 -1
- package/docs/webapi/pressKeyDown.mustache +1 -1
- package/docs/webapi/pressKeyUp.mustache +1 -1
- package/docs/webapi/pressKeyWithKeyNormalization.mustache +1 -1
- package/docs/webapi/refreshPage.mustache +1 -1
- package/docs/webapi/resizeWindow.mustache +1 -1
- package/docs/webapi/rightClick.mustache +1 -1
- package/docs/webapi/saveElementScreenshot.mustache +1 -1
- package/docs/webapi/saveScreenshot.mustache +1 -1
- package/docs/webapi/say.mustache +1 -1
- package/docs/webapi/scrollIntoView.mustache +1 -1
- package/docs/webapi/scrollPageToBottom.mustache +1 -1
- package/docs/webapi/scrollPageToTop.mustache +1 -1
- package/docs/webapi/scrollTo.mustache +1 -1
- package/docs/webapi/see.mustache +1 -1
- package/docs/webapi/seeAttributesOnElements.mustache +1 -1
- package/docs/webapi/seeCheckboxIsChecked.mustache +1 -1
- package/docs/webapi/seeCookie.mustache +1 -1
- package/docs/webapi/seeCssPropertiesOnElements.mustache +1 -1
- package/docs/webapi/seeCurrentUrlEquals.mustache +1 -1
- package/docs/webapi/seeElement.mustache +1 -1
- package/docs/webapi/seeElementInDOM.mustache +1 -1
- package/docs/webapi/seeInCurrentUrl.mustache +1 -1
- package/docs/webapi/seeInField.mustache +1 -1
- package/docs/webapi/seeInPopup.mustache +1 -1
- package/docs/webapi/seeInSource.mustache +1 -1
- package/docs/webapi/seeInTitle.mustache +1 -1
- package/docs/webapi/seeNumberOfElements.mustache +1 -1
- package/docs/webapi/seeNumberOfVisibleElements.mustache +1 -1
- package/docs/webapi/seeTextEquals.mustache +1 -1
- package/docs/webapi/seeTitleEquals.mustache +1 -1
- package/docs/webapi/selectOption.mustache +1 -1
- package/docs/webapi/setCookie.mustache +1 -1
- package/docs/webapi/setGeoLocation.mustache +1 -1
- package/docs/webapi/switchTo.mustache +1 -1
- package/docs/webapi/switchToNextTab.mustache +1 -1
- package/docs/webapi/switchToPreviousTab.mustache +1 -1
- package/docs/webapi/type.mustache +1 -1
- package/docs/webapi/uncheckOption.mustache +1 -1
- package/docs/webapi/wait.mustache +1 -1
- package/docs/webapi/waitForClickable.mustache +1 -1
- package/docs/webapi/waitForDetached.mustache +1 -1
- package/docs/webapi/waitForElement.mustache +1 -1
- package/docs/webapi/waitForEnabled.mustache +1 -1
- package/docs/webapi/waitForFunction.mustache +1 -1
- package/docs/webapi/waitForInvisible.mustache +1 -1
- package/docs/webapi/waitForText.mustache +1 -1
- package/docs/webapi/waitForValue.mustache +1 -1
- package/docs/webapi/waitForVisible.mustache +1 -1
- package/docs/webapi/waitInUrl.mustache +1 -1
- package/docs/webapi/waitNumberOfVisibleElements.mustache +1 -1
- package/docs/webapi/waitToHide.mustache +1 -1
- package/docs/webapi/waitUrlEquals.mustache +1 -1
- package/lib/command/run-multiple.js +1 -1
- package/lib/command/run-workers.js +30 -4
- package/lib/command/workers/runTests.js +23 -0
- package/lib/event.js +2 -0
- package/lib/helper/Appium.js +10 -10
- package/lib/helper/Playwright.js +78 -7
- package/lib/helper/Puppeteer.js +7 -3
- package/lib/helper/WebDriver.js +6 -2
- package/lib/interfaces/gherkin.js +8 -1
- package/lib/interfaces/scenarioConfig.js +1 -0
- package/lib/locator.js +2 -2
- package/lib/plugin/autoLogin.js +4 -2
- package/lib/plugin/retryFailedStep.js +5 -0
- package/lib/plugin/stepByStepReport.js +2 -2
- package/lib/ui.js +1 -0
- package/lib/workers.js +2 -0
- package/package.json +4 -4
- package/typings/promiseBasedTypes.d.ts +449 -1008
- package/typings/types.d.ts +452 -425
|
@@ -82,7 +82,7 @@ I.amOnPage('/login'); // opens a login page
|
|
|
82
82
|
- `url` **[string][3]** url path or global url.
|
|
83
83
|
- `headers` **[object][4]?** list of request headers can be passed
|
|
84
84
|
|
|
85
|
-
Returns **
|
|
85
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
86
86
|
|
|
87
87
|
### appendField
|
|
88
88
|
|
|
@@ -100,7 +100,7 @@ I.appendField('password', secret('123456'));
|
|
|
100
100
|
- `field` **([string][3] | [object][4])** located by label|name|CSS|XPath|strict locator
|
|
101
101
|
- `value` **[string][3]** text value to append.
|
|
102
102
|
|
|
103
|
-
Returns **
|
|
103
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
104
104
|
|
|
105
105
|
### attachFile
|
|
106
106
|
|
|
@@ -118,7 +118,7 @@ I.attachFile('form input[name=avatar]', 'data/avatar.jpg');
|
|
|
118
118
|
- `locator` **([string][3] | [object][4])** field located by label|name|CSS|XPath|strict locator.
|
|
119
119
|
- `pathToFile` **[string][3]** local file path relative to codecept.conf.ts or codecept.conf.js config file.
|
|
120
120
|
|
|
121
|
-
Returns **
|
|
121
|
+
Returns **void** automatically synchronized promise through #recorderDoesn't work if the Chromium DevTools panel is open (as Chromium allows only one attachment to the debugger at a time. [See more][5])
|
|
122
122
|
|
|
123
123
|
### checkOption
|
|
124
124
|
|
|
@@ -138,7 +138,7 @@ I.checkOption('agree', '//form');
|
|
|
138
138
|
- `field` **([string][3] | [object][4])** checkbox located by label | name | CSS | XPath | strict locator.
|
|
139
139
|
- `context` **([string][3]? | [object][4])** (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
140
140
|
|
|
141
|
-
Returns **
|
|
141
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
142
142
|
|
|
143
143
|
### clearCookie
|
|
144
144
|
|
|
@@ -147,15 +147,13 @@ if none provided clears all cookies.
|
|
|
147
147
|
|
|
148
148
|
```js
|
|
149
149
|
I.clearCookie();
|
|
150
|
-
I.clearCookie('test');
|
|
150
|
+
I.clearCookie('test'); // Playwright currently doesn't support clear a particular cookie name
|
|
151
151
|
```
|
|
152
152
|
|
|
153
153
|
#### Parameters
|
|
154
154
|
|
|
155
155
|
- `cookie` **[string][3]?** (optional, `null` by default) cookie name
|
|
156
156
|
|
|
157
|
-
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
158
|
-
|
|
159
157
|
### clearField
|
|
160
158
|
|
|
161
159
|
Clears a `<textarea>` or text `<input>` element's value.
|
|
@@ -171,7 +169,7 @@ I.clearField('#email');
|
|
|
171
169
|
- `field`
|
|
172
170
|
- `editable` **([string][3] | [object][4])** field located by label|name|CSS|XPath|strict locator.
|
|
173
171
|
|
|
174
|
-
Returns **
|
|
172
|
+
Returns **void** automatically synchronized promise through #recorder.
|
|
175
173
|
|
|
176
174
|
### click
|
|
177
175
|
|
|
@@ -202,7 +200,7 @@ I.click({css: 'nav a.login'});
|
|
|
202
200
|
- `locator` **([string][3] | [object][4])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
|
|
203
201
|
- `context` **([string][3]? | [object][4] | null)** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
|
|
204
202
|
|
|
205
|
-
Returns **
|
|
203
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
206
204
|
|
|
207
205
|
### dontSee
|
|
208
206
|
|
|
@@ -219,7 +217,7 @@ I.dontSee('Login', '.nav'); // no login inside .nav element
|
|
|
219
217
|
- `text` **[string][3]** which is not present.
|
|
220
218
|
- `context` **([string][3] | [object][4])?** (optional) element located by CSS|XPath|strict locator in which to perfrom search.
|
|
221
219
|
|
|
222
|
-
Returns **
|
|
220
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
223
221
|
|
|
224
222
|
### dontSeeCheckboxIsChecked
|
|
225
223
|
|
|
@@ -235,7 +233,7 @@ I.dontSeeCheckboxIsChecked('agree'); // located by name
|
|
|
235
233
|
|
|
236
234
|
- `field` **([string][3] | [object][4])** located by label|name|CSS|XPath|strict locator.
|
|
237
235
|
|
|
238
|
-
Returns **
|
|
236
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
239
237
|
|
|
240
238
|
### dontSeeCookie
|
|
241
239
|
|
|
@@ -249,7 +247,7 @@ I.dontSeeCookie('auth'); // no auth cookie
|
|
|
249
247
|
|
|
250
248
|
- `name` **[string][3]** cookie name.
|
|
251
249
|
|
|
252
|
-
Returns **
|
|
250
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
253
251
|
|
|
254
252
|
### dontSeeCurrentUrlEquals
|
|
255
253
|
|
|
@@ -265,7 +263,7 @@ I.dontSeeCurrentUrlEquals('http://mysite.com/login'); // absolute urls are also
|
|
|
265
263
|
|
|
266
264
|
- `url` **[string][3]** value to check.
|
|
267
265
|
|
|
268
|
-
Returns **
|
|
266
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
269
267
|
|
|
270
268
|
### dontSeeElement
|
|
271
269
|
|
|
@@ -279,7 +277,7 @@ I.dontSeeElement('.modal'); // modal is not shown
|
|
|
279
277
|
|
|
280
278
|
- `locator` **([string][3] | [object][4])** located by CSS|XPath|Strict locator.
|
|
281
279
|
|
|
282
|
-
Returns **
|
|
280
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
283
281
|
|
|
284
282
|
### dontSeeElementInDOM
|
|
285
283
|
|
|
@@ -293,7 +291,7 @@ I.dontSeeElementInDOM('.nav'); // checks that element is not on page visible or
|
|
|
293
291
|
|
|
294
292
|
- `locator` **([string][3] | [object][4])** located by CSS|XPath|Strict locator.
|
|
295
293
|
|
|
296
|
-
Returns **
|
|
294
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
297
295
|
|
|
298
296
|
### dontSeeInCurrentUrl
|
|
299
297
|
|
|
@@ -303,7 +301,7 @@ Checks that current url does not contain a provided fragment.
|
|
|
303
301
|
|
|
304
302
|
- `url` **[string][3]** value to check.
|
|
305
303
|
|
|
306
|
-
Returns **
|
|
304
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
307
305
|
|
|
308
306
|
### dontSeeInField
|
|
309
307
|
|
|
@@ -320,7 +318,7 @@ I.dontSeeInField({ css: 'form input.email' }, 'user@user.com'); // field by CSS
|
|
|
320
318
|
- `field` **([string][3] | [object][4])** located by label|name|CSS|XPath|strict locator.
|
|
321
319
|
- `value` **([string][3] | [object][4])** value to check.
|
|
322
320
|
|
|
323
|
-
Returns **
|
|
321
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
324
322
|
|
|
325
323
|
### dontSeeInSource
|
|
326
324
|
|
|
@@ -335,7 +333,7 @@ I.dontSeeInSource('<!--'); // no comments in source
|
|
|
335
333
|
- `text`
|
|
336
334
|
- `value` **[string][3]** to check.
|
|
337
335
|
|
|
338
|
-
Returns **
|
|
336
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
339
337
|
|
|
340
338
|
### dontSeeInTitle
|
|
341
339
|
|
|
@@ -349,7 +347,7 @@ I.dontSeeInTitle('Error');
|
|
|
349
347
|
|
|
350
348
|
- `text` **[string][3]** value to check.
|
|
351
349
|
|
|
352
|
-
Returns **
|
|
350
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
353
351
|
|
|
354
352
|
### doubleClick
|
|
355
353
|
|
|
@@ -368,14 +366,14 @@ I.doubleClick('.btn.edit');
|
|
|
368
366
|
- `locator` **([string][3] | [object][4])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
|
|
369
367
|
- `context` **([string][3]? | [object][4])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
|
|
370
368
|
|
|
371
|
-
Returns **
|
|
369
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
372
370
|
|
|
373
371
|
### executeAsyncScript
|
|
374
372
|
|
|
375
373
|
Executes async script on page.
|
|
376
374
|
Provided function should execute a passed callback (as first argument) to signal it is finished.
|
|
377
375
|
|
|
378
|
-
Example: In Vue.js to make components completely rendered we are waiting for [nextTick][
|
|
376
|
+
Example: In Vue.js to make components completely rendered we are waiting for [nextTick][6].
|
|
379
377
|
|
|
380
378
|
```js
|
|
381
379
|
I.executeAsyncScript(function(done) {
|
|
@@ -396,9 +394,9 @@ let val = await I.executeAsyncScript(function(url, done) {
|
|
|
396
394
|
#### Parameters
|
|
397
395
|
|
|
398
396
|
- `args` **...any** to be passed to function.
|
|
399
|
-
- `fn` **([string][3] | [function][
|
|
397
|
+
- `fn` **([string][3] | [function][7])** function to be executed in browser context.
|
|
400
398
|
|
|
401
|
-
Returns **[Promise][
|
|
399
|
+
Returns **[Promise][8]<any>** script return valueWrapper for asynchronous [evaluate][9].
|
|
402
400
|
Unlike NightmareJS implementation calling `done` will return its first argument.
|
|
403
401
|
|
|
404
402
|
### executeScript
|
|
@@ -430,9 +428,9 @@ let date = await I.executeScript(function(el) {
|
|
|
430
428
|
#### Parameters
|
|
431
429
|
|
|
432
430
|
- `args` **...any** to be passed to function.
|
|
433
|
-
- `fn` **([string][3] | [function][
|
|
431
|
+
- `fn` **([string][3] | [function][7])** function to be executed in browser context.
|
|
434
432
|
|
|
435
|
-
Returns **[Promise][
|
|
433
|
+
Returns **[Promise][8]<any>** script return valueWrapper for synchronous [evaluate][9]
|
|
436
434
|
|
|
437
435
|
### fillField
|
|
438
436
|
|
|
@@ -455,7 +453,7 @@ I.fillField({css: 'form#login input[name=username]'}, 'John');
|
|
|
455
453
|
- `field` **([string][3] | [object][4])** located by label|name|CSS|XPath|strict locator.
|
|
456
454
|
- `value` **([string][3] | [object][4])** text value to fill.
|
|
457
455
|
|
|
458
|
-
Returns **
|
|
456
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
459
457
|
|
|
460
458
|
### grabAttributeFrom
|
|
461
459
|
|
|
@@ -472,7 +470,7 @@ let hint = await I.grabAttributeFrom('#tooltip', 'title');
|
|
|
472
470
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
473
471
|
- `attr` **[string][3]** attribute name.
|
|
474
472
|
|
|
475
|
-
Returns **[Promise][
|
|
473
|
+
Returns **[Promise][8]<[string][3]>** attribute value
|
|
476
474
|
|
|
477
475
|
### grabAttributeFromAll
|
|
478
476
|
|
|
@@ -488,7 +486,7 @@ let hints = await I.grabAttributeFromAll('.tooltip', 'title');
|
|
|
488
486
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
489
487
|
- `attr` **[string][3]** attribute name.
|
|
490
488
|
|
|
491
|
-
Returns **[Promise][
|
|
489
|
+
Returns **[Promise][8]<[Array][10]<[string][3]>>** attribute value
|
|
492
490
|
|
|
493
491
|
### grabCookie
|
|
494
492
|
|
|
@@ -522,7 +520,7 @@ const value = await I.grabCssPropertyFrom('h3', 'font-weight');
|
|
|
522
520
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
523
521
|
- `cssProperty` **[string][3]** CSS property name.
|
|
524
522
|
|
|
525
|
-
Returns **[Promise][
|
|
523
|
+
Returns **[Promise][8]<[string][3]>** CSS value
|
|
526
524
|
|
|
527
525
|
### grabCurrentUrl
|
|
528
526
|
|
|
@@ -534,7 +532,7 @@ let url = await I.grabCurrentUrl();
|
|
|
534
532
|
console.log(`Current URL is [${url}]`);
|
|
535
533
|
```
|
|
536
534
|
|
|
537
|
-
Returns **[Promise][
|
|
535
|
+
Returns **[Promise][8]<[string][3]>** current URL
|
|
538
536
|
|
|
539
537
|
### grabElementBoundingRect
|
|
540
538
|
|
|
@@ -562,7 +560,7 @@ const width = await I.grabElementBoundingRect('h3', 'width');
|
|
|
562
560
|
- `prop`
|
|
563
561
|
- `elementSize` **[string][3]?** x, y, width or height of the given element.
|
|
564
562
|
|
|
565
|
-
Returns **([Promise][
|
|
563
|
+
Returns **([Promise][8]<DOMRect> | [Promise][8]<[number][11]>)** Element bounding rectangle
|
|
566
564
|
|
|
567
565
|
### grabHAR
|
|
568
566
|
|
|
@@ -588,7 +586,7 @@ let postHTML = await I.grabHTMLFrom('#post');
|
|
|
588
586
|
- `locator`
|
|
589
587
|
- `element` **([string][3] | [object][4])** located by CSS|XPath|strict locator.
|
|
590
588
|
|
|
591
|
-
Returns **[Promise][
|
|
589
|
+
Returns **[Promise][8]<[string][3]>** HTML code for an element
|
|
592
590
|
|
|
593
591
|
### grabHTMLFromAll
|
|
594
592
|
|
|
@@ -604,7 +602,7 @@ let postHTMLs = await I.grabHTMLFromAll('.post');
|
|
|
604
602
|
- `locator`
|
|
605
603
|
- `element` **([string][3] | [object][4])** located by CSS|XPath|strict locator.
|
|
606
604
|
|
|
607
|
-
Returns **[Promise][
|
|
605
|
+
Returns **[Promise][8]<[Array][10]<[string][3]>>** HTML code for an element
|
|
608
606
|
|
|
609
607
|
### grabNumberOfVisibleElements
|
|
610
608
|
|
|
@@ -619,7 +617,7 @@ let numOfElements = await I.grabNumberOfVisibleElements('p');
|
|
|
619
617
|
|
|
620
618
|
- `locator` **([string][3] | [object][4])** located by CSS|XPath|strict locator.
|
|
621
619
|
|
|
622
|
-
Returns **[Promise][
|
|
620
|
+
Returns **[Promise][8]<[number][11]>** number of visible elements
|
|
623
621
|
|
|
624
622
|
### grabPageScrollPosition
|
|
625
623
|
|
|
@@ -630,7 +628,7 @@ Resumes test execution, so **should be used inside an async function with `await
|
|
|
630
628
|
let { x, y } = await I.grabPageScrollPosition();
|
|
631
629
|
```
|
|
632
630
|
|
|
633
|
-
Returns **[Promise][
|
|
631
|
+
Returns **[Promise][8]<PageScrollPosition>** scroll position
|
|
634
632
|
|
|
635
633
|
### grabTextFrom
|
|
636
634
|
|
|
@@ -647,7 +645,7 @@ If multiple elements found returns first element.
|
|
|
647
645
|
|
|
648
646
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
649
647
|
|
|
650
|
-
Returns **[Promise][
|
|
648
|
+
Returns **[Promise][8]<[string][3]>** attribute value
|
|
651
649
|
|
|
652
650
|
### grabTextFromAll
|
|
653
651
|
|
|
@@ -662,7 +660,7 @@ let pins = await I.grabTextFromAll('#pin li');
|
|
|
662
660
|
|
|
663
661
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
664
662
|
|
|
665
|
-
Returns **[Promise][
|
|
663
|
+
Returns **[Promise][8]<[Array][10]<[string][3]>>** attribute value
|
|
666
664
|
|
|
667
665
|
### grabTitle
|
|
668
666
|
|
|
@@ -673,7 +671,7 @@ Resumes test execution, so **should be used inside async with `await`** operator
|
|
|
673
671
|
let title = await I.grabTitle();
|
|
674
672
|
```
|
|
675
673
|
|
|
676
|
-
Returns **[Promise][
|
|
674
|
+
Returns **[Promise][8]<[string][3]>** title
|
|
677
675
|
|
|
678
676
|
### grabValueFrom
|
|
679
677
|
|
|
@@ -689,7 +687,7 @@ let email = await I.grabValueFrom('input[name=email]');
|
|
|
689
687
|
|
|
690
688
|
- `locator` **([string][3] | [object][4])** field located by label|name|CSS|XPath|strict locator.
|
|
691
689
|
|
|
692
|
-
Returns **[Promise][
|
|
690
|
+
Returns **[Promise][8]<[string][3]>** attribute value
|
|
693
691
|
|
|
694
692
|
### grabValueFromAll
|
|
695
693
|
|
|
@@ -704,7 +702,7 @@ let inputs = await I.grabValueFromAll('//form/input');
|
|
|
704
702
|
|
|
705
703
|
- `locator` **([string][3] | [object][4])** field located by label|name|CSS|XPath|strict locator.
|
|
706
704
|
|
|
707
|
-
Returns **[Promise][
|
|
705
|
+
Returns **[Promise][8]<[Array][10]<[string][3]>>** attribute value
|
|
708
706
|
|
|
709
707
|
### haveHeader
|
|
710
708
|
|
|
@@ -736,7 +734,7 @@ I.moveCursorTo('#submit', 5,5);
|
|
|
736
734
|
- `offsetX` **[number][11]** (optional, `0` by default) X-axis offset.
|
|
737
735
|
- `offsetY` **[number][11]** (optional, `0` by default) Y-axis offset.
|
|
738
736
|
|
|
739
|
-
Returns **
|
|
737
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
740
738
|
|
|
741
739
|
### pressKey
|
|
742
740
|
|
|
@@ -759,7 +757,7 @@ Reload the current page.
|
|
|
759
757
|
I.refreshPage();
|
|
760
758
|
```
|
|
761
759
|
|
|
762
|
-
Returns **
|
|
760
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
763
761
|
|
|
764
762
|
### resizeWindow
|
|
765
763
|
|
|
@@ -771,7 +769,7 @@ First parameter can be set to `maximize`.
|
|
|
771
769
|
- `width` **[number][11]** width in pixels or `maximize`.
|
|
772
770
|
- `height` **[number][11]** height in pixels.
|
|
773
771
|
|
|
774
|
-
Returns **
|
|
772
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
775
773
|
|
|
776
774
|
### rightClick
|
|
777
775
|
|
|
@@ -791,7 +789,7 @@ I.rightClick('Click me', '.context');
|
|
|
791
789
|
- `locator` **([string][3] | [object][4])** clickable element located by CSS|XPath|strict locator.
|
|
792
790
|
- `context` **([string][3]? | [object][4])** (optional, `null` by default) element located by CSS|XPath|strict locator.
|
|
793
791
|
|
|
794
|
-
Returns **
|
|
792
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
795
793
|
|
|
796
794
|
### saveElementScreenshot
|
|
797
795
|
|
|
@@ -807,7 +805,7 @@ I.saveElementScreenshot(`#submit`,'debug.png');
|
|
|
807
805
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
808
806
|
- `fileName` **[string][3]** file name to save.
|
|
809
807
|
|
|
810
|
-
Returns **
|
|
808
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
811
809
|
|
|
812
810
|
### saveScreenshot
|
|
813
811
|
|
|
@@ -825,7 +823,7 @@ I.saveScreenshot('debug.png', true) //resizes to available scrollHeight and scro
|
|
|
825
823
|
- `fileName` **[string][3]** file name to save.
|
|
826
824
|
- `fullPage` **[boolean][13]** (optional, `false` by default) flag to enable fullscreen screenshot mode.
|
|
827
825
|
|
|
828
|
-
Returns **
|
|
826
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
829
827
|
|
|
830
828
|
### scrollPageToBottom
|
|
831
829
|
|
|
@@ -835,7 +833,7 @@ Scroll page to the bottom.
|
|
|
835
833
|
I.scrollPageToBottom();
|
|
836
834
|
```
|
|
837
835
|
|
|
838
|
-
Returns **
|
|
836
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
839
837
|
|
|
840
838
|
### scrollPageToTop
|
|
841
839
|
|
|
@@ -845,7 +843,7 @@ Scroll page to the top.
|
|
|
845
843
|
I.scrollPageToTop();
|
|
846
844
|
```
|
|
847
845
|
|
|
848
|
-
Returns **
|
|
846
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
849
847
|
|
|
850
848
|
### scrollTo
|
|
851
849
|
|
|
@@ -863,7 +861,7 @@ I.scrollTo('#submit', 5, 5);
|
|
|
863
861
|
- `offsetX` **[number][11]** (optional, `0` by default) X-axis offset.
|
|
864
862
|
- `offsetY` **[number][11]** (optional, `0` by default) Y-axis offset.
|
|
865
863
|
|
|
866
|
-
Returns **
|
|
864
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
867
865
|
|
|
868
866
|
### see
|
|
869
867
|
|
|
@@ -881,7 +879,7 @@ I.see('Register', {css: 'form.register'}); // use strict locator
|
|
|
881
879
|
- `text` **[string][3]** expected on page.
|
|
882
880
|
- `context` **([string][3]? | [object][4])** (optional, `null` by default) element located by CSS|Xpath|strict locator in which to search for text.
|
|
883
881
|
|
|
884
|
-
Returns **
|
|
882
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
885
883
|
|
|
886
884
|
### seeCheckboxIsChecked
|
|
887
885
|
|
|
@@ -897,7 +895,7 @@ I.seeCheckboxIsChecked({css: '#signup_form input[type=checkbox]'});
|
|
|
897
895
|
|
|
898
896
|
- `field` **([string][3] | [object][4])** located by label|name|CSS|XPath|strict locator.
|
|
899
897
|
|
|
900
|
-
Returns **
|
|
898
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
901
899
|
|
|
902
900
|
### seeCookie
|
|
903
901
|
|
|
@@ -911,7 +909,7 @@ I.seeCookie('Auth');
|
|
|
911
909
|
|
|
912
910
|
- `name` **[string][3]** cookie name.
|
|
913
911
|
|
|
914
|
-
Returns **
|
|
912
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
915
913
|
|
|
916
914
|
### seeCurrentUrlEquals
|
|
917
915
|
|
|
@@ -928,7 +926,7 @@ I.seeCurrentUrlEquals('http://my.site.com/register');
|
|
|
928
926
|
|
|
929
927
|
- `url` **[string][3]** value to check.
|
|
930
928
|
|
|
931
|
-
Returns **
|
|
929
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
932
930
|
|
|
933
931
|
### seeElement
|
|
934
932
|
|
|
@@ -943,7 +941,7 @@ I.seeElement('#modal');
|
|
|
943
941
|
|
|
944
942
|
- `locator` **([string][3] | [object][4])** located by CSS|XPath|strict locator.
|
|
945
943
|
|
|
946
|
-
Returns **
|
|
944
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
947
945
|
|
|
948
946
|
### seeElementInDOM
|
|
949
947
|
|
|
@@ -958,7 +956,7 @@ I.seeElementInDOM('#modal');
|
|
|
958
956
|
|
|
959
957
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
960
958
|
|
|
961
|
-
Returns **
|
|
959
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
962
960
|
|
|
963
961
|
### seeInCurrentUrl
|
|
964
962
|
|
|
@@ -972,7 +970,7 @@ I.seeInCurrentUrl('/register'); // we are on registration page
|
|
|
972
970
|
|
|
973
971
|
- `url` **[string][3]** a fragment to check
|
|
974
972
|
|
|
975
|
-
Returns **
|
|
973
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
976
974
|
|
|
977
975
|
### seeInField
|
|
978
976
|
|
|
@@ -991,7 +989,7 @@ I.seeInField('#searchform input','Search');
|
|
|
991
989
|
- `field` **([string][3] | [object][4])** located by label|name|CSS|XPath|strict locator.
|
|
992
990
|
- `value` **([string][3] | [object][4])** value to check.
|
|
993
991
|
|
|
994
|
-
Returns **
|
|
992
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
995
993
|
|
|
996
994
|
### seeInSource
|
|
997
995
|
|
|
@@ -1005,7 +1003,7 @@ I.seeInSource('<h1>Green eggs & ham</h1>');
|
|
|
1005
1003
|
|
|
1006
1004
|
- `text` **[string][3]** value to check.
|
|
1007
1005
|
|
|
1008
|
-
Returns **
|
|
1006
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1009
1007
|
|
|
1010
1008
|
### seeInTitle
|
|
1011
1009
|
|
|
@@ -1019,7 +1017,7 @@ I.seeInTitle('Home Page');
|
|
|
1019
1017
|
|
|
1020
1018
|
- `text` **[string][3]** text value to check.
|
|
1021
1019
|
|
|
1022
|
-
Returns **
|
|
1020
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1023
1021
|
|
|
1024
1022
|
### seeNumberOfElements
|
|
1025
1023
|
|
|
@@ -1035,7 +1033,7 @@ I.seeNumberOfElements('#submitBtn', 1);
|
|
|
1035
1033
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
1036
1034
|
- `num` **[number][11]** number of elements.
|
|
1037
1035
|
|
|
1038
|
-
Returns **
|
|
1036
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1039
1037
|
|
|
1040
1038
|
### seeNumberOfVisibleElements
|
|
1041
1039
|
|
|
@@ -1051,7 +1049,7 @@ I.seeNumberOfVisibleElements('.buttons', 3);
|
|
|
1051
1049
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
1052
1050
|
- `num` **[number][11]** number of elements.
|
|
1053
1051
|
|
|
1054
|
-
Returns **
|
|
1052
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1055
1053
|
|
|
1056
1054
|
### selectOption
|
|
1057
1055
|
|
|
@@ -1079,7 +1077,7 @@ I.selectOption('Which OS do you use?', ['Android', 'iOS']);
|
|
|
1079
1077
|
- `select` **([string][3] | [object][4])** field located by label|name|CSS|XPath|strict locator.
|
|
1080
1078
|
- `option` **([string][3] | [Array][10]<any>)** visible text or value of option.
|
|
1081
1079
|
|
|
1082
|
-
Returns **
|
|
1080
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1083
1081
|
|
|
1084
1082
|
### setCookie
|
|
1085
1083
|
|
|
@@ -1101,7 +1099,7 @@ I.setCookie([
|
|
|
1101
1099
|
|
|
1102
1100
|
- `cookie` **(Cookie | [Array][10]<Cookie>)** a cookie object or array of cookie objects.
|
|
1103
1101
|
|
|
1104
|
-
Returns **
|
|
1102
|
+
Returns **void** automatically synchronized promise through #recorderWrapper for `.cookies.set(cookie)`.
|
|
1105
1103
|
[See more][14]
|
|
1106
1104
|
|
|
1107
1105
|
### triggerMouseEvent
|
|
@@ -1137,7 +1135,7 @@ I.uncheckOption('agree', '//form');
|
|
|
1137
1135
|
- `field` **([string][3] | [object][4])** checkbox located by label | name | CSS | XPath | strict locator.
|
|
1138
1136
|
- `context` **([string][3]? | [object][4])** (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
1139
1137
|
|
|
1140
|
-
Returns **
|
|
1138
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1141
1139
|
|
|
1142
1140
|
### wait
|
|
1143
1141
|
|
|
@@ -1151,7 +1149,7 @@ I.wait(2); // wait 2 secs
|
|
|
1151
1149
|
|
|
1152
1150
|
- `sec` **[number][11]** number of second to wait.
|
|
1153
1151
|
|
|
1154
|
-
Returns **
|
|
1152
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1155
1153
|
|
|
1156
1154
|
### waitForDetached
|
|
1157
1155
|
|
|
@@ -1167,7 +1165,7 @@ I.waitForDetached('#popup');
|
|
|
1167
1165
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
1168
1166
|
- `sec` **[number][11]** (optional, `1` by default) time in seconds to wait
|
|
1169
1167
|
|
|
1170
|
-
Returns **
|
|
1168
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1171
1169
|
|
|
1172
1170
|
### waitForElement
|
|
1173
1171
|
|
|
@@ -1184,7 +1182,7 @@ I.waitForElement('.btn.continue', 5); // wait for 5 secs
|
|
|
1184
1182
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
1185
1183
|
- `sec` **[number][11]?** (optional, `1` by default) time in seconds to wait
|
|
1186
1184
|
|
|
1187
|
-
Returns **
|
|
1185
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1188
1186
|
|
|
1189
1187
|
### waitForFunction
|
|
1190
1188
|
|
|
@@ -1203,11 +1201,11 @@ I.waitForFunction((count) => window.requests == count, [3], 5) // pass args and
|
|
|
1203
1201
|
|
|
1204
1202
|
#### Parameters
|
|
1205
1203
|
|
|
1206
|
-
- `fn` **([string][3] | [function][
|
|
1204
|
+
- `fn` **([string][3] | [function][7])** to be executed in browser context.
|
|
1207
1205
|
- `argsOrSec` **([Array][10]<any> | [number][11])?** (optional, `1` by default) arguments for function or seconds.
|
|
1208
1206
|
- `sec` **[number][11]?** (optional, `1` by default) time in seconds to wait
|
|
1209
1207
|
|
|
1210
|
-
Returns **
|
|
1208
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1211
1209
|
|
|
1212
1210
|
### waitForInvisible
|
|
1213
1211
|
|
|
@@ -1223,7 +1221,7 @@ I.waitForInvisible('#popup');
|
|
|
1223
1221
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
1224
1222
|
- `sec` **[number][11]** (optional, `1` by default) time in seconds to wait
|
|
1225
1223
|
|
|
1226
|
-
Returns **
|
|
1224
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1227
1225
|
|
|
1228
1226
|
### waitForText
|
|
1229
1227
|
|
|
@@ -1242,7 +1240,7 @@ I.waitForText('Thank you, form has been submitted', 5, '#modal');
|
|
|
1242
1240
|
- `sec` **[number][11]** (optional, `1` by default) time in seconds to wait
|
|
1243
1241
|
- `context` **([string][3] | [object][4])?** (optional) element located by CSS|XPath|strict locator.
|
|
1244
1242
|
|
|
1245
|
-
Returns **
|
|
1243
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1246
1244
|
|
|
1247
1245
|
### waitForVisible
|
|
1248
1246
|
|
|
@@ -1258,7 +1256,7 @@ I.waitForVisible('#popup');
|
|
|
1258
1256
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
1259
1257
|
- `sec` **[number][11]** (optional, `1` by default) time in seconds to wait
|
|
1260
1258
|
|
|
1261
|
-
Returns **
|
|
1259
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1262
1260
|
|
|
1263
1261
|
### waitToHide
|
|
1264
1262
|
|
|
@@ -1274,7 +1272,7 @@ I.waitToHide('#popup');
|
|
|
1274
1272
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
1275
1273
|
- `sec` **[number][11]** (optional, `1` by default) time in seconds to wait
|
|
1276
1274
|
|
|
1277
|
-
Returns **
|
|
1275
|
+
Returns **void** automatically synchronized promise through #recorder
|
|
1278
1276
|
|
|
1279
1277
|
[1]: https://github.com/segmentio/nightmare
|
|
1280
1278
|
|
|
@@ -1284,13 +1282,13 @@ Returns **[Promise][5]<void>** automatically synchronized promise through #re
|
|
|
1284
1282
|
|
|
1285
1283
|
[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object
|
|
1286
1284
|
|
|
1287
|
-
[5]: https://
|
|
1285
|
+
[5]: https://github.com/rosshinkley/nightmare-upload#important-note-about-setting-file-upload-inputs
|
|
1288
1286
|
|
|
1289
|
-
[6]: https://
|
|
1287
|
+
[6]: https://vuejs.org/v2/api/#Vue-nextTick
|
|
1290
1288
|
|
|
1291
|
-
[7]: https://
|
|
1289
|
+
[7]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function
|
|
1292
1290
|
|
|
1293
|
-
[8]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/
|
|
1291
|
+
[8]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise
|
|
1294
1292
|
|
|
1295
1293
|
[9]: https://github.com/segmentio/nightmare#evaluatefn-arg1-arg2
|
|
1296
1294
|
|