codeceptjs 3.5.6 → 3.5.7-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/CHANGELOG.md +2950 -0
- package/docs/bdd.md +11 -7
- package/docs/build/ApiDataFactory.js +2 -1
- package/docs/build/Appium.js +25 -23
- package/docs/build/Expect.js +422 -0
- package/docs/build/Nightmare.js +53 -56
- package/docs/build/Playwright.js +166 -103
- package/docs/build/Protractor.js +66 -69
- package/docs/build/Puppeteer.js +79 -79
- package/docs/build/TestCafe.js +56 -55
- package/docs/build/WebDriver.js +81 -82
- package/docs/changelog.md +388 -1
- package/docs/commands.md +12 -0
- package/docs/community-helpers.md +8 -4
- package/docs/examples.md +8 -2
- package/docs/helpers/Appium.md +50 -32
- package/docs/helpers/Expect.md +275 -0
- package/docs/helpers/Nightmare.md +141 -94
- package/docs/helpers/Playwright.md +280 -211
- package/docs/helpers/Protractor.md +229 -169
- package/docs/helpers/Puppeteer.md +256 -185
- package/docs/helpers/TestCafe.md +201 -149
- package/docs/helpers/WebDriver.md +252 -178
- package/docs/mobile.md +17 -21
- package/docs/plugins.md +35 -1
- 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 -0
- package/docs/webapi/checkOption.mustache +1 -1
- package/docs/webapi/clearCookie.mustache +1 -1
- 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/executeAsyncScript.mustache +0 -2
- package/docs/webapi/executeScript.mustache +0 -2
- package/docs/webapi/fillField.mustache +1 -1
- package/docs/webapi/focus.mustache +1 -0
- package/docs/webapi/forceClick.mustache +1 -1
- package/docs/webapi/forceRightClick.mustache +1 -1
- package/docs/webapi/grabCookie.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/ai.js +12 -3
- package/lib/cli.js +3 -1
- package/lib/command/dryRun.js +2 -1
- package/lib/helper/ApiDataFactory.js +2 -1
- package/lib/helper/Appium.js +7 -5
- package/lib/helper/Expect.js +422 -0
- package/lib/helper/Playwright.js +91 -32
- package/lib/helper/Puppeteer.js +2 -2
- package/lib/html.js +3 -3
- package/lib/interfaces/gherkin.js +21 -2
- package/lib/output.js +1 -1
- package/lib/pause.js +6 -3
- package/lib/plugin/autoLogin.js +35 -3
- package/lib/plugin/heal.js +40 -7
- package/lib/recorder.js +12 -5
- package/package.json +15 -8
- package/translations/de-DE.js +5 -0
- package/translations/fr-FR.js +1 -0
- package/translations/it-IT.js +1 -0
- package/translations/ja-JP.js +5 -0
- package/translations/pl-PL.js +5 -0
- package/translations/pt-BR.js +1 -0
- package/translations/ru-RU.js +1 -0
- package/translations/zh-CN.js +5 -0
- package/translations/zh-TW.js +5 -0
- package/typings/promiseBasedTypes.d.ts +904 -862
- package/typings/types.d.ts +904 -845
|
@@ -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 **void
|
|
85
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
86
86
|
|
|
87
87
|
### appendField
|
|
88
88
|
|
|
@@ -99,7 +99,8 @@ I.appendField('password', secret('123456'));
|
|
|
99
99
|
|
|
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 **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
103
104
|
|
|
104
105
|
### attachFile
|
|
105
106
|
|
|
@@ -116,7 +117,8 @@ I.attachFile('form input[name=avatar]', 'data/avatar.jpg');
|
|
|
116
117
|
|
|
117
118
|
- `locator` **([string][3] | [object][4])** field located by label|name|CSS|XPath|strict locator.
|
|
118
119
|
- `pathToFile` **[string][3]** local file path relative to codecept.conf.ts or codecept.conf.js config file.
|
|
119
|
-
|
|
120
|
+
|
|
121
|
+
Returns **[Promise][5]<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][6])
|
|
120
122
|
|
|
121
123
|
### checkOption
|
|
122
124
|
|
|
@@ -134,8 +136,9 @@ I.checkOption('agree', '//form');
|
|
|
134
136
|
#### Parameters
|
|
135
137
|
|
|
136
138
|
- `field` **([string][3] | [object][4])** checkbox located by label | name | CSS | XPath | strict locator.
|
|
137
|
-
- `context` **([string][3]? | [object][4])** (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
138
|
-
|
|
139
|
+
- `context` **([string][3]? | [object][4])** (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
140
|
+
|
|
141
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
139
142
|
|
|
140
143
|
### clearCookie
|
|
141
144
|
|
|
@@ -149,8 +152,9 @@ I.clearCookie('test');
|
|
|
149
152
|
|
|
150
153
|
#### Parameters
|
|
151
154
|
|
|
152
|
-
- `cookie` **[string][3]?** (optional, `null` by default) cookie name
|
|
153
|
-
|
|
155
|
+
- `cookie` **[string][3]?** (optional, `null` by default) cookie name
|
|
156
|
+
|
|
157
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
154
158
|
|
|
155
159
|
### clearField
|
|
156
160
|
|
|
@@ -166,7 +170,8 @@ I.clearField('#email');
|
|
|
166
170
|
|
|
167
171
|
- `field`
|
|
168
172
|
- `editable` **([string][3] | [object][4])** field located by label|name|CSS|XPath|strict locator.
|
|
169
|
-
|
|
173
|
+
|
|
174
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder.
|
|
170
175
|
|
|
171
176
|
### click
|
|
172
177
|
|
|
@@ -195,8 +200,9 @@ I.click({css: 'nav a.login'});
|
|
|
195
200
|
#### Parameters
|
|
196
201
|
|
|
197
202
|
- `locator` **([string][3] | [object][4])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
|
|
198
|
-
- `context` **([string][3]? | [object][4] | null)** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
|
|
199
|
-
|
|
203
|
+
- `context` **([string][3]? | [object][4] | null)** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
|
|
204
|
+
|
|
205
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
200
206
|
|
|
201
207
|
### dontSee
|
|
202
208
|
|
|
@@ -211,8 +217,9 @@ I.dontSee('Login', '.nav'); // no login inside .nav element
|
|
|
211
217
|
#### Parameters
|
|
212
218
|
|
|
213
219
|
- `text` **[string][3]** which is not present.
|
|
214
|
-
- `context` **([string][3] | [object][4])?** (optional) element located by CSS|XPath|strict locator in which to perfrom search.
|
|
215
|
-
|
|
220
|
+
- `context` **([string][3] | [object][4])?** (optional) element located by CSS|XPath|strict locator in which to perfrom search.
|
|
221
|
+
|
|
222
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
216
223
|
|
|
217
224
|
### dontSeeCheckboxIsChecked
|
|
218
225
|
|
|
@@ -227,7 +234,8 @@ I.dontSeeCheckboxIsChecked('agree'); // located by name
|
|
|
227
234
|
#### Parameters
|
|
228
235
|
|
|
229
236
|
- `field` **([string][3] | [object][4])** located by label|name|CSS|XPath|strict locator.
|
|
230
|
-
|
|
237
|
+
|
|
238
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
231
239
|
|
|
232
240
|
### dontSeeCookie
|
|
233
241
|
|
|
@@ -240,7 +248,8 @@ I.dontSeeCookie('auth'); // no auth cookie
|
|
|
240
248
|
#### Parameters
|
|
241
249
|
|
|
242
250
|
- `name` **[string][3]** cookie name.
|
|
243
|
-
|
|
251
|
+
|
|
252
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
244
253
|
|
|
245
254
|
### dontSeeCurrentUrlEquals
|
|
246
255
|
|
|
@@ -255,7 +264,8 @@ I.dontSeeCurrentUrlEquals('http://mysite.com/login'); // absolute urls are also
|
|
|
255
264
|
#### Parameters
|
|
256
265
|
|
|
257
266
|
- `url` **[string][3]** value to check.
|
|
258
|
-
|
|
267
|
+
|
|
268
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
259
269
|
|
|
260
270
|
### dontSeeElement
|
|
261
271
|
|
|
@@ -268,7 +278,8 @@ I.dontSeeElement('.modal'); // modal is not shown
|
|
|
268
278
|
#### Parameters
|
|
269
279
|
|
|
270
280
|
- `locator` **([string][3] | [object][4])** located by CSS|XPath|Strict locator.
|
|
271
|
-
|
|
281
|
+
|
|
282
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
272
283
|
|
|
273
284
|
### dontSeeElementInDOM
|
|
274
285
|
|
|
@@ -281,7 +292,8 @@ I.dontSeeElementInDOM('.nav'); // checks that element is not on page visible or
|
|
|
281
292
|
#### Parameters
|
|
282
293
|
|
|
283
294
|
- `locator` **([string][3] | [object][4])** located by CSS|XPath|Strict locator.
|
|
284
|
-
|
|
295
|
+
|
|
296
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
285
297
|
|
|
286
298
|
### dontSeeInCurrentUrl
|
|
287
299
|
|
|
@@ -290,7 +302,8 @@ Checks that current url does not contain a provided fragment.
|
|
|
290
302
|
#### Parameters
|
|
291
303
|
|
|
292
304
|
- `url` **[string][3]** value to check.
|
|
293
|
-
|
|
305
|
+
|
|
306
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
294
307
|
|
|
295
308
|
### dontSeeInField
|
|
296
309
|
|
|
@@ -306,7 +319,8 @@ I.dontSeeInField({ css: 'form input.email' }, 'user@user.com'); // field by CSS
|
|
|
306
319
|
|
|
307
320
|
- `field` **([string][3] | [object][4])** located by label|name|CSS|XPath|strict locator.
|
|
308
321
|
- `value` **([string][3] | [object][4])** value to check.
|
|
309
|
-
|
|
322
|
+
|
|
323
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
310
324
|
|
|
311
325
|
### dontSeeInSource
|
|
312
326
|
|
|
@@ -320,7 +334,8 @@ I.dontSeeInSource('<!--'); // no comments in source
|
|
|
320
334
|
|
|
321
335
|
- `text`
|
|
322
336
|
- `value` **[string][3]** to check.
|
|
323
|
-
|
|
337
|
+
|
|
338
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
324
339
|
|
|
325
340
|
### dontSeeInTitle
|
|
326
341
|
|
|
@@ -333,7 +348,8 @@ I.dontSeeInTitle('Error');
|
|
|
333
348
|
#### Parameters
|
|
334
349
|
|
|
335
350
|
- `text` **[string][3]** value to check.
|
|
336
|
-
|
|
351
|
+
|
|
352
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
337
353
|
|
|
338
354
|
### doubleClick
|
|
339
355
|
|
|
@@ -350,15 +366,16 @@ I.doubleClick('.btn.edit');
|
|
|
350
366
|
#### Parameters
|
|
351
367
|
|
|
352
368
|
- `locator` **([string][3] | [object][4])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
|
|
353
|
-
- `context` **([string][3]? | [object][4])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
|
|
354
|
-
|
|
369
|
+
- `context` **([string][3]? | [object][4])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
|
|
370
|
+
|
|
371
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
355
372
|
|
|
356
373
|
### executeAsyncScript
|
|
357
374
|
|
|
358
375
|
Executes async script on page.
|
|
359
376
|
Provided function should execute a passed callback (as first argument) to signal it is finished.
|
|
360
377
|
|
|
361
|
-
Example: In Vue.js to make components completely rendered we are waiting for [nextTick][
|
|
378
|
+
Example: In Vue.js to make components completely rendered we are waiting for [nextTick][7].
|
|
362
379
|
|
|
363
380
|
```js
|
|
364
381
|
I.executeAsyncScript(function(done) {
|
|
@@ -379,9 +396,9 @@ let val = await I.executeAsyncScript(function(url, done) {
|
|
|
379
396
|
#### Parameters
|
|
380
397
|
|
|
381
398
|
- `args` **...any** to be passed to function.
|
|
382
|
-
- `fn` **([string][3] | [function][
|
|
399
|
+
- `fn` **([string][3] | [function][8])** function to be executed in browser context.
|
|
383
400
|
|
|
384
|
-
Returns **[Promise][
|
|
401
|
+
Returns **[Promise][5]<any>** script return valueWrapper for asynchronous [evaluate][9].
|
|
385
402
|
Unlike NightmareJS implementation calling `done` will return its first argument.
|
|
386
403
|
|
|
387
404
|
### executeScript
|
|
@@ -413,9 +430,9 @@ let date = await I.executeScript(function(el) {
|
|
|
413
430
|
#### Parameters
|
|
414
431
|
|
|
415
432
|
- `args` **...any** to be passed to function.
|
|
416
|
-
- `fn` **([string][3] | [function][
|
|
433
|
+
- `fn` **([string][3] | [function][8])** function to be executed in browser context.
|
|
417
434
|
|
|
418
|
-
Returns **[Promise][
|
|
435
|
+
Returns **[Promise][5]<any>** script return valueWrapper for synchronous [evaluate][9]
|
|
419
436
|
|
|
420
437
|
### fillField
|
|
421
438
|
|
|
@@ -437,7 +454,8 @@ I.fillField({css: 'form#login input[name=username]'}, 'John');
|
|
|
437
454
|
|
|
438
455
|
- `field` **([string][3] | [object][4])** located by label|name|CSS|XPath|strict locator.
|
|
439
456
|
- `value` **([string][3] | [object][4])** text value to fill.
|
|
440
|
-
|
|
457
|
+
|
|
458
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
441
459
|
|
|
442
460
|
### grabAttributeFrom
|
|
443
461
|
|
|
@@ -454,7 +472,7 @@ let hint = await I.grabAttributeFrom('#tooltip', 'title');
|
|
|
454
472
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
455
473
|
- `attr` **[string][3]** attribute name.
|
|
456
474
|
|
|
457
|
-
Returns **[Promise][
|
|
475
|
+
Returns **[Promise][5]<[string][3]>** attribute value
|
|
458
476
|
|
|
459
477
|
### grabAttributeFromAll
|
|
460
478
|
|
|
@@ -470,7 +488,7 @@ let hints = await I.grabAttributeFromAll('.tooltip', 'title');
|
|
|
470
488
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
471
489
|
- `attr` **[string][3]** attribute name.
|
|
472
490
|
|
|
473
|
-
Returns **[Promise][
|
|
491
|
+
Returns **[Promise][5]<[Array][10]<[string][3]>>** attribute value
|
|
474
492
|
|
|
475
493
|
### grabCookie
|
|
476
494
|
|
|
@@ -487,7 +505,7 @@ assert(cookie.value, '123456');
|
|
|
487
505
|
|
|
488
506
|
- `name` **[string][3]?** cookie name.
|
|
489
507
|
|
|
490
|
-
Returns **
|
|
508
|
+
Returns **any** attribute valueCookie in JSON format. If name not passed returns all cookies for this domain.Multiple cookies can be received by passing query object `I.grabCookie({ secure: true});`. If you'd like get all cookies for all urls, use: `.grabCookie({ url: null }).`
|
|
491
509
|
|
|
492
510
|
### grabCssPropertyFrom
|
|
493
511
|
|
|
@@ -504,7 +522,7 @@ const value = await I.grabCssPropertyFrom('h3', 'font-weight');
|
|
|
504
522
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
505
523
|
- `cssProperty` **[string][3]** CSS property name.
|
|
506
524
|
|
|
507
|
-
Returns **[Promise][
|
|
525
|
+
Returns **[Promise][5]<[string][3]>** CSS value
|
|
508
526
|
|
|
509
527
|
### grabCurrentUrl
|
|
510
528
|
|
|
@@ -516,7 +534,7 @@ let url = await I.grabCurrentUrl();
|
|
|
516
534
|
console.log(`Current URL is [${url}]`);
|
|
517
535
|
```
|
|
518
536
|
|
|
519
|
-
Returns **[Promise][
|
|
537
|
+
Returns **[Promise][5]<[string][3]>** current URL
|
|
520
538
|
|
|
521
539
|
### grabElementBoundingRect
|
|
522
540
|
|
|
@@ -544,7 +562,7 @@ const width = await I.grabElementBoundingRect('h3', 'width');
|
|
|
544
562
|
- `prop`
|
|
545
563
|
- `elementSize` **[string][3]?** x, y, width or height of the given element.
|
|
546
564
|
|
|
547
|
-
Returns **([Promise][
|
|
565
|
+
Returns **([Promise][5]<DOMRect> | [Promise][5]<[number][11]>)** Element bounding rectangle
|
|
548
566
|
|
|
549
567
|
### grabHAR
|
|
550
568
|
|
|
@@ -570,7 +588,7 @@ let postHTML = await I.grabHTMLFrom('#post');
|
|
|
570
588
|
- `locator`
|
|
571
589
|
- `element` **([string][3] | [object][4])** located by CSS|XPath|strict locator.
|
|
572
590
|
|
|
573
|
-
Returns **[Promise][
|
|
591
|
+
Returns **[Promise][5]<[string][3]>** HTML code for an element
|
|
574
592
|
|
|
575
593
|
### grabHTMLFromAll
|
|
576
594
|
|
|
@@ -586,7 +604,7 @@ let postHTMLs = await I.grabHTMLFromAll('.post');
|
|
|
586
604
|
- `locator`
|
|
587
605
|
- `element` **([string][3] | [object][4])** located by CSS|XPath|strict locator.
|
|
588
606
|
|
|
589
|
-
Returns **[Promise][
|
|
607
|
+
Returns **[Promise][5]<[Array][10]<[string][3]>>** HTML code for an element
|
|
590
608
|
|
|
591
609
|
### grabNumberOfVisibleElements
|
|
592
610
|
|
|
@@ -601,7 +619,7 @@ let numOfElements = await I.grabNumberOfVisibleElements('p');
|
|
|
601
619
|
|
|
602
620
|
- `locator` **([string][3] | [object][4])** located by CSS|XPath|strict locator.
|
|
603
621
|
|
|
604
|
-
Returns **[Promise][
|
|
622
|
+
Returns **[Promise][5]<[number][11]>** number of visible elements
|
|
605
623
|
|
|
606
624
|
### grabPageScrollPosition
|
|
607
625
|
|
|
@@ -612,7 +630,7 @@ Resumes test execution, so **should be used inside an async function with `await
|
|
|
612
630
|
let { x, y } = await I.grabPageScrollPosition();
|
|
613
631
|
```
|
|
614
632
|
|
|
615
|
-
Returns **[Promise][
|
|
633
|
+
Returns **[Promise][5]<PageScrollPosition>** scroll position
|
|
616
634
|
|
|
617
635
|
### grabTextFrom
|
|
618
636
|
|
|
@@ -629,7 +647,7 @@ If multiple elements found returns first element.
|
|
|
629
647
|
|
|
630
648
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
631
649
|
|
|
632
|
-
Returns **[Promise][
|
|
650
|
+
Returns **[Promise][5]<[string][3]>** attribute value
|
|
633
651
|
|
|
634
652
|
### grabTextFromAll
|
|
635
653
|
|
|
@@ -644,7 +662,7 @@ let pins = await I.grabTextFromAll('#pin li');
|
|
|
644
662
|
|
|
645
663
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
646
664
|
|
|
647
|
-
Returns **[Promise][
|
|
665
|
+
Returns **[Promise][5]<[Array][10]<[string][3]>>** attribute value
|
|
648
666
|
|
|
649
667
|
### grabTitle
|
|
650
668
|
|
|
@@ -655,7 +673,7 @@ Resumes test execution, so **should be used inside async with `await`** operator
|
|
|
655
673
|
let title = await I.grabTitle();
|
|
656
674
|
```
|
|
657
675
|
|
|
658
|
-
Returns **[Promise][
|
|
676
|
+
Returns **[Promise][5]<[string][3]>** title
|
|
659
677
|
|
|
660
678
|
### grabValueFrom
|
|
661
679
|
|
|
@@ -671,7 +689,7 @@ let email = await I.grabValueFrom('input[name=email]');
|
|
|
671
689
|
|
|
672
690
|
- `locator` **([string][3] | [object][4])** field located by label|name|CSS|XPath|strict locator.
|
|
673
691
|
|
|
674
|
-
Returns **[Promise][
|
|
692
|
+
Returns **[Promise][5]<[string][3]>** attribute value
|
|
675
693
|
|
|
676
694
|
### grabValueFromAll
|
|
677
695
|
|
|
@@ -686,7 +704,7 @@ let inputs = await I.grabValueFromAll('//form/input');
|
|
|
686
704
|
|
|
687
705
|
- `locator` **([string][3] | [object][4])** field located by label|name|CSS|XPath|strict locator.
|
|
688
706
|
|
|
689
|
-
Returns **[Promise][
|
|
707
|
+
Returns **[Promise][5]<[Array][10]<[string][3]>>** attribute value
|
|
690
708
|
|
|
691
709
|
### haveHeader
|
|
692
710
|
|
|
@@ -716,8 +734,9 @@ I.moveCursorTo('#submit', 5,5);
|
|
|
716
734
|
|
|
717
735
|
- `locator` **([string][3] | [object][4])** located by CSS|XPath|strict locator.
|
|
718
736
|
- `offsetX` **[number][11]** (optional, `0` by default) X-axis offset.
|
|
719
|
-
- `offsetY` **[number][11]** (optional, `0` by default) Y-axis offset.
|
|
720
|
-
|
|
737
|
+
- `offsetY` **[number][11]** (optional, `0` by default) Y-axis offset.
|
|
738
|
+
|
|
739
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
721
740
|
|
|
722
741
|
### pressKey
|
|
723
742
|
|
|
@@ -740,7 +759,7 @@ Reload the current page.
|
|
|
740
759
|
I.refreshPage();
|
|
741
760
|
```
|
|
742
761
|
|
|
743
|
-
|
|
762
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
744
763
|
|
|
745
764
|
### resizeWindow
|
|
746
765
|
|
|
@@ -751,7 +770,8 @@ First parameter can be set to `maximize`.
|
|
|
751
770
|
|
|
752
771
|
- `width` **[number][11]** width in pixels or `maximize`.
|
|
753
772
|
- `height` **[number][11]** height in pixels.
|
|
754
|
-
|
|
773
|
+
|
|
774
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
755
775
|
|
|
756
776
|
### rightClick
|
|
757
777
|
|
|
@@ -769,8 +789,9 @@ I.rightClick('Click me', '.context');
|
|
|
769
789
|
#### Parameters
|
|
770
790
|
|
|
771
791
|
- `locator` **([string][3] | [object][4])** clickable element located by CSS|XPath|strict locator.
|
|
772
|
-
- `context` **([string][3]? | [object][4])** (optional, `null` by default) element located by CSS|XPath|strict locator.
|
|
773
|
-
|
|
792
|
+
- `context` **([string][3]? | [object][4])** (optional, `null` by default) element located by CSS|XPath|strict locator.
|
|
793
|
+
|
|
794
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
774
795
|
|
|
775
796
|
### saveElementScreenshot
|
|
776
797
|
|
|
@@ -785,7 +806,8 @@ I.saveElementScreenshot(`#submit`,'debug.png');
|
|
|
785
806
|
|
|
786
807
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
787
808
|
- `fileName` **[string][3]** file name to save.
|
|
788
|
-
|
|
809
|
+
|
|
810
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
789
811
|
|
|
790
812
|
### saveScreenshot
|
|
791
813
|
|
|
@@ -801,8 +823,9 @@ I.saveScreenshot('debug.png', true) //resizes to available scrollHeight and scro
|
|
|
801
823
|
#### Parameters
|
|
802
824
|
|
|
803
825
|
- `fileName` **[string][3]** file name to save.
|
|
804
|
-
- `fullPage` **[boolean][13]** (optional, `false` by default) flag to enable fullscreen screenshot mode.
|
|
805
|
-
|
|
826
|
+
- `fullPage` **[boolean][13]** (optional, `false` by default) flag to enable fullscreen screenshot mode.
|
|
827
|
+
|
|
828
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
806
829
|
|
|
807
830
|
### scrollPageToBottom
|
|
808
831
|
|
|
@@ -812,7 +835,7 @@ Scroll page to the bottom.
|
|
|
812
835
|
I.scrollPageToBottom();
|
|
813
836
|
```
|
|
814
837
|
|
|
815
|
-
|
|
838
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
816
839
|
|
|
817
840
|
### scrollPageToTop
|
|
818
841
|
|
|
@@ -822,7 +845,7 @@ Scroll page to the top.
|
|
|
822
845
|
I.scrollPageToTop();
|
|
823
846
|
```
|
|
824
847
|
|
|
825
|
-
|
|
848
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
826
849
|
|
|
827
850
|
### scrollTo
|
|
828
851
|
|
|
@@ -838,8 +861,9 @@ I.scrollTo('#submit', 5, 5);
|
|
|
838
861
|
|
|
839
862
|
- `locator` **([string][3] | [object][4])** located by CSS|XPath|strict locator.
|
|
840
863
|
- `offsetX` **[number][11]** (optional, `0` by default) X-axis offset.
|
|
841
|
-
- `offsetY` **[number][11]** (optional, `0` by default) Y-axis offset.
|
|
842
|
-
|
|
864
|
+
- `offsetY` **[number][11]** (optional, `0` by default) Y-axis offset.
|
|
865
|
+
|
|
866
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
843
867
|
|
|
844
868
|
### see
|
|
845
869
|
|
|
@@ -855,8 +879,9 @@ I.see('Register', {css: 'form.register'}); // use strict locator
|
|
|
855
879
|
#### Parameters
|
|
856
880
|
|
|
857
881
|
- `text` **[string][3]** expected on page.
|
|
858
|
-
- `context` **([string][3]? | [object][4])** (optional, `null` by default) element located by CSS|Xpath|strict locator in which to search for text.
|
|
859
|
-
|
|
882
|
+
- `context` **([string][3]? | [object][4])** (optional, `null` by default) element located by CSS|Xpath|strict locator in which to search for text.
|
|
883
|
+
|
|
884
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
860
885
|
|
|
861
886
|
### seeCheckboxIsChecked
|
|
862
887
|
|
|
@@ -871,7 +896,8 @@ I.seeCheckboxIsChecked({css: '#signup_form input[type=checkbox]'});
|
|
|
871
896
|
#### Parameters
|
|
872
897
|
|
|
873
898
|
- `field` **([string][3] | [object][4])** located by label|name|CSS|XPath|strict locator.
|
|
874
|
-
|
|
899
|
+
|
|
900
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
875
901
|
|
|
876
902
|
### seeCookie
|
|
877
903
|
|
|
@@ -884,7 +910,8 @@ I.seeCookie('Auth');
|
|
|
884
910
|
#### Parameters
|
|
885
911
|
|
|
886
912
|
- `name` **[string][3]** cookie name.
|
|
887
|
-
|
|
913
|
+
|
|
914
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
888
915
|
|
|
889
916
|
### seeCurrentUrlEquals
|
|
890
917
|
|
|
@@ -900,7 +927,8 @@ I.seeCurrentUrlEquals('http://my.site.com/register');
|
|
|
900
927
|
#### Parameters
|
|
901
928
|
|
|
902
929
|
- `url` **[string][3]** value to check.
|
|
903
|
-
|
|
930
|
+
|
|
931
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
904
932
|
|
|
905
933
|
### seeElement
|
|
906
934
|
|
|
@@ -914,7 +942,8 @@ I.seeElement('#modal');
|
|
|
914
942
|
#### Parameters
|
|
915
943
|
|
|
916
944
|
- `locator` **([string][3] | [object][4])** located by CSS|XPath|strict locator.
|
|
917
|
-
|
|
945
|
+
|
|
946
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
918
947
|
|
|
919
948
|
### seeElementInDOM
|
|
920
949
|
|
|
@@ -928,7 +957,8 @@ I.seeElementInDOM('#modal');
|
|
|
928
957
|
#### Parameters
|
|
929
958
|
|
|
930
959
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
931
|
-
|
|
960
|
+
|
|
961
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
932
962
|
|
|
933
963
|
### seeInCurrentUrl
|
|
934
964
|
|
|
@@ -941,7 +971,8 @@ I.seeInCurrentUrl('/register'); // we are on registration page
|
|
|
941
971
|
#### Parameters
|
|
942
972
|
|
|
943
973
|
- `url` **[string][3]** a fragment to check
|
|
944
|
-
|
|
974
|
+
|
|
975
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
945
976
|
|
|
946
977
|
### seeInField
|
|
947
978
|
|
|
@@ -959,7 +990,8 @@ I.seeInField('#searchform input','Search');
|
|
|
959
990
|
|
|
960
991
|
- `field` **([string][3] | [object][4])** located by label|name|CSS|XPath|strict locator.
|
|
961
992
|
- `value` **([string][3] | [object][4])** value to check.
|
|
962
|
-
|
|
993
|
+
|
|
994
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
963
995
|
|
|
964
996
|
### seeInSource
|
|
965
997
|
|
|
@@ -972,7 +1004,8 @@ I.seeInSource('<h1>Green eggs & ham</h1>');
|
|
|
972
1004
|
#### Parameters
|
|
973
1005
|
|
|
974
1006
|
- `text` **[string][3]** value to check.
|
|
975
|
-
|
|
1007
|
+
|
|
1008
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
976
1009
|
|
|
977
1010
|
### seeInTitle
|
|
978
1011
|
|
|
@@ -985,7 +1018,8 @@ I.seeInTitle('Home Page');
|
|
|
985
1018
|
#### Parameters
|
|
986
1019
|
|
|
987
1020
|
- `text` **[string][3]** text value to check.
|
|
988
|
-
|
|
1021
|
+
|
|
1022
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
989
1023
|
|
|
990
1024
|
### seeNumberOfElements
|
|
991
1025
|
|
|
@@ -1000,7 +1034,8 @@ I.seeNumberOfElements('#submitBtn', 1);
|
|
|
1000
1034
|
|
|
1001
1035
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
1002
1036
|
- `num` **[number][11]** number of elements.
|
|
1003
|
-
|
|
1037
|
+
|
|
1038
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
1004
1039
|
|
|
1005
1040
|
### seeNumberOfVisibleElements
|
|
1006
1041
|
|
|
@@ -1015,7 +1050,8 @@ I.seeNumberOfVisibleElements('.buttons', 3);
|
|
|
1015
1050
|
|
|
1016
1051
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
1017
1052
|
- `num` **[number][11]** number of elements.
|
|
1018
|
-
|
|
1053
|
+
|
|
1054
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
1019
1055
|
|
|
1020
1056
|
### selectOption
|
|
1021
1057
|
|
|
@@ -1042,7 +1078,8 @@ I.selectOption('Which OS do you use?', ['Android', 'iOS']);
|
|
|
1042
1078
|
|
|
1043
1079
|
- `select` **([string][3] | [object][4])** field located by label|name|CSS|XPath|strict locator.
|
|
1044
1080
|
- `option` **([string][3] | [Array][10]<any>)** visible text or value of option.
|
|
1045
|
-
|
|
1081
|
+
|
|
1082
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
1046
1083
|
|
|
1047
1084
|
### setCookie
|
|
1048
1085
|
|
|
@@ -1063,8 +1100,9 @@ I.setCookie([
|
|
|
1063
1100
|
#### Parameters
|
|
1064
1101
|
|
|
1065
1102
|
- `cookie` **(Cookie | [Array][10]<Cookie>)** a cookie object or array of cookie objects.
|
|
1066
|
-
|
|
1067
|
-
|
|
1103
|
+
|
|
1104
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorderWrapper for `.cookies.set(cookie)`.
|
|
1105
|
+
[See more][14]
|
|
1068
1106
|
|
|
1069
1107
|
### triggerMouseEvent
|
|
1070
1108
|
|
|
@@ -1097,8 +1135,9 @@ I.uncheckOption('agree', '//form');
|
|
|
1097
1135
|
#### Parameters
|
|
1098
1136
|
|
|
1099
1137
|
- `field` **([string][3] | [object][4])** checkbox located by label | name | CSS | XPath | strict locator.
|
|
1100
|
-
- `context` **([string][3]? | [object][4])** (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
1101
|
-
|
|
1138
|
+
- `context` **([string][3]? | [object][4])** (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
1139
|
+
|
|
1140
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
1102
1141
|
|
|
1103
1142
|
### wait
|
|
1104
1143
|
|
|
@@ -1111,7 +1150,8 @@ I.wait(2); // wait 2 secs
|
|
|
1111
1150
|
#### Parameters
|
|
1112
1151
|
|
|
1113
1152
|
- `sec` **[number][11]** number of second to wait.
|
|
1114
|
-
|
|
1153
|
+
|
|
1154
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
1115
1155
|
|
|
1116
1156
|
### waitForDetached
|
|
1117
1157
|
|
|
@@ -1125,8 +1165,9 @@ I.waitForDetached('#popup');
|
|
|
1125
1165
|
#### Parameters
|
|
1126
1166
|
|
|
1127
1167
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
1128
|
-
- `sec` **[number][11]** (optional, `1` by default) time in seconds to wait
|
|
1129
|
-
|
|
1168
|
+
- `sec` **[number][11]** (optional, `1` by default) time in seconds to wait
|
|
1169
|
+
|
|
1170
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
1130
1171
|
|
|
1131
1172
|
### waitForElement
|
|
1132
1173
|
|
|
@@ -1142,7 +1183,8 @@ I.waitForElement('.btn.continue', 5); // wait for 5 secs
|
|
|
1142
1183
|
|
|
1143
1184
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
1144
1185
|
- `sec` **[number][11]?** (optional, `1` by default) time in seconds to wait
|
|
1145
|
-
|
|
1186
|
+
|
|
1187
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
1146
1188
|
|
|
1147
1189
|
### waitForFunction
|
|
1148
1190
|
|
|
@@ -1161,10 +1203,11 @@ I.waitForFunction((count) => window.requests == count, [3], 5) // pass args and
|
|
|
1161
1203
|
|
|
1162
1204
|
#### Parameters
|
|
1163
1205
|
|
|
1164
|
-
- `fn` **([string][3] | [function][
|
|
1206
|
+
- `fn` **([string][3] | [function][8])** to be executed in browser context.
|
|
1165
1207
|
- `argsOrSec` **([Array][10]<any> | [number][11])?** (optional, `1` by default) arguments for function or seconds.
|
|
1166
|
-
- `sec` **[number][11]?** (optional, `1` by default) time in seconds to wait
|
|
1167
|
-
|
|
1208
|
+
- `sec` **[number][11]?** (optional, `1` by default) time in seconds to wait
|
|
1209
|
+
|
|
1210
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
1168
1211
|
|
|
1169
1212
|
### waitForInvisible
|
|
1170
1213
|
|
|
@@ -1178,8 +1221,9 @@ I.waitForInvisible('#popup');
|
|
|
1178
1221
|
#### Parameters
|
|
1179
1222
|
|
|
1180
1223
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
1181
|
-
- `sec` **[number][11]** (optional, `1` by default) time in seconds to wait
|
|
1182
|
-
|
|
1224
|
+
- `sec` **[number][11]** (optional, `1` by default) time in seconds to wait
|
|
1225
|
+
|
|
1226
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
1183
1227
|
|
|
1184
1228
|
### waitForText
|
|
1185
1229
|
|
|
@@ -1196,8 +1240,9 @@ I.waitForText('Thank you, form has been submitted', 5, '#modal');
|
|
|
1196
1240
|
|
|
1197
1241
|
- `text` **[string][3]** to wait for.
|
|
1198
1242
|
- `sec` **[number][11]** (optional, `1` by default) time in seconds to wait
|
|
1199
|
-
- `context` **([string][3] | [object][4])?** (optional) element located by CSS|XPath|strict locator.
|
|
1200
|
-
|
|
1243
|
+
- `context` **([string][3] | [object][4])?** (optional) element located by CSS|XPath|strict locator.
|
|
1244
|
+
|
|
1245
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
1201
1246
|
|
|
1202
1247
|
### waitForVisible
|
|
1203
1248
|
|
|
@@ -1211,8 +1256,9 @@ I.waitForVisible('#popup');
|
|
|
1211
1256
|
#### Parameters
|
|
1212
1257
|
|
|
1213
1258
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
1214
|
-
- `sec` **[number][11]** (optional, `1` by default) time in seconds to wait
|
|
1215
|
-
|
|
1259
|
+
- `sec` **[number][11]** (optional, `1` by default) time in seconds to wait
|
|
1260
|
+
|
|
1261
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
1216
1262
|
|
|
1217
1263
|
### waitToHide
|
|
1218
1264
|
|
|
@@ -1226,8 +1272,9 @@ I.waitToHide('#popup');
|
|
|
1226
1272
|
#### Parameters
|
|
1227
1273
|
|
|
1228
1274
|
- `locator` **([string][3] | [object][4])** element located by CSS|XPath|strict locator.
|
|
1229
|
-
- `sec` **[number][11]** (optional, `1` by default) time in seconds to wait
|
|
1230
|
-
|
|
1275
|
+
- `sec` **[number][11]** (optional, `1` by default) time in seconds to wait
|
|
1276
|
+
|
|
1277
|
+
Returns **[Promise][5]<void>** automatically synchronized promise through #recorder
|
|
1231
1278
|
|
|
1232
1279
|
[1]: https://github.com/segmentio/nightmare
|
|
1233
1280
|
|
|
@@ -1237,13 +1284,13 @@ I.waitToHide('#popup');
|
|
|
1237
1284
|
|
|
1238
1285
|
[4]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object
|
|
1239
1286
|
|
|
1240
|
-
[5]: https://
|
|
1287
|
+
[5]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise
|
|
1241
1288
|
|
|
1242
|
-
[6]: https://
|
|
1289
|
+
[6]: https://github.com/rosshinkley/nightmare-upload#important-note-about-setting-file-upload-inputs
|
|
1243
1290
|
|
|
1244
|
-
[7]: https://
|
|
1291
|
+
[7]: https://vuejs.org/v2/api/#Vue-nextTick
|
|
1245
1292
|
|
|
1246
|
-
[8]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/
|
|
1293
|
+
[8]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function
|
|
1247
1294
|
|
|
1248
1295
|
[9]: https://github.com/segmentio/nightmare#evaluatefn-arg1-arg2
|
|
1249
1296
|
|