codeceptjs 2.3.4 → 2.4.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 +52 -0
- package/README.md +28 -6
- package/bin/codecept.js +42 -0
- package/docs/advanced.md +45 -1
- package/docs/angular.md +3 -3
- package/docs/basics.md +162 -118
- package/docs/bdd.md +30 -5
- package/docs/best.md +8 -6
- package/docs/books.md +6 -1
- package/docs/build/Appium.js +95 -85
- package/docs/build/FileSystem.js +48 -3
- package/docs/build/GraphQL.js +3 -2
- package/docs/build/GraphQLDataFactory.js +1 -0
- package/docs/build/Mochawesome.js +3 -2
- package/docs/build/MockRequest.js +23 -5
- package/docs/build/Nightmare.js +87 -128
- package/docs/build/Protractor.js +107 -155
- package/docs/build/Puppeteer.js +190 -174
- package/docs/build/REST.js +13 -9
- package/docs/build/SeleniumWebdriver.js +0 -17
- package/docs/build/TestCafe.js +164 -158
- package/docs/build/WebDriver.js +236 -211
- package/docs/build/WebDriverIO.js +218 -187
- package/docs/changelog.md +57 -1
- package/docs/commands.md +41 -2
- package/docs/community-helpers.md +12 -1
- package/docs/configuration.md +5 -2
- package/docs/continuous-integration.md +22 -0
- package/docs/{helpers.md → custom-helpers.md} +16 -10
- package/docs/data.md +7 -6
- package/docs/detox.md +6 -6
- package/docs/email.md +4 -2
- package/docs/examples.md +22 -3
- package/docs/helpers/ApiDataFactory.md +15 -13
- package/docs/helpers/Appium.md +1011 -468
- package/docs/helpers/Detox.md +33 -26
- package/docs/helpers/FileSystem.md +43 -13
- package/docs/helpers/GraphQL.md +17 -15
- package/docs/helpers/GraphQLDataFactory.md +15 -13
- package/docs/helpers/Mochawesome.md +3 -1
- package/docs/helpers/MockRequest.md +37 -19
- package/docs/helpers/Nightmare.md +129 -240
- package/docs/helpers/Polly.md +1 -1
- package/docs/helpers/Protractor.md +157 -298
- package/docs/helpers/Puppeteer.md +216 -335
- package/docs/helpers/REST.md +29 -24
- package/docs/helpers/TestCafe.md +137 -235
- package/docs/helpers/WebDriver.md +250 -347
- package/docs/hooks.md +14 -10
- package/docs/index.md +112 -0
- package/docs/installation.md +3 -1
- package/docs/locators.md +19 -8
- package/docs/mobile-react-native-locators.md +2 -2
- package/docs/mobile.md +5 -3
- package/docs/nightmare.md +2 -1
- package/docs/pageobjects.md +4 -2
- package/docs/parallel.md +4 -2
- package/docs/plugins.md +41 -15
- package/docs/puppeteer.md +8 -6
- package/docs/quickstart.md +130 -0
- package/docs/react.md +4 -2
- package/docs/reports.md +6 -4
- package/docs/testcafe.md +10 -8
- package/docs/translation.md +4 -2
- package/docs/ui.md +56 -0
- package/docs/videos.md +11 -2
- package/docs/visual.md +7 -5
- package/docs/vue.md +121 -0
- package/docs/webapi/appendField.mustache +1 -1
- package/docs/webapi/attachFile.mustache +1 -1
- package/docs/webapi/checkOption.mustache +2 -2
- package/docs/webapi/clearCookie.mustache +1 -1
- package/docs/webapi/click.mustache +2 -2
- package/docs/webapi/clickLink.mustache +2 -2
- package/docs/webapi/dontSee.mustache +1 -2
- package/docs/webapi/dontSeeCheckboxIsChecked.mustache +1 -1
- package/docs/webapi/dontSeeElement.mustache +1 -1
- package/docs/webapi/dontSeeElementInDOM.mustache +1 -1
- package/docs/webapi/dontSeeInField.mustache +1 -1
- package/docs/webapi/doubleClick.mustache +2 -2
- package/docs/webapi/downloadFile.mustache +1 -1
- package/docs/webapi/dragSlider.mustache +1 -1
- package/docs/webapi/executeAsyncScript.mustache +2 -1
- package/docs/webapi/executeScript.mustache +2 -1
- package/docs/webapi/fillField.mustache +1 -1
- package/docs/webapi/grabAttributeFrom.mustache +1 -1
- package/docs/webapi/grabBrowserLogs.mustache +1 -1
- package/docs/webapi/grabCookie.mustache +2 -2
- package/docs/webapi/grabCssPropertyFrom.mustache +1 -1
- package/docs/webapi/grabHTMLFrom.mustache +1 -1
- package/docs/webapi/grabNumberOfVisibleElements.mustache +1 -1
- package/docs/webapi/grabPageScrollPosition.mustache +1 -1
- package/docs/webapi/grabTextFrom.mustache +2 -2
- package/docs/webapi/grabValueFrom.mustache +1 -1
- package/docs/webapi/moveCursorTo.mustache +3 -3
- package/docs/webapi/pressKey.mustache +1 -1
- package/docs/webapi/pressKeyWithKeyNormalization.mustache +1 -1
- package/docs/webapi/rightClick.mustache +2 -2
- package/docs/webapi/saveScreenshot.mustache +1 -1
- package/docs/webapi/scrollIntoView.mustache +10 -0
- package/docs/webapi/scrollTo.mustache +3 -3
- package/docs/webapi/see.mustache +1 -1
- package/docs/webapi/seeAttributesOnElements.mustache +1 -1
- package/docs/webapi/seeCheckboxIsChecked.mustache +1 -1
- package/docs/webapi/seeCssPropertiesOnElements.mustache +1 -1
- package/docs/webapi/seeElement.mustache +1 -1
- package/docs/webapi/seeElementInDOM.mustache +1 -1
- package/docs/webapi/seeInField.mustache +1 -1
- package/docs/webapi/seeNumberOfElements.mustache +1 -1
- package/docs/webapi/seeNumberOfVisibleElements.mustache +1 -1
- package/docs/webapi/seeTextEquals.mustache +8 -0
- package/docs/webapi/selectOption.mustache +2 -2
- package/docs/webapi/switchTo.mustache +1 -1
- package/docs/webapi/uncheckOption.mustache +2 -2
- package/docs/webapi/waitForClickable.mustache +10 -0
- package/docs/webapi/waitForDetached.mustache +2 -2
- package/docs/webapi/waitForElement.mustache +2 -2
- package/docs/webapi/waitForEnabled.mustache +2 -2
- package/docs/webapi/waitForFunction.mustache +2 -2
- package/docs/webapi/waitForInvisible.mustache +2 -2
- package/docs/webapi/waitForText.mustache +2 -2
- package/docs/webapi/waitForValue.mustache +1 -1
- package/docs/webapi/waitForVisible.mustache +2 -2
- package/docs/webapi/waitInUrl.mustache +1 -1
- package/docs/webapi/waitNumberOfVisibleElements.mustache +2 -2
- package/docs/webapi/waitToHide.mustache +2 -2
- package/docs/webapi/waitUntil.mustache +3 -2
- package/docs/webapi/waitUrlEquals.mustache +1 -1
- package/docs/webdriver.md +20 -18
- package/docs/wiki/.git/FETCH_HEAD +1 -0
- package/docs/wiki/.git/HEAD +1 -0
- package/docs/wiki/.git/ORIG_HEAD +1 -0
- package/docs/wiki/.git/config +11 -0
- package/docs/wiki/.git/description +1 -0
- package/docs/wiki/.git/hooks/applypatch-msg.sample +15 -0
- package/docs/wiki/.git/hooks/commit-msg.sample +24 -0
- package/docs/wiki/.git/hooks/fsmonitor-watchman.sample +114 -0
- package/docs/wiki/.git/hooks/post-update.sample +8 -0
- package/docs/wiki/.git/hooks/pre-applypatch.sample +14 -0
- package/docs/wiki/.git/hooks/pre-commit.sample +49 -0
- package/docs/wiki/.git/hooks/pre-push.sample +53 -0
- package/docs/wiki/.git/hooks/pre-rebase.sample +169 -0
- package/docs/wiki/.git/hooks/pre-receive.sample +24 -0
- package/docs/wiki/.git/hooks/prepare-commit-msg.sample +42 -0
- package/docs/wiki/.git/hooks/update.sample +128 -0
- package/docs/wiki/.git/index +0 -0
- package/docs/wiki/.git/info/exclude +6 -0
- package/docs/wiki/.git/logs/HEAD +4 -0
- package/docs/wiki/.git/logs/refs/heads/master +4 -0
- package/docs/wiki/.git/logs/refs/remotes/origin/HEAD +1 -0
- package/docs/wiki/.git/logs/refs/remotes/origin/master +3 -0
- package/docs/wiki/.git/objects/00/d216b0774d15db2d0a2a0d4ce249b5251acc55 +3 -0
- package/docs/wiki/.git/objects/09/01d87c5241905fdfe3493cfe8f04df4a2685ea +0 -0
- package/docs/wiki/.git/objects/0d/bdd0c20c4deb6a8cc81dbbf32ecf8c09238983 +2 -0
- package/docs/wiki/.git/objects/1a/c29e4fa82422c52392f22f0f2b8d1a759535bf +0 -0
- package/docs/wiki/.git/objects/27/12f92898d3e8f68e229b6cda76570d6c66d781 +0 -0
- package/docs/wiki/.git/objects/2d/dbe22c257166b648928eeb9460ecfb71ba702d +0 -0
- package/docs/wiki/.git/objects/2f/c942ec3773efd2678d9ff98035c61fcded81a1 +0 -0
- package/docs/wiki/.git/objects/40/a2856342c67796b48911a256b764fb06888b94 +5 -0
- package/docs/wiki/.git/objects/47/53181844fc4dc563cf3aa5e80462243cb58d38 +0 -0
- package/docs/wiki/.git/objects/4e/24a95fb2e4f8ffef51f19b694451a205c06f10 +3 -0
- package/docs/wiki/.git/objects/73/31ebd96f3c7e08a9f63f05a25f939afa0d4de1 +0 -0
- package/docs/wiki/.git/objects/86/19cbb2289caa502e33fccf0ed14eecf6ba2ba0 +0 -0
- package/docs/wiki/.git/objects/a4/72f797d9d74b87c9f71a2b1539d75bb07d1e35 +0 -0
- package/docs/wiki/.git/objects/c9/9f3e4bd227d6b050b2e416f9876df49583dbf6 +0 -0
- package/docs/wiki/.git/objects/ca/e609b4ef3e0ef85fcbe0d68d1a58246584b915 +0 -0
- package/docs/wiki/.git/objects/d5/8386ca72f6d550548f3d71d74e3ac73d5ad488 +0 -0
- package/docs/wiki/.git/objects/d9/c6874a6de524bdafeb563a20d847f4fdd59a86 +0 -0
- package/docs/wiki/.git/objects/f1/c944675bb38b40ae553b0be36c14674c79af54 +0 -0
- package/docs/wiki/.git/objects/pack/pack-28da0fc7e6c08d4c5350717bfbb7b1c53e8198ad.idx +0 -0
- package/docs/wiki/.git/objects/pack/pack-28da0fc7e6c08d4c5350717bfbb7b1c53e8198ad.pack +0 -0
- package/docs/wiki/.git/packed-refs +2 -0
- package/docs/wiki/.git/refs/heads/master +1 -0
- package/docs/wiki/.git/refs/remotes/origin/HEAD +1 -0
- package/docs/wiki/.git/refs/remotes/origin/master +1 -0
- package/docs/wiki/Books-&-Posts.md +27 -0
- package/docs/wiki/Community-Helpers.md +41 -0
- package/docs/wiki/Examples.md +138 -0
- package/docs/wiki/Home.md +11 -0
- package/docs/wiki/Release-process.md +25 -0
- package/docs/wiki/Roadmap.md +23 -0
- package/docs/wiki/Videos.md +19 -0
- package/lib/actor.js +18 -1
- package/lib/assert/error.js +3 -3
- package/lib/codecept.js +9 -6
- package/lib/command/configMigrate.js +7 -6
- package/lib/command/definitions.js +98 -350
- package/lib/command/generate.js +22 -17
- package/lib/command/gherkin/init.js +2 -1
- package/lib/command/gherkin/snippets.js +6 -6
- package/lib/command/gherkin/steps.js +0 -1
- package/lib/command/info.js +40 -0
- package/lib/command/init.js +54 -41
- package/lib/command/run-multiple.js +5 -4
- package/lib/command/run-rerun.js +39 -0
- package/lib/command/run-workers.js +4 -6
- package/lib/command/run.js +8 -18
- package/lib/command/utils.js +23 -2
- package/lib/command/workers/runTests.js +1 -2
- package/lib/config.js +10 -4
- package/lib/container.js +31 -6
- package/lib/data/dataTableArgument.js +31 -0
- package/lib/data/table.js +4 -0
- package/lib/event.js +65 -1
- package/lib/helper/Appium.js +52 -38
- package/lib/helper/FileSystem.js +48 -3
- package/lib/helper/GraphQL.js +3 -2
- package/lib/helper/GraphQLDataFactory.js +1 -0
- package/lib/helper/Mochawesome.js +3 -2
- package/lib/helper/MockRequest.js +23 -5
- package/lib/helper/Nightmare.js +5 -6
- package/lib/helper/Protractor.js +7 -8
- package/lib/helper/Puppeteer.js +76 -20
- package/lib/helper/REST.js +13 -9
- package/lib/helper/SeleniumWebdriver.js +0 -17
- package/lib/helper/TestCafe.js +84 -36
- package/lib/helper/WebDriver.js +113 -59
- package/lib/helper/WebDriverIO.js +43 -59
- package/lib/helper/clientscripts/nightmare.js +66 -4
- package/lib/helper/scripts/isElementClickable.js +24 -0
- package/lib/helper.js +34 -10
- package/lib/history.js +1 -1
- package/lib/hooks.js +2 -1
- package/lib/index.js +19 -0
- package/lib/interfaces/bdd.js +4 -0
- package/lib/interfaces/featureConfig.js +10 -3
- package/lib/interfaces/gherkin.js +6 -2
- package/lib/interfaces/scenarioConfig.js +17 -6
- package/lib/listener/config.js +1 -1
- package/lib/listener/exit.js +6 -0
- package/lib/listener/steps.js +0 -1
- package/lib/listener/trace.js +0 -1
- package/lib/locator.js +67 -2
- package/lib/output.js +53 -0
- package/lib/parser.js +2 -71
- package/lib/pause.js +3 -2
- package/lib/plugin/allure.js +41 -22
- package/lib/plugin/autoLogin.js +4 -1
- package/lib/plugin/pauseOnFail.js +38 -0
- package/lib/plugin/puppeteerCoverage.js +8 -7
- package/lib/plugin/screenshotOnFail.js +13 -8
- package/lib/plugin/stepByStepReport.js +7 -6
- package/lib/plugin/wdio.js +2 -1
- package/lib/recorder.js +85 -7
- package/lib/rerun.js +81 -0
- package/lib/secret.js +6 -0
- package/lib/session.js +9 -2
- package/lib/step.js +37 -2
- package/lib/store.js +5 -1
- package/lib/ui.js +34 -8
- package/lib/utils.js +6 -13
- package/lib/within.js +5 -0
- package/package.json +49 -29
- package/typings/Mocha.d.ts +21 -0
- package/typings/Protractor.d.ts +16 -0
- package/typings/index.d.ts +169 -0
- package/typings/jsdoc.conf.js +34 -0
- package/typings/jsdoc.namespace.js +29 -0
- package/typings/types.d.ts +9827 -0
- package/typings/utils.d.ts +7 -0
- package/docs/acceptance.md +0 -409
- package/docs/api/codecept.md +0 -75
- package/docs/api/config.md +0 -49
- package/docs/api/container.md +0 -66
- package/docs/api/helper.md +0 -116
- package/docs/api/output.md +0 -67
- package/docs/api/recorder.md +0 -63
- package/docs/helpers/SeleniumWebdriver.md +0 -92
- package/docs/helpers/WebDriverIO.md +0 -1671
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
2
|
+
permalink: /helpers/Protractor
|
|
3
|
+
editLink: false
|
|
4
|
+
sidebar: auto
|
|
3
5
|
title: Protractor
|
|
4
6
|
---
|
|
5
7
|
|
|
@@ -7,7 +9,7 @@ title: Protractor
|
|
|
7
9
|
|
|
8
10
|
## Protractor
|
|
9
11
|
|
|
10
|
-
Extends Helper
|
|
12
|
+
**Extends Helper**
|
|
11
13
|
|
|
12
14
|
Protractor helper is based on [Protractor library][1] and used for testing web applications.
|
|
13
15
|
|
|
@@ -23,7 +25,7 @@ This helper should be configured in codecept.json or codecept.conf.js
|
|
|
23
25
|
- `angular` : disable this option to run tests for non-Angular applications.
|
|
24
26
|
- `driver` - which protractor driver to use (local, direct, session, hosted, sauce, browserstack). By default set to 'hosted' which requires selenium server to be started.
|
|
25
27
|
- `restart` - restart browser between tests.
|
|
26
|
-
- `smartWait`: (optional) enables [SmartWait][3]
|
|
28
|
+
- `smartWait`: (optional) **enables [SmartWait][3]**; wait for additional milliseconds for element to appear. Enable for 5 secs: "smartWait": 5000
|
|
27
29
|
- `disableScreenshots` - don't save screenshot on failure
|
|
28
30
|
- `fullPageScreenshots` - make full page screenshots on failure.
|
|
29
31
|
- `uniqueScreenshotNames` - option to prevent screenshot override if you have scenarios with the same name in different suites
|
|
@@ -31,7 +33,7 @@ This helper should be configured in codecept.json or codecept.conf.js
|
|
|
31
33
|
- `seleniumAddress` - Selenium address to connect (default: [http://localhost:4444/wd/hub][4])
|
|
32
34
|
- `rootElement` - Root element of AngularJS application (default: body)
|
|
33
35
|
- `getPageTimeout` (optional) sets default timeout for a page to be loaded. 10000 by default.
|
|
34
|
-
- `waitForTimeout`: (optional) sets default wait time in _ms_ for all `wait
|
|
36
|
+
- `waitForTimeout`: (optional) sets default wait time in _ms_ for all `wait*` functions. 1000 by default.
|
|
35
37
|
- `scriptsTimeout`: (optional) timeout in milliseconds for each script run on the browser, 10000 by default.
|
|
36
38
|
- `windowSize`: (optional) default window size. Set to `maximize` or a dimension in the format `640x480`.
|
|
37
39
|
- `manualStart` - do not start browser before a test, start it manually inside a helper with `this.helpers["WebDriverIO"]._startBrowser()`
|
|
@@ -79,7 +81,7 @@ other options are the same as in [Protractor config][6].
|
|
|
79
81
|
"browser": "chrome",
|
|
80
82
|
"capabilities": {
|
|
81
83
|
"chromeOptions": {
|
|
82
|
-
"args": [ "--headless", "--disable-gpu", "--
|
|
84
|
+
"args": [ "--headless", "--disable-gpu", "--no-sandbox" ]
|
|
83
85
|
}
|
|
84
86
|
}
|
|
85
87
|
}
|
|
@@ -101,15 +103,15 @@ this.helpers['Protractor'].browser
|
|
|
101
103
|
|
|
102
104
|
- `config`
|
|
103
105
|
|
|
104
|
-
###
|
|
106
|
+
### _getWindowHandle
|
|
105
107
|
|
|
106
108
|
Get the window handle relative to the current handle. i.e. the next handle or the previous.
|
|
107
109
|
|
|
108
110
|
#### Parameters
|
|
109
111
|
|
|
110
|
-
- `offset` [Number][7] Offset from current handle index. i.e. offset < 0 will go to the previous handle and positive number will go to the next window handle in sequence.
|
|
112
|
+
- `offset` **[Number][7]** Offset from current handle index. i.e. offset < 0 will go to the previous handle and positive number will go to the next window handle in sequence.
|
|
111
113
|
|
|
112
|
-
###
|
|
114
|
+
### _locate
|
|
113
115
|
|
|
114
116
|
Get elements by different locator types, including strict locator
|
|
115
117
|
Should be used in custom helpers:
|
|
@@ -129,7 +131,7 @@ this.helpers['Protractor']._locate({name: 'password'}, true).then //...
|
|
|
129
131
|
- `locator`
|
|
130
132
|
- `smartWait`
|
|
131
133
|
|
|
132
|
-
###
|
|
134
|
+
### _locateCheckable
|
|
133
135
|
|
|
134
136
|
Find a checkbox by providing human readable text:
|
|
135
137
|
|
|
@@ -141,7 +143,7 @@ this.helpers['Protractor']._locateCheckable('I agree with terms and conditions')
|
|
|
141
143
|
|
|
142
144
|
- `locator`
|
|
143
145
|
|
|
144
|
-
###
|
|
146
|
+
### _locateClickable
|
|
145
147
|
|
|
146
148
|
Find a clickable element by providing human readable text:
|
|
147
149
|
|
|
@@ -153,7 +155,7 @@ this.helpers['Protractor']._locateClickable('Next page').then // ...
|
|
|
153
155
|
|
|
154
156
|
- `locator`
|
|
155
157
|
|
|
156
|
-
###
|
|
158
|
+
### _locateFields
|
|
157
159
|
|
|
158
160
|
Find field elements by providing human readable text:
|
|
159
161
|
|
|
@@ -189,9 +191,7 @@ I.amOnPage('/login'); // opens a login page
|
|
|
189
191
|
|
|
190
192
|
#### Parameters
|
|
191
193
|
|
|
192
|
-
- `url` [string][9] url path or global url.
|
|
193
|
-
|
|
194
|
-
|
|
194
|
+
- `url` **[string][9]** url path or global url.
|
|
195
195
|
|
|
196
196
|
### amOutsideAngularApp
|
|
197
197
|
|
|
@@ -209,10 +209,8 @@ I.appendField('#myTextField', 'appended');
|
|
|
209
209
|
|
|
210
210
|
#### Parameters
|
|
211
211
|
|
|
212
|
-
- `field` ([string][9]
|
|
213
|
-
- `value` [string][9] text value to append.
|
|
214
|
-
|
|
215
|
-
|
|
212
|
+
- `field` **([string][9] | [object][10])** located by label|name|CSS|XPath|strict locator
|
|
213
|
+
- `value` **[string][9]** text value to append.
|
|
216
214
|
|
|
217
215
|
### attachFile
|
|
218
216
|
|
|
@@ -227,10 +225,8 @@ I.attachFile('form input[name=avatar]', 'data/avatar.jpg');
|
|
|
227
225
|
|
|
228
226
|
#### Parameters
|
|
229
227
|
|
|
230
|
-
- `locator` ([string][9]
|
|
231
|
-
- `pathToFile` [string][9] local file path relative to codecept.json config file.
|
|
232
|
-
|
|
233
|
-
|
|
228
|
+
- `locator` **([string][9] | [object][10])** field located by label|name|CSS|XPath|strict locator.
|
|
229
|
+
- `pathToFile` **[string][9]** local file path relative to codecept.json config file.
|
|
234
230
|
|
|
235
231
|
### cancelPopup
|
|
236
232
|
|
|
@@ -251,10 +247,8 @@ I.checkOption('agree', '//form');
|
|
|
251
247
|
|
|
252
248
|
#### Parameters
|
|
253
249
|
|
|
254
|
-
- `field` ([string][9]
|
|
255
|
-
- `context` [string][9] (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
256
|
-
|
|
257
|
-
|
|
250
|
+
- `field` **([string][9] | [object][10])** checkbox located by label | name | CSS | XPath | strict locator.
|
|
251
|
+
- `context` **([string][9]? | [object][10])** (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
258
252
|
|
|
259
253
|
### clearCookie
|
|
260
254
|
|
|
@@ -268,9 +262,7 @@ I.clearCookie('test');
|
|
|
268
262
|
|
|
269
263
|
#### Parameters
|
|
270
264
|
|
|
271
|
-
- `cookie` [string][9] (optional, `null` by default) cookie name
|
|
272
|
-
|
|
273
|
-
|
|
265
|
+
- `cookie` **[string][9]?** (optional, `null` by default) cookie name
|
|
274
266
|
|
|
275
267
|
### clearField
|
|
276
268
|
|
|
@@ -285,9 +277,7 @@ I.clearField('#email');
|
|
|
285
277
|
#### Parameters
|
|
286
278
|
|
|
287
279
|
- `field`
|
|
288
|
-
- `editable` ([string][9]
|
|
289
|
-
|
|
290
|
-
|
|
280
|
+
- `editable` **([string][9] | [object][10])** field located by label|name|CSS|XPath|strict locator.
|
|
291
281
|
|
|
292
282
|
### click
|
|
293
283
|
|
|
@@ -306,7 +296,7 @@ I.click('Submit');
|
|
|
306
296
|
// CSS button
|
|
307
297
|
I.click('#form input[type=submit]');
|
|
308
298
|
// XPath
|
|
309
|
-
I.click('//form
|
|
299
|
+
I.click('//form/*[@type=submit]');
|
|
310
300
|
// link in context
|
|
311
301
|
I.click('Logout', '#nav');
|
|
312
302
|
// using strict locator
|
|
@@ -315,10 +305,8 @@ I.click({css: 'nav a.login'});
|
|
|
315
305
|
|
|
316
306
|
#### Parameters
|
|
317
307
|
|
|
318
|
-
- `locator` ([string][9]
|
|
319
|
-
- `context` ([string][9]
|
|
320
|
-
|
|
321
|
-
|
|
308
|
+
- `locator` **([string][9] | [object][10])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
|
|
309
|
+
- `context` **([string][9]? | [object][10])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
|
|
322
310
|
|
|
323
311
|
### closeCurrentTab
|
|
324
312
|
|
|
@@ -348,9 +336,8 @@ I.dontSee('Login', '.nav'); // no login inside .nav element
|
|
|
348
336
|
|
|
349
337
|
#### Parameters
|
|
350
338
|
|
|
351
|
-
- `text` [string][9] which is not present.
|
|
352
|
-
- `context` ([string][9]
|
|
353
|
-
|
|
339
|
+
- `text` **[string][9]** which is not present.
|
|
340
|
+
- `context` **([string][9] | [object][10])?** (optional) element located by CSS|XPath|strict locator in which to perfrom search.
|
|
354
341
|
|
|
355
342
|
### dontSeeCheckboxIsChecked
|
|
356
343
|
|
|
@@ -364,9 +351,7 @@ I.dontSeeCheckboxIsChecked('agree'); // located by name
|
|
|
364
351
|
|
|
365
352
|
#### Parameters
|
|
366
353
|
|
|
367
|
-
- `field` ([string][9]
|
|
368
|
-
|
|
369
|
-
|
|
354
|
+
- `field` **([string][9] | [object][10])** located by label|name|CSS|XPath|strict locator.
|
|
370
355
|
|
|
371
356
|
### dontSeeCookie
|
|
372
357
|
|
|
@@ -378,9 +363,7 @@ I.dontSeeCookie('auth'); // no auth cookie
|
|
|
378
363
|
|
|
379
364
|
#### Parameters
|
|
380
365
|
|
|
381
|
-
- `name` [string][9] cookie name.
|
|
382
|
-
|
|
383
|
-
|
|
366
|
+
- `name` **[string][9]** cookie name.
|
|
384
367
|
|
|
385
368
|
### dontSeeCurrentUrlEquals
|
|
386
369
|
|
|
@@ -394,9 +377,7 @@ I.dontSeeCurrentUrlEquals('http://mysite.com/login'); // absolute urls are also
|
|
|
394
377
|
|
|
395
378
|
#### Parameters
|
|
396
379
|
|
|
397
|
-
- `url` [string][9] value to check.
|
|
398
|
-
|
|
399
|
-
|
|
380
|
+
- `url` **[string][9]** value to check.
|
|
400
381
|
|
|
401
382
|
### dontSeeElement
|
|
402
383
|
|
|
@@ -408,9 +389,7 @@ I.dontSeeElement('.modal'); // modal is not shown
|
|
|
408
389
|
|
|
409
390
|
#### Parameters
|
|
410
391
|
|
|
411
|
-
- `locator` ([string][9]
|
|
412
|
-
|
|
413
|
-
|
|
392
|
+
- `locator` **([string][9] | [object][10])** located by CSS|XPath|Strict locator.
|
|
414
393
|
|
|
415
394
|
### dontSeeElementInDOM
|
|
416
395
|
|
|
@@ -422,9 +401,7 @@ I.dontSeeElementInDOM('.nav'); // checks that element is not on page visible or
|
|
|
422
401
|
|
|
423
402
|
#### Parameters
|
|
424
403
|
|
|
425
|
-
- `locator` ([string][9]
|
|
426
|
-
|
|
427
|
-
|
|
404
|
+
- `locator` **([string][9] | [object][10])** located by CSS|XPath|Strict locator.
|
|
428
405
|
|
|
429
406
|
### dontSeeInCurrentUrl
|
|
430
407
|
|
|
@@ -432,9 +409,7 @@ Checks that current url does not contain a provided fragment.
|
|
|
432
409
|
|
|
433
410
|
#### Parameters
|
|
434
411
|
|
|
435
|
-
- `url` [string][9] value to check.
|
|
436
|
-
|
|
437
|
-
|
|
412
|
+
- `url` **[string][9]** value to check.
|
|
438
413
|
|
|
439
414
|
### dontSeeInField
|
|
440
415
|
|
|
@@ -448,10 +423,8 @@ I.dontSeeInField({ css: 'form input.email' }, 'user@user.com'); // field by CSS
|
|
|
448
423
|
|
|
449
424
|
#### Parameters
|
|
450
425
|
|
|
451
|
-
- `field` ([string][9]
|
|
452
|
-
- `value` [string][9] value to check.
|
|
453
|
-
|
|
454
|
-
|
|
426
|
+
- `field` **([string][9] | [object][10])** located by label|name|CSS|XPath|strict locator.
|
|
427
|
+
- `value` **[string][9]** value to check.
|
|
455
428
|
|
|
456
429
|
### dontSeeInSource
|
|
457
430
|
|
|
@@ -464,9 +437,7 @@ I.dontSeeInSource('<!--'); // no comments in source
|
|
|
464
437
|
#### Parameters
|
|
465
438
|
|
|
466
439
|
- `text`
|
|
467
|
-
- `value` [string][9] to check.
|
|
468
|
-
|
|
469
|
-
|
|
440
|
+
- `value` **[string][9]** to check.
|
|
470
441
|
|
|
471
442
|
### dontSeeInTitle
|
|
472
443
|
|
|
@@ -478,9 +449,7 @@ I.dontSeeInTitle('Error');
|
|
|
478
449
|
|
|
479
450
|
#### Parameters
|
|
480
451
|
|
|
481
|
-
- `text` [string][9] value to check.
|
|
482
|
-
|
|
483
|
-
|
|
452
|
+
- `text` **[string][9]** value to check.
|
|
484
453
|
|
|
485
454
|
### doubleClick
|
|
486
455
|
|
|
@@ -496,10 +465,8 @@ I.doubleClick('.btn.edit');
|
|
|
496
465
|
|
|
497
466
|
#### Parameters
|
|
498
467
|
|
|
499
|
-
- `locator` ([string][9]
|
|
500
|
-
- `context` ([string][9]
|
|
501
|
-
|
|
502
|
-
|
|
468
|
+
- `locator` **([string][9] | [object][10])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
|
|
469
|
+
- `context` **([string][9]? | [object][10])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
|
|
503
470
|
|
|
504
471
|
### dragAndDrop
|
|
505
472
|
|
|
@@ -511,10 +478,8 @@ I.dragAndDrop('#dragHandle', '#container');
|
|
|
511
478
|
|
|
512
479
|
#### Parameters
|
|
513
480
|
|
|
514
|
-
- `srcElement` ([string][9]
|
|
515
|
-
- `destElement` ([string][9]
|
|
516
|
-
|
|
517
|
-
|
|
481
|
+
- `srcElement` **([string][9] | [object][10])** located by CSS|XPath|strict locator.
|
|
482
|
+
- `destElement` **([string][9] | [object][10])** located by CSS|XPath|strict locator.
|
|
518
483
|
|
|
519
484
|
### executeAsyncScript
|
|
520
485
|
|
|
@@ -541,7 +506,10 @@ let val = await I.executeAsyncScript(function(url, done) {
|
|
|
541
506
|
|
|
542
507
|
#### Parameters
|
|
543
508
|
|
|
544
|
-
- `fn` ([string][9]
|
|
509
|
+
- `fn` **([string][9] | [function][12])** function to be executed in browser context.
|
|
510
|
+
- `args` **...any** to be passed to function.
|
|
511
|
+
|
|
512
|
+
Returns **[Promise][13]<any>**
|
|
545
513
|
|
|
546
514
|
### executeScript
|
|
547
515
|
|
|
@@ -571,7 +539,10 @@ let date = await I.executeScript(function(el) {
|
|
|
571
539
|
|
|
572
540
|
#### Parameters
|
|
573
541
|
|
|
574
|
-
- `fn` ([string][9]
|
|
542
|
+
- `fn` **([string][9] | [function][12])** function to be executed in browser context.
|
|
543
|
+
- `args` **...any** to be passed to function.
|
|
544
|
+
|
|
545
|
+
Returns **[Promise][13]<any>**
|
|
575
546
|
|
|
576
547
|
### fillField
|
|
577
548
|
|
|
@@ -591,16 +562,14 @@ I.fillField({css: 'form#login input[name=username]'}, 'John');
|
|
|
591
562
|
|
|
592
563
|
#### Parameters
|
|
593
564
|
|
|
594
|
-
- `field` ([string][9]
|
|
595
|
-
- `value` [string][9] text value to fill.
|
|
596
|
-
|
|
597
|
-
|
|
565
|
+
- `field` **([string][9] | [object][10])** located by label|name|CSS|XPath|strict locator.
|
|
566
|
+
- `value` **[string][9]** text value to fill.
|
|
598
567
|
|
|
599
568
|
### grabAttributeFrom
|
|
600
569
|
|
|
601
570
|
Retrieves an attribute from an element located by CSS or XPath and returns it to test.
|
|
602
571
|
An array as a result will be returned if there are more than one matched element.
|
|
603
|
-
Resumes test execution, so should be used inside async with `await
|
|
572
|
+
Resumes test execution, so **should be used inside async with `await`** operator.
|
|
604
573
|
|
|
605
574
|
```js
|
|
606
575
|
let hint = await I.grabAttributeFrom('#tooltip', 'title');
|
|
@@ -608,33 +577,28 @@ let hint = await I.grabAttributeFrom('#tooltip', 'title');
|
|
|
608
577
|
|
|
609
578
|
#### Parameters
|
|
610
579
|
|
|
611
|
-
- `locator` ([string][9]
|
|
612
|
-
- `attr` [string][9] attribute name.
|
|
613
|
-
|
|
614
|
-
Returns [Promise][13]<[string][9]> attribute value
|
|
615
|
-
|
|
580
|
+
- `locator` **([string][9] | [object][10])** element located by CSS|XPath|strict locator.
|
|
581
|
+
- `attr` **[string][9]** attribute name.
|
|
616
582
|
|
|
583
|
+
Returns **[Promise][13]<[string][9]>** attribute value
|
|
617
584
|
|
|
618
585
|
### grabBrowserLogs
|
|
619
586
|
|
|
620
587
|
Get JS log from browser. Log buffer is reset after each request.
|
|
621
|
-
Resumes test execution, so should be used inside an async function with `await
|
|
588
|
+
Resumes test execution, so **should be used inside an async function with `await`** operator.
|
|
622
589
|
|
|
623
590
|
```js
|
|
624
591
|
let logs = await I.grabBrowserLogs();
|
|
625
592
|
console.log(JSON.stringify(logs))
|
|
626
593
|
```
|
|
627
594
|
|
|
628
|
-
Returns [Promise][13]<[Array][14]
|
|
629
|
-
|
|
630
|
-
|
|
595
|
+
Returns **[Promise][13]<[Array][14]<any>>** all browser logs
|
|
631
596
|
|
|
632
597
|
### grabCookie
|
|
633
598
|
|
|
634
599
|
Gets a cookie object by name.
|
|
635
600
|
If none provided gets all cookies.
|
|
636
|
-
|
|
637
|
-
- Resumes test execution, so should be used inside async with `await` operator.
|
|
601
|
+
Resumes test execution, so **should be used inside async with `await`** operator.
|
|
638
602
|
|
|
639
603
|
```js
|
|
640
604
|
let cookie = await I.grabCookie('auth');
|
|
@@ -643,16 +607,14 @@ assert(cookie.value, '123456');
|
|
|
643
607
|
|
|
644
608
|
#### Parameters
|
|
645
609
|
|
|
646
|
-
- `name`
|
|
647
|
-
|
|
648
|
-
Returns [Promise][13]<[string][9]> attribute value
|
|
610
|
+
- `name` **[string][9]?** cookie name.
|
|
649
611
|
|
|
650
|
-
Returns cookie in JSON [format][15].
|
|
612
|
+
Returns **[Promise][13]<[string][9]>** attribute valueReturns cookie in JSON [format][15].
|
|
651
613
|
|
|
652
614
|
### grabCssPropertyFrom
|
|
653
615
|
|
|
654
616
|
Grab CSS property for given locator
|
|
655
|
-
Resumes test execution, so should be used inside an async function with `await
|
|
617
|
+
Resumes test execution, so **should be used inside an async function with `await`** operator.
|
|
656
618
|
|
|
657
619
|
```js
|
|
658
620
|
const value = await I.grabCssPropertyFrom('h3', 'font-weight');
|
|
@@ -660,12 +622,10 @@ const value = await I.grabCssPropertyFrom('h3', 'font-weight');
|
|
|
660
622
|
|
|
661
623
|
#### Parameters
|
|
662
624
|
|
|
663
|
-
- `locator` ([string][9]
|
|
664
|
-
- `cssProperty` [string][9] CSS property name.
|
|
665
|
-
|
|
666
|
-
Returns [Promise][13]<[string][9]> CSS value
|
|
667
|
-
|
|
625
|
+
- `locator` **([string][9] | [object][10])** element located by CSS|XPath|strict locator.
|
|
626
|
+
- `cssProperty` **[string][9]** CSS property name.
|
|
668
627
|
|
|
628
|
+
Returns **[Promise][13]<[string][9]>** CSS value
|
|
669
629
|
|
|
670
630
|
### grabCurrentUrl
|
|
671
631
|
|
|
@@ -677,14 +637,12 @@ let url = await I.grabCurrentUrl();
|
|
|
677
637
|
console.log(`Current URL is [${url}]`);
|
|
678
638
|
```
|
|
679
639
|
|
|
680
|
-
Returns [Promise][13]<[string][9]
|
|
681
|
-
|
|
682
|
-
|
|
640
|
+
Returns **[Promise][13]<[string][9]>** current URL
|
|
683
641
|
|
|
684
642
|
### grabHTMLFrom
|
|
685
643
|
|
|
686
644
|
Retrieves the innerHTML from an element located by CSS or XPath and returns it to test.
|
|
687
|
-
Resumes test execution, so should be used inside async function with `await
|
|
645
|
+
Resumes test execution, so **should be used inside async function with `await`** operator.
|
|
688
646
|
If more than one element is found - an array of HTMLs returned.
|
|
689
647
|
|
|
690
648
|
```js
|
|
@@ -693,11 +651,10 @@ let postHTML = await I.grabHTMLFrom('#post');
|
|
|
693
651
|
|
|
694
652
|
#### Parameters
|
|
695
653
|
|
|
696
|
-
- `locator`
|
|
697
|
-
|
|
698
|
-
Returns [Promise][13]<[string][9]> HTML code for an element
|
|
699
|
-
|
|
654
|
+
- `locator`
|
|
655
|
+
- `element` **([string][9] | [object][10])** located by CSS|XPath|strict locator.
|
|
700
656
|
|
|
657
|
+
Returns **[Promise][13]<[string][9]>** HTML code for an element
|
|
701
658
|
|
|
702
659
|
### grabNumberOfOpenTabs
|
|
703
660
|
|
|
@@ -707,9 +664,7 @@ Grab number of open tabs.
|
|
|
707
664
|
let tabs = await I.grabNumberOfOpenTabs();
|
|
708
665
|
```
|
|
709
666
|
|
|
710
|
-
Returns [Promise][13]<[number][7]
|
|
711
|
-
|
|
712
|
-
|
|
667
|
+
Returns **[Promise][13]<[number][7]>** number of open tabs
|
|
713
668
|
|
|
714
669
|
### grabNumberOfVisibleElements
|
|
715
670
|
|
|
@@ -721,24 +676,20 @@ let numOfElements = await I.grabNumberOfVisibleElements('p');
|
|
|
721
676
|
|
|
722
677
|
#### Parameters
|
|
723
678
|
|
|
724
|
-
- `locator` ([string][9]
|
|
725
|
-
|
|
726
|
-
Returns [Promise][13]<[number][7]> number of visible elements
|
|
727
|
-
|
|
679
|
+
- `locator` **([string][9] | [object][10])** located by CSS|XPath|strict locator.
|
|
728
680
|
|
|
681
|
+
Returns **[Promise][13]<[number][7]>** number of visible elements
|
|
729
682
|
|
|
730
683
|
### grabPageScrollPosition
|
|
731
684
|
|
|
732
685
|
Retrieves a page scroll position and returns it to test.
|
|
733
|
-
Resumes test execution, so should be used inside an async function with `await
|
|
686
|
+
Resumes test execution, so **should be used inside an async function with `await`** operator.
|
|
734
687
|
|
|
735
688
|
```js
|
|
736
689
|
let { x, y } = await I.grabPageScrollPosition();
|
|
737
690
|
```
|
|
738
691
|
|
|
739
|
-
Returns [Promise][13]<[
|
|
740
|
-
|
|
741
|
-
|
|
692
|
+
Returns **[Promise][13]<[Object][10]<[string][9], any>>** scroll position
|
|
742
693
|
|
|
743
694
|
### grabPopupText
|
|
744
695
|
|
|
@@ -757,14 +708,12 @@ Resumes test execution, so should be used inside an async function.
|
|
|
757
708
|
let pageSource = await I.grabSource();
|
|
758
709
|
```
|
|
759
710
|
|
|
760
|
-
Returns [Promise][13]<[string][9]
|
|
761
|
-
|
|
762
|
-
|
|
711
|
+
Returns **[Promise][13]<[string][9]>** source code
|
|
763
712
|
|
|
764
713
|
### grabTextFrom
|
|
765
714
|
|
|
766
715
|
Retrieves a text from an element located by CSS or XPath and returns it to test.
|
|
767
|
-
Resumes test execution, so should be used inside async with `await
|
|
716
|
+
Resumes test execution, so **should be used inside async with `await`** operator.
|
|
768
717
|
|
|
769
718
|
```js
|
|
770
719
|
let pin = await I.grabTextFrom('#pin');
|
|
@@ -774,29 +723,25 @@ If multiple elements found returns an array of texts.
|
|
|
774
723
|
|
|
775
724
|
#### Parameters
|
|
776
725
|
|
|
777
|
-
- `locator`
|
|
778
|
-
|
|
779
|
-
Returns [Promise][13]<[string][9]> attribute value
|
|
780
|
-
|
|
726
|
+
- `locator` **([string][9] | [object][10])** element located by CSS|XPath|strict locator.
|
|
781
727
|
|
|
728
|
+
Returns **[Promise][13]<([string][9] | [Array][14]<[string][9]>)>** attribute value
|
|
782
729
|
|
|
783
730
|
### grabTitle
|
|
784
731
|
|
|
785
732
|
Retrieves a page title and returns it to test.
|
|
786
|
-
Resumes test execution, so should be used inside async with `await
|
|
733
|
+
Resumes test execution, so **should be used inside async with `await`** operator.
|
|
787
734
|
|
|
788
735
|
```js
|
|
789
736
|
let title = await I.grabTitle();
|
|
790
737
|
```
|
|
791
738
|
|
|
792
|
-
Returns [Promise][13]<[string][9]
|
|
793
|
-
|
|
794
|
-
|
|
739
|
+
Returns **[Promise][13]<[string][9]>** title
|
|
795
740
|
|
|
796
741
|
### grabValueFrom
|
|
797
742
|
|
|
798
743
|
Retrieves a value from a form element located by CSS or XPath and returns it to test.
|
|
799
|
-
Resumes test execution, so should be used inside async function with `await
|
|
744
|
+
Resumes test execution, so **should be used inside async function with `await`** operator.
|
|
800
745
|
|
|
801
746
|
```js
|
|
802
747
|
let email = await I.grabValueFrom('input[name=email]');
|
|
@@ -804,11 +749,9 @@ let email = await I.grabValueFrom('input[name=email]');
|
|
|
804
749
|
|
|
805
750
|
#### Parameters
|
|
806
751
|
|
|
807
|
-
- `locator` ([string][9]
|
|
808
|
-
|
|
809
|
-
Returns [Promise][13]<[string][9]> attribute value
|
|
810
|
-
|
|
752
|
+
- `locator` **([string][9] | [object][10])** field located by label|name|CSS|XPath|strict locator.
|
|
811
753
|
|
|
754
|
+
Returns **[Promise][13]<[string][9]>** attribute value
|
|
812
755
|
|
|
813
756
|
### haveModule
|
|
814
757
|
|
|
@@ -837,11 +780,9 @@ I.moveCursorTo('#submit', 5,5);
|
|
|
837
780
|
|
|
838
781
|
#### Parameters
|
|
839
782
|
|
|
840
|
-
- `locator` ([string][9]
|
|
841
|
-
- `offsetX` [number][7] (optional, `0` by default) X-axis offset.
|
|
842
|
-
- `offsetY` [number][7] (optional, `0` by default) Y-axis offset.
|
|
843
|
-
|
|
844
|
-
|
|
783
|
+
- `locator` **([string][9] | [object][10])** located by CSS|XPath|strict locator.
|
|
784
|
+
- `offsetX` **[number][7]** (optional, `0` by default) X-axis offset.
|
|
785
|
+
- `offsetY` **[number][7]** (optional, `0` by default) Y-axis offset.
|
|
845
786
|
|
|
846
787
|
### moveTo
|
|
847
788
|
|
|
@@ -873,9 +814,7 @@ I.pressKey(['Control','a']);
|
|
|
873
814
|
|
|
874
815
|
#### Parameters
|
|
875
816
|
|
|
876
|
-
- `key` ([string][9]
|
|
877
|
-
|
|
878
|
-
|
|
817
|
+
- `key` **([string][9] | [Array][14]<[string][9]>)** key or array of keys to press.
|
|
879
818
|
|
|
880
819
|
|
|
881
820
|
|
|
@@ -923,9 +862,6 @@ Reload the current page.
|
|
|
923
862
|
I.refreshPage();
|
|
924
863
|
```
|
|
925
864
|
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
865
|
### resetModule
|
|
930
866
|
|
|
931
867
|
Removes mocked Angular module. If modName not specified - clears all mock modules.
|
|
@@ -946,10 +882,8 @@ First parameter can be set to `maximize`.
|
|
|
946
882
|
|
|
947
883
|
#### Parameters
|
|
948
884
|
|
|
949
|
-
- `width` [number][7] width in pixels or `maximize`.
|
|
950
|
-
- `height` [number][7] height in pixels.
|
|
951
|
-
|
|
952
|
-
|
|
885
|
+
- `width` **[number][7]** width in pixels or `maximize`.
|
|
886
|
+
- `height` **[number][7]** height in pixels.
|
|
953
887
|
|
|
954
888
|
### rightClick
|
|
955
889
|
|
|
@@ -966,10 +900,8 @@ I.rightClick('Click me', '.context');
|
|
|
966
900
|
|
|
967
901
|
#### Parameters
|
|
968
902
|
|
|
969
|
-
- `locator` ([string][9]
|
|
970
|
-
- `context` ([string][9]
|
|
971
|
-
|
|
972
|
-
|
|
903
|
+
- `locator` **([string][9] | [object][10])** clickable element located by CSS|XPath|strict locator.
|
|
904
|
+
- `context` **([string][9]? | [object][10])** (optional, `null` by default) element located by CSS|XPath|strict locator.
|
|
973
905
|
|
|
974
906
|
### saveScreenshot
|
|
975
907
|
|
|
@@ -984,10 +916,8 @@ I.saveScreenshot('debug.png', true) //resizes to available scrollHeight and scro
|
|
|
984
916
|
|
|
985
917
|
#### Parameters
|
|
986
918
|
|
|
987
|
-
- `fileName` [string][9] file name to save.
|
|
988
|
-
- `fullPage` [boolean][17] (optional, `false` by default) flag to enable fullscreen screenshot mode.
|
|
989
|
-
|
|
990
|
-
|
|
919
|
+
- `fileName` **[string][9]** file name to save.
|
|
920
|
+
- `fullPage` **[boolean][17]** (optional, `false` by default) flag to enable fullscreen screenshot mode.
|
|
991
921
|
|
|
992
922
|
### scrollPageToBottom
|
|
993
923
|
|
|
@@ -997,9 +927,6 @@ Scroll page to the bottom.
|
|
|
997
927
|
I.scrollPageToBottom();
|
|
998
928
|
```
|
|
999
929
|
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
930
|
### scrollPageToTop
|
|
1004
931
|
|
|
1005
932
|
Scroll page to the top.
|
|
@@ -1008,9 +935,6 @@ Scroll page to the top.
|
|
|
1008
935
|
I.scrollPageToTop();
|
|
1009
936
|
```
|
|
1010
937
|
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
938
|
### scrollTo
|
|
1015
939
|
|
|
1016
940
|
Scrolls to element matched by locator.
|
|
@@ -1023,11 +947,9 @@ I.scrollTo('#submit', 5, 5);
|
|
|
1023
947
|
|
|
1024
948
|
#### Parameters
|
|
1025
949
|
|
|
1026
|
-
- `locator` ([string][9]
|
|
1027
|
-
- `offsetX` [number][7] (optional, `0` by default) X-axis offset.
|
|
1028
|
-
- `offsetY` [number][7] (optional, `0` by default) Y-axis offset.
|
|
1029
|
-
|
|
1030
|
-
|
|
950
|
+
- `locator` **([string][9] | [object][10])** located by CSS|XPath|strict locator.
|
|
951
|
+
- `offsetX` **[number][7]** (optional, `0` by default) X-axis offset.
|
|
952
|
+
- `offsetY` **[number][7]** (optional, `0` by default) Y-axis offset.
|
|
1031
953
|
|
|
1032
954
|
### see
|
|
1033
955
|
|
|
@@ -1042,10 +964,8 @@ I.see('Register', {css: 'form.register'}); // use strict locator
|
|
|
1042
964
|
|
|
1043
965
|
#### Parameters
|
|
1044
966
|
|
|
1045
|
-
- `text` [string][9] expected on page.
|
|
1046
|
-
- `context` ([string][9]
|
|
1047
|
-
|
|
1048
|
-
|
|
967
|
+
- `text` **[string][9]** expected on page.
|
|
968
|
+
- `context` **([string][9]? | [object][10])** (optional, `null` by default) element located by CSS|Xpath|strict locator in which to search for text.
|
|
1049
969
|
|
|
1050
970
|
### seeAttributesOnElements
|
|
1051
971
|
|
|
@@ -1057,10 +977,8 @@ I.seeAttributesOnElements('//form', { method: "post"});
|
|
|
1057
977
|
|
|
1058
978
|
#### Parameters
|
|
1059
979
|
|
|
1060
|
-
- `locator` ([string][9]
|
|
1061
|
-
- `attributes` [object][10] attributes and their values to check.
|
|
1062
|
-
|
|
1063
|
-
|
|
980
|
+
- `locator` **([string][9] | [object][10])** located by CSS|XPath|strict locator.
|
|
981
|
+
- `attributes` **[object][10]** attributes and their values to check.
|
|
1064
982
|
|
|
1065
983
|
### seeCheckboxIsChecked
|
|
1066
984
|
|
|
@@ -1074,9 +992,7 @@ I.seeCheckboxIsChecked({css: '#signup_form input[type=checkbox]'});
|
|
|
1074
992
|
|
|
1075
993
|
#### Parameters
|
|
1076
994
|
|
|
1077
|
-
- `field` ([string][9]
|
|
1078
|
-
|
|
1079
|
-
|
|
995
|
+
- `field` **([string][9] | [object][10])** located by label|name|CSS|XPath|strict locator.
|
|
1080
996
|
|
|
1081
997
|
### seeCookie
|
|
1082
998
|
|
|
@@ -1088,9 +1004,7 @@ I.seeCookie('Auth');
|
|
|
1088
1004
|
|
|
1089
1005
|
#### Parameters
|
|
1090
1006
|
|
|
1091
|
-
- `name` [string][9] cookie name.
|
|
1092
|
-
|
|
1093
|
-
|
|
1007
|
+
- `name` **[string][9]** cookie name.
|
|
1094
1008
|
|
|
1095
1009
|
### seeCssPropertiesOnElements
|
|
1096
1010
|
|
|
@@ -1102,10 +1016,8 @@ I.seeCssPropertiesOnElements('h3', { 'font-weight': "bold"});
|
|
|
1102
1016
|
|
|
1103
1017
|
#### Parameters
|
|
1104
1018
|
|
|
1105
|
-
- `locator` ([string][9]
|
|
1106
|
-
- `cssProperties` [object][10] object with CSS properties and their values to check.
|
|
1107
|
-
|
|
1108
|
-
|
|
1019
|
+
- `locator` **([string][9] | [object][10])** located by CSS|XPath|strict locator.
|
|
1020
|
+
- `cssProperties` **[object][10]** object with CSS properties and their values to check.
|
|
1109
1021
|
|
|
1110
1022
|
### seeCurrentUrlEquals
|
|
1111
1023
|
|
|
@@ -1120,9 +1032,7 @@ I.seeCurrentUrlEquals('http://my.site.com/register');
|
|
|
1120
1032
|
|
|
1121
1033
|
#### Parameters
|
|
1122
1034
|
|
|
1123
|
-
- `url` [string][9] value to check.
|
|
1124
|
-
|
|
1125
|
-
|
|
1035
|
+
- `url` **[string][9]** value to check.
|
|
1126
1036
|
|
|
1127
1037
|
### seeElement
|
|
1128
1038
|
|
|
@@ -1135,9 +1045,7 @@ I.seeElement('#modal');
|
|
|
1135
1045
|
|
|
1136
1046
|
#### Parameters
|
|
1137
1047
|
|
|
1138
|
-
- `locator` ([string][9]
|
|
1139
|
-
|
|
1140
|
-
|
|
1048
|
+
- `locator` **([string][9] | [object][10])** located by CSS|XPath|strict locator.
|
|
1141
1049
|
|
|
1142
1050
|
### seeElementInDOM
|
|
1143
1051
|
|
|
@@ -1150,9 +1058,7 @@ I.seeElementInDOM('#modal');
|
|
|
1150
1058
|
|
|
1151
1059
|
#### Parameters
|
|
1152
1060
|
|
|
1153
|
-
- `locator` ([string][9]
|
|
1154
|
-
|
|
1155
|
-
|
|
1061
|
+
- `locator` **([string][9] | [object][10])** element located by CSS|XPath|strict locator.
|
|
1156
1062
|
|
|
1157
1063
|
### seeInCurrentUrl
|
|
1158
1064
|
|
|
@@ -1164,9 +1070,7 @@ I.seeInCurrentUrl('/register'); // we are on registration page
|
|
|
1164
1070
|
|
|
1165
1071
|
#### Parameters
|
|
1166
1072
|
|
|
1167
|
-
- `url` [string][9] a fragment to check
|
|
1168
|
-
|
|
1169
|
-
|
|
1073
|
+
- `url` **[string][9]** a fragment to check
|
|
1170
1074
|
|
|
1171
1075
|
### seeInField
|
|
1172
1076
|
|
|
@@ -1182,10 +1086,8 @@ I.seeInField('#searchform input','Search');
|
|
|
1182
1086
|
|
|
1183
1087
|
#### Parameters
|
|
1184
1088
|
|
|
1185
|
-
- `field` ([string][9]
|
|
1186
|
-
- `value` [string][9] value to check.
|
|
1187
|
-
|
|
1188
|
-
|
|
1089
|
+
- `field` **([string][9] | [object][10])** located by label|name|CSS|XPath|strict locator.
|
|
1090
|
+
- `value` **[string][9]** value to check.
|
|
1189
1091
|
|
|
1190
1092
|
### seeInPopup
|
|
1191
1093
|
|
|
@@ -1206,9 +1108,7 @@ I.seeInSource('<h1>Green eggs & ham</h1>');
|
|
|
1206
1108
|
|
|
1207
1109
|
#### Parameters
|
|
1208
1110
|
|
|
1209
|
-
- `text` [string][9] value to check.
|
|
1210
|
-
|
|
1211
|
-
|
|
1111
|
+
- `text` **[string][9]** value to check.
|
|
1212
1112
|
|
|
1213
1113
|
### seeInTitle
|
|
1214
1114
|
|
|
@@ -1220,9 +1120,7 @@ I.seeInTitle('Home Page');
|
|
|
1220
1120
|
|
|
1221
1121
|
#### Parameters
|
|
1222
1122
|
|
|
1223
|
-
- `text` [string][9] text value to check.
|
|
1224
|
-
|
|
1225
|
-
|
|
1123
|
+
- `text` **[string][9]** text value to check.
|
|
1226
1124
|
|
|
1227
1125
|
### seeNumberOfElements
|
|
1228
1126
|
|
|
@@ -1235,10 +1133,8 @@ I.seeNumberOfElements('#submitBtn', 1);
|
|
|
1235
1133
|
|
|
1236
1134
|
#### Parameters
|
|
1237
1135
|
|
|
1238
|
-
- `locator` ([string][9]
|
|
1239
|
-
- `num` [number][7] number of elements.
|
|
1240
|
-
|
|
1241
|
-
|
|
1136
|
+
- `locator` **([string][9] | [object][10])** element located by CSS|XPath|strict locator.
|
|
1137
|
+
- `num` **[number][7]** number of elements.
|
|
1242
1138
|
|
|
1243
1139
|
### seeNumberOfVisibleElements
|
|
1244
1140
|
|
|
@@ -1251,10 +1147,8 @@ I.seeNumberOfVisibleElements('.buttons', 3);
|
|
|
1251
1147
|
|
|
1252
1148
|
#### Parameters
|
|
1253
1149
|
|
|
1254
|
-
- `locator` ([string][9]
|
|
1255
|
-
- `num` [number][7] number of elements.
|
|
1256
|
-
|
|
1257
|
-
|
|
1150
|
+
- `locator` **([string][9] | [object][10])** element located by CSS|XPath|strict locator.
|
|
1151
|
+
- `num` **[number][7]** number of elements.
|
|
1258
1152
|
|
|
1259
1153
|
### seeTextEquals
|
|
1260
1154
|
|
|
@@ -1266,8 +1160,8 @@ I.seeTextEquals('text', 'h1');
|
|
|
1266
1160
|
|
|
1267
1161
|
#### Parameters
|
|
1268
1162
|
|
|
1269
|
-
- `text`
|
|
1270
|
-
- `context`
|
|
1163
|
+
- `text` **[string][9]** element value to check.
|
|
1164
|
+
- `context` **([string][9] | [object][10]?)** element located by CSS|XPath|strict locator.
|
|
1271
1165
|
|
|
1272
1166
|
### seeTitleEquals
|
|
1273
1167
|
|
|
@@ -1304,10 +1198,8 @@ I.selectOption('Which OS do you use?', ['Android', 'iOS']);
|
|
|
1304
1198
|
|
|
1305
1199
|
#### Parameters
|
|
1306
1200
|
|
|
1307
|
-
- `select` ([string][9]
|
|
1308
|
-
- `option` ([string][9]
|
|
1309
|
-
|
|
1310
|
-
|
|
1201
|
+
- `select` **([string][9] | [object][10])** field located by label|name|CSS|XPath|strict locator.
|
|
1202
|
+
- `option` **([string][9] | [Array][14]<any>)** visible text or value of option.
|
|
1311
1203
|
|
|
1312
1204
|
### setCookie
|
|
1313
1205
|
|
|
@@ -1319,9 +1211,7 @@ I.setCookie({name: 'auth', value: true});
|
|
|
1319
1211
|
|
|
1320
1212
|
#### Parameters
|
|
1321
1213
|
|
|
1322
|
-
- `cookie` [object][10] a cookie object.
|
|
1323
|
-
|
|
1324
|
-
|
|
1214
|
+
- `cookie` **[object][10]** a cookie object.
|
|
1325
1215
|
|
|
1326
1216
|
### switchTo
|
|
1327
1217
|
|
|
@@ -1334,9 +1224,7 @@ I.switchTo(); // switch back to main page
|
|
|
1334
1224
|
|
|
1335
1225
|
#### Parameters
|
|
1336
1226
|
|
|
1337
|
-
- `locator` ([string][9]
|
|
1338
|
-
|
|
1339
|
-
|
|
1227
|
+
- `locator` **([string][9]? | [object][10])** (optional, `null` by default) element located by CSS|XPath|strict locator.
|
|
1340
1228
|
|
|
1341
1229
|
### switchToNextTab
|
|
1342
1230
|
|
|
@@ -1379,10 +1267,8 @@ I.uncheckOption('agree', '//form');
|
|
|
1379
1267
|
|
|
1380
1268
|
#### Parameters
|
|
1381
1269
|
|
|
1382
|
-
- `field` ([string][9]
|
|
1383
|
-
- `context` [string][9] (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
1384
|
-
|
|
1385
|
-
|
|
1270
|
+
- `field` **([string][9] | [object][10])** checkbox located by label | name | CSS | XPath | strict locator.
|
|
1271
|
+
- `context` **([string][9]? | [object][10])** (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
1386
1272
|
|
|
1387
1273
|
### wait
|
|
1388
1274
|
|
|
@@ -1394,9 +1280,7 @@ I.wait(2); // wait 2 secs
|
|
|
1394
1280
|
|
|
1395
1281
|
#### Parameters
|
|
1396
1282
|
|
|
1397
|
-
- `sec` [number][7] number of second to wait.
|
|
1398
|
-
|
|
1399
|
-
|
|
1283
|
+
- `sec` **[number][7]** number of second to wait.
|
|
1400
1284
|
|
|
1401
1285
|
### waitForClickable
|
|
1402
1286
|
|
|
@@ -1422,10 +1306,8 @@ I.waitForDetached('#popup');
|
|
|
1422
1306
|
|
|
1423
1307
|
#### Parameters
|
|
1424
1308
|
|
|
1425
|
-
- `locator` ([string][9]
|
|
1426
|
-
- `sec` [number][7] (optional, `1` by default) time in seconds to wait
|
|
1427
|
-
|
|
1428
|
-
|
|
1309
|
+
- `locator` **([string][9] | [object][10])** element located by CSS|XPath|strict locator.
|
|
1310
|
+
- `sec` **[number][7]** (optional, `1` by default) time in seconds to wait
|
|
1429
1311
|
|
|
1430
1312
|
### waitForElement
|
|
1431
1313
|
|
|
@@ -1439,10 +1321,8 @@ I.waitForElement('.btn.continue', 5); // wait for 5 secs
|
|
|
1439
1321
|
|
|
1440
1322
|
#### Parameters
|
|
1441
1323
|
|
|
1442
|
-
- `locator` ([string][9]
|
|
1443
|
-
- `sec` [number][7] (optional, `1` by default) time in seconds to wait
|
|
1444
|
-
|
|
1445
|
-
|
|
1324
|
+
- `locator` **([string][9] | [object][10])** element located by CSS|XPath|strict locator.
|
|
1325
|
+
- `sec` **[number][7]?** (optional, `1` by default) time in seconds to wait
|
|
1446
1326
|
|
|
1447
1327
|
### waitForEnabled
|
|
1448
1328
|
|
|
@@ -1451,10 +1331,8 @@ Element can be located by CSS or XPath.
|
|
|
1451
1331
|
|
|
1452
1332
|
#### Parameters
|
|
1453
1333
|
|
|
1454
|
-
- `locator` ([string][9]
|
|
1455
|
-
- `sec`
|
|
1456
|
-
|
|
1457
|
-
|
|
1334
|
+
- `locator` **([string][9] | [object][10])** element located by CSS|XPath|strict locator.
|
|
1335
|
+
- `sec` **[number][7]** (optional) time in seconds to wait, 1 by default.
|
|
1458
1336
|
|
|
1459
1337
|
### waitForFunction
|
|
1460
1338
|
|
|
@@ -1473,11 +1351,9 @@ I.waitForFunction((count) => window.requests == count, [3], 5) // pass args and
|
|
|
1473
1351
|
|
|
1474
1352
|
#### Parameters
|
|
1475
1353
|
|
|
1476
|
-
- `fn` ([string][9]
|
|
1477
|
-
- `argsOrSec` ([
|
|
1478
|
-
- `sec` [number][7] (optional, `1` by default) time in seconds to wait
|
|
1479
|
-
|
|
1480
|
-
|
|
1354
|
+
- `fn` **([string][9] | [function][12])** to be executed in browser context.
|
|
1355
|
+
- `argsOrSec` **([Array][14]<any> | [number][7])?** (optional, `1` by default) arguments for function or seconds.
|
|
1356
|
+
- `sec` **[number][7]?** (optional, `1` by default) time in seconds to wait
|
|
1481
1357
|
|
|
1482
1358
|
### waitForInvisible
|
|
1483
1359
|
|
|
@@ -1490,10 +1366,8 @@ I.waitForInvisible('#popup');
|
|
|
1490
1366
|
|
|
1491
1367
|
#### Parameters
|
|
1492
1368
|
|
|
1493
|
-
- `locator` ([string][9]
|
|
1494
|
-
- `sec` [number][7] (optional, `1` by default) time in seconds to wait
|
|
1495
|
-
|
|
1496
|
-
|
|
1369
|
+
- `locator` **([string][9] | [object][10])** element located by CSS|XPath|strict locator.
|
|
1370
|
+
- `sec` **[number][7]** (optional, `1` by default) time in seconds to wait
|
|
1497
1371
|
|
|
1498
1372
|
### waitForText
|
|
1499
1373
|
|
|
@@ -1508,11 +1382,9 @@ I.waitForText('Thank you, form has been submitted', 5, '#modal');
|
|
|
1508
1382
|
|
|
1509
1383
|
#### Parameters
|
|
1510
1384
|
|
|
1511
|
-
- `text` [string][9] to wait for.
|
|
1512
|
-
- `sec` [number][7] (optional, `1` by default) time in seconds to wait
|
|
1513
|
-
- `context` ([string][9]
|
|
1514
|
-
|
|
1515
|
-
|
|
1385
|
+
- `text` **[string][9]** to wait for.
|
|
1386
|
+
- `sec` **[number][7]** (optional, `1` by default) time in seconds to wait
|
|
1387
|
+
- `context` **([string][9] | [object][10])?** (optional) element located by CSS|XPath|strict locator.
|
|
1516
1388
|
|
|
1517
1389
|
### waitForValue
|
|
1518
1390
|
|
|
@@ -1524,11 +1396,9 @@ I.waitForValue('//input', "GoodValue");
|
|
|
1524
1396
|
|
|
1525
1397
|
#### Parameters
|
|
1526
1398
|
|
|
1527
|
-
- `field` ([string][9]
|
|
1528
|
-
- `value` [string][9] expected value.
|
|
1529
|
-
- `sec` [number][7] (optional, `1` by default) time in seconds to wait
|
|
1530
|
-
|
|
1531
|
-
|
|
1399
|
+
- `field` **([string][9] | [object][10])** input field.
|
|
1400
|
+
- `value` **[string][9]** expected value.
|
|
1401
|
+
- `sec` **[number][7]** (optional, `1` by default) time in seconds to wait
|
|
1532
1402
|
|
|
1533
1403
|
### waitForVisible
|
|
1534
1404
|
|
|
@@ -1541,10 +1411,8 @@ I.waitForVisible('#popup');
|
|
|
1541
1411
|
|
|
1542
1412
|
#### Parameters
|
|
1543
1413
|
|
|
1544
|
-
- `locator` ([string][9]
|
|
1545
|
-
- `sec` [number][7] (optional, `1` by default) time in seconds to wait
|
|
1546
|
-
|
|
1547
|
-
|
|
1414
|
+
- `locator` **([string][9] | [object][10])** element located by CSS|XPath|strict locator.
|
|
1415
|
+
- `sec` **[number][7]** (optional, `1` by default) time in seconds to wait
|
|
1548
1416
|
|
|
1549
1417
|
### waitInUrl
|
|
1550
1418
|
|
|
@@ -1556,10 +1424,8 @@ I.waitInUrl('/info', 2);
|
|
|
1556
1424
|
|
|
1557
1425
|
#### Parameters
|
|
1558
1426
|
|
|
1559
|
-
- `urlPart` [string][9] value to check.
|
|
1560
|
-
- `sec` [number][7] (optional, `1` by default) time in seconds to wait
|
|
1561
|
-
|
|
1562
|
-
|
|
1427
|
+
- `urlPart` **[string][9]** value to check.
|
|
1428
|
+
- `sec` **[number][7]** (optional, `1` by default) time in seconds to wait
|
|
1563
1429
|
|
|
1564
1430
|
### waitNumberOfVisibleElements
|
|
1565
1431
|
|
|
@@ -1571,11 +1437,9 @@ I.waitNumberOfVisibleElements('a', 3);
|
|
|
1571
1437
|
|
|
1572
1438
|
#### Parameters
|
|
1573
1439
|
|
|
1574
|
-
- `locator` ([string][9]
|
|
1575
|
-
- `num` [number][7] number of elements.
|
|
1576
|
-
- `sec` [number][7] (optional, `1` by default) time in seconds to wait
|
|
1577
|
-
|
|
1578
|
-
|
|
1440
|
+
- `locator` **([string][9] | [object][10])** element located by CSS|XPath|strict locator.
|
|
1441
|
+
- `num` **[number][7]** number of elements.
|
|
1442
|
+
- `sec` **[number][7]** (optional, `1` by default) time in seconds to wait
|
|
1579
1443
|
|
|
1580
1444
|
### waitToHide
|
|
1581
1445
|
|
|
@@ -1588,10 +1452,8 @@ I.waitToHide('#popup');
|
|
|
1588
1452
|
|
|
1589
1453
|
#### Parameters
|
|
1590
1454
|
|
|
1591
|
-
- `locator` ([string][9]
|
|
1592
|
-
- `sec` [number][7] (optional, `1` by default) time in seconds to wait
|
|
1593
|
-
|
|
1594
|
-
|
|
1455
|
+
- `locator` **([string][9] | [object][10])** element located by CSS|XPath|strict locator.
|
|
1456
|
+
- `sec` **[number][7]** (optional, `1` by default) time in seconds to wait
|
|
1595
1457
|
|
|
1596
1458
|
### waitUntil
|
|
1597
1459
|
|
|
@@ -1604,11 +1466,10 @@ I.waitUntil(() => window.requests == 0, 5);
|
|
|
1604
1466
|
|
|
1605
1467
|
#### Parameters
|
|
1606
1468
|
|
|
1607
|
-
- `fn` ([function][12]
|
|
1608
|
-
- `sec` [number][7] (optional, `1` by default) time in seconds to wait
|
|
1609
|
-
- `timeoutMsg` [string][9] message to show in case of timeout fail.
|
|
1610
|
-
|
|
1611
|
-
|
|
1469
|
+
- `fn` **([function][12] | [string][9])** function which is executed in browser context.
|
|
1470
|
+
- `sec` **[number][7]** (optional, `1` by default) time in seconds to wait
|
|
1471
|
+
- `timeoutMsg` **[string][9]** message to show in case of timeout fail.
|
|
1472
|
+
- `interval` **[number][7]?**
|
|
1612
1473
|
|
|
1613
1474
|
### waitUrlEquals
|
|
1614
1475
|
|
|
@@ -1621,10 +1482,8 @@ I.waitUrlEquals('http://127.0.0.1:8000/info');
|
|
|
1621
1482
|
|
|
1622
1483
|
#### Parameters
|
|
1623
1484
|
|
|
1624
|
-
- `urlPart` [string][9] value to check.
|
|
1625
|
-
- `sec` [number][7] (optional, `1` by default) time in seconds to wait
|
|
1626
|
-
|
|
1627
|
-
|
|
1485
|
+
- `urlPart` **[string][9]** value to check.
|
|
1486
|
+
- `sec` **[number][7]** (optional, `1` by default) time in seconds to wait
|
|
1628
1487
|
|
|
1629
1488
|
## perform
|
|
1630
1489
|
|