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/WebDriver
|
|
3
|
+
editLink: false
|
|
4
|
+
sidebar: auto
|
|
3
5
|
title: WebDriver
|
|
4
6
|
---
|
|
5
7
|
|
|
@@ -7,7 +9,7 @@ title: WebDriver
|
|
|
7
9
|
|
|
8
10
|
## WebDriver
|
|
9
11
|
|
|
10
|
-
Extends Helper
|
|
12
|
+
**Extends Helper**
|
|
11
13
|
|
|
12
14
|
WebDriver helper which wraps [webdriverio][1] library to
|
|
13
15
|
manipulate browser using Selenium WebDriver or PhantomJS.
|
|
@@ -19,20 +21,21 @@ WebDriver requires [Selenium Server and ChromeDriver/GeckoDriver to be installed
|
|
|
19
21
|
This helper should be configured in codecept.json or codecept.conf.js
|
|
20
22
|
|
|
21
23
|
- `url`: base url of website to be tested.
|
|
24
|
+
- `basicAuth`: (optional) the basic authentication to pass to base url. Example: {username: 'username', password: 'password'}
|
|
22
25
|
- `browser`: browser in which to perform testing.
|
|
23
26
|
- `host`: - WebDriver host to connect.
|
|
24
27
|
- `port`: - WebDriver port to connect.
|
|
25
28
|
- `protocol`: - protocol for WebDriver server.
|
|
26
29
|
- `path`: - path to WebDriver server,
|
|
27
30
|
- `restart`: - restart browser between tests.
|
|
28
|
-
- `smartWait`: (optional) enables [SmartWait][3]
|
|
31
|
+
- `smartWait`: (optional) **enables [SmartWait][3]**; wait for additional milliseconds for element to appear. Enable for 5 secs: "smartWait": 5000.
|
|
29
32
|
- `disableScreenshots`: - don't save screenshots on failure.
|
|
30
33
|
- `fullPageScreenshots` - make full page screenshots on failure.
|
|
31
34
|
- `uniqueScreenshotNames`: - option to prevent screenshot override if you have scenarios with the same name in different suites.
|
|
32
35
|
- `keepBrowserState`: - keep browser state between tests when `restart` is set to false.
|
|
33
36
|
- `keepCookies`: - keep cookies between tests when `restart` set to false.
|
|
34
37
|
- `windowSize`: (optional) default window size. Set to `maximize` or a dimension in the format `640x480`.
|
|
35
|
-
- `waitForTimeout`: sets default wait time in _ms_ for all `wait
|
|
38
|
+
- `waitForTimeout`: sets default wait time in _ms_ for all `wait*` functions.
|
|
36
39
|
- `desiredCapabilities`: Selenium's [desired
|
|
37
40
|
capabilities][4].
|
|
38
41
|
- `manualStart`: - do not start browser before a test, start it manually inside a helper
|
|
@@ -58,6 +61,26 @@ Example:
|
|
|
58
61
|
}
|
|
59
62
|
```
|
|
60
63
|
|
|
64
|
+
Example with basic authentication
|
|
65
|
+
|
|
66
|
+
```js
|
|
67
|
+
{
|
|
68
|
+
helpers: {
|
|
69
|
+
WebDriver : {
|
|
70
|
+
smartWait: 5000,
|
|
71
|
+
browser: "chrome",
|
|
72
|
+
basicAuth: {username: 'username', password: 'password'},
|
|
73
|
+
restart: false,
|
|
74
|
+
windowSize: "maximize",
|
|
75
|
+
timeouts: {
|
|
76
|
+
"script": 60000,
|
|
77
|
+
"page load": 10000
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
61
84
|
Additional configuration params can be used from [webdriverio
|
|
62
85
|
website][6].
|
|
63
86
|
|
|
@@ -71,7 +94,7 @@ website][6].
|
|
|
71
94
|
browser: "chrome",
|
|
72
95
|
desiredCapabilities: {
|
|
73
96
|
chromeOptions: {
|
|
74
|
-
args: [ "--headless", "--disable-gpu", "--
|
|
97
|
+
args: [ "--headless", "--disable-gpu", "--no-sandbox" ]
|
|
75
98
|
}
|
|
76
99
|
}
|
|
77
100
|
}
|
|
@@ -256,7 +279,7 @@ See [complete reference on webdriver.io][12].
|
|
|
256
279
|
|
|
257
280
|
#### TestingBot
|
|
258
281
|
|
|
259
|
-
> Recommended
|
|
282
|
+
> **Recommended**: use official [TestingBot Helper][14].
|
|
260
283
|
|
|
261
284
|
Alternatively, TestingBot can be configured via wdio service, which should be installed additionally:
|
|
262
285
|
|
|
@@ -329,7 +352,7 @@ const browser = WebDriver.browser
|
|
|
329
352
|
|
|
330
353
|
- `config`
|
|
331
354
|
|
|
332
|
-
###
|
|
355
|
+
### _locate
|
|
333
356
|
|
|
334
357
|
Get elements by different locator types, including strict locator.
|
|
335
358
|
Should be used in custom helpers:
|
|
@@ -340,10 +363,10 @@ this.helpers['WebDriver']._locate({name: 'password'}).then //...
|
|
|
340
363
|
|
|
341
364
|
#### Parameters
|
|
342
365
|
|
|
343
|
-
- `locator`
|
|
366
|
+
- `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
344
367
|
- `smartWait`
|
|
345
368
|
|
|
346
|
-
###
|
|
369
|
+
### _locateCheckable
|
|
347
370
|
|
|
348
371
|
Find a checkbox by providing human readable text:
|
|
349
372
|
|
|
@@ -353,9 +376,9 @@ this.helpers['WebDriver']._locateCheckable('I agree with terms and conditions').
|
|
|
353
376
|
|
|
354
377
|
#### Parameters
|
|
355
378
|
|
|
356
|
-
- `locator`
|
|
379
|
+
- `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
357
380
|
|
|
358
|
-
###
|
|
381
|
+
### _locateClickable
|
|
359
382
|
|
|
360
383
|
Find a clickable element by providing human readable text:
|
|
361
384
|
|
|
@@ -365,9 +388,9 @@ this.helpers['WebDriver']._locateClickable('Next page').then // ...
|
|
|
365
388
|
|
|
366
389
|
#### Parameters
|
|
367
390
|
|
|
368
|
-
- `locator`
|
|
391
|
+
- `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
369
392
|
|
|
370
|
-
###
|
|
393
|
+
### _locateFields
|
|
371
394
|
|
|
372
395
|
Find field elements by providing human readable text:
|
|
373
396
|
|
|
@@ -377,13 +400,13 @@ this.helpers['WebDriver']._locateFields('Your email').then // ...
|
|
|
377
400
|
|
|
378
401
|
#### Parameters
|
|
379
402
|
|
|
380
|
-
- `locator`
|
|
403
|
+
- `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
381
404
|
|
|
382
405
|
### acceptPopup
|
|
383
406
|
|
|
384
407
|
Accepts the active JavaScript native popup window, as created by window.alert|window.confirm|window.prompt.
|
|
385
408
|
Don't confuse popups with modal windows, as created by [various
|
|
386
|
-
libraries][
|
|
409
|
+
libraries][20].
|
|
387
410
|
|
|
388
411
|
### amOnPage
|
|
389
412
|
|
|
@@ -398,9 +421,7 @@ I.amOnPage('/login'); // opens a login page
|
|
|
398
421
|
|
|
399
422
|
#### Parameters
|
|
400
423
|
|
|
401
|
-
- `url` [string][
|
|
402
|
-
|
|
403
|
-
|
|
424
|
+
- `url` **[string][18]** url path or global url.
|
|
404
425
|
|
|
405
426
|
### appendField
|
|
406
427
|
|
|
@@ -413,10 +434,8 @@ I.appendField('#myTextField', 'appended');
|
|
|
413
434
|
|
|
414
435
|
#### Parameters
|
|
415
436
|
|
|
416
|
-
- `field` ([string][
|
|
417
|
-
- `value` [string][
|
|
418
|
-
|
|
419
|
-
|
|
437
|
+
- `field` **([string][18] | [object][19])** located by label|name|CSS|XPath|strict locator
|
|
438
|
+
- `value` **[string][18]** text value to append.
|
|
420
439
|
|
|
421
440
|
|
|
422
441
|
|
|
@@ -436,10 +455,8 @@ I.attachFile('form input[name=avatar]', 'data/avatar.jpg');
|
|
|
436
455
|
|
|
437
456
|
#### Parameters
|
|
438
457
|
|
|
439
|
-
- `locator` ([string][
|
|
440
|
-
- `pathToFile` [string][
|
|
441
|
-
|
|
442
|
-
|
|
458
|
+
- `locator` **([string][18] | [object][19])** field located by label|name|CSS|XPath|strict locator.
|
|
459
|
+
- `pathToFile` **[string][18]** local file path relative to codecept.json config file.
|
|
443
460
|
Appium: not tested
|
|
444
461
|
|
|
445
462
|
### cancelPopup
|
|
@@ -461,10 +478,8 @@ I.checkOption('agree', '//form');
|
|
|
461
478
|
|
|
462
479
|
#### Parameters
|
|
463
480
|
|
|
464
|
-
- `field` ([string][
|
|
465
|
-
- `context` [string][19] (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
466
|
-
|
|
467
|
-
|
|
481
|
+
- `field` **([string][18] | [object][19])** checkbox located by label | name | CSS | XPath | strict locator.
|
|
482
|
+
- `context` **([string][18]? | [object][19])** (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
468
483
|
Appium: not tested
|
|
469
484
|
|
|
470
485
|
### clearCookie
|
|
@@ -479,9 +494,7 @@ I.clearCookie('test');
|
|
|
479
494
|
|
|
480
495
|
#### Parameters
|
|
481
496
|
|
|
482
|
-
- `cookie` [string][
|
|
483
|
-
|
|
484
|
-
|
|
497
|
+
- `cookie` **[string][18]?** (optional, `null` by default) cookie name
|
|
485
498
|
|
|
486
499
|
### clearField
|
|
487
500
|
|
|
@@ -496,9 +509,7 @@ I.clearField('#email');
|
|
|
496
509
|
#### Parameters
|
|
497
510
|
|
|
498
511
|
- `field`
|
|
499
|
-
- `editable` ([string][
|
|
500
|
-
|
|
501
|
-
|
|
512
|
+
- `editable` **([string][18] | [object][19])** field located by label|name|CSS|XPath|strict locator.
|
|
502
513
|
|
|
503
514
|
### click
|
|
504
515
|
|
|
@@ -517,7 +528,7 @@ I.click('Submit');
|
|
|
517
528
|
// CSS button
|
|
518
529
|
I.click('#form input[type=submit]');
|
|
519
530
|
// XPath
|
|
520
|
-
I.click('//form
|
|
531
|
+
I.click('//form/*[@type=submit]');
|
|
521
532
|
// link in context
|
|
522
533
|
I.click('Logout', '#nav');
|
|
523
534
|
// using strict locator
|
|
@@ -526,10 +537,8 @@ I.click({css: 'nav a.login'});
|
|
|
526
537
|
|
|
527
538
|
#### Parameters
|
|
528
539
|
|
|
529
|
-
- `locator` ([string][
|
|
530
|
-
- `context` ([string][
|
|
531
|
-
|
|
532
|
-
|
|
540
|
+
- `locator` **([string][18] | [object][19])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
|
|
541
|
+
- `context` **([string][18]? | [object][19])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
|
|
533
542
|
|
|
534
543
|
|
|
535
544
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -564,7 +573,7 @@ I.defineTimeout({ implicit: 10000, pageLoad: 10000, script: 5000 });
|
|
|
564
573
|
|
|
565
574
|
#### Parameters
|
|
566
575
|
|
|
567
|
-
- `timeouts`
|
|
576
|
+
- `timeouts` **WebdriverIO.Timeouts** WebDriver timeouts object.
|
|
568
577
|
|
|
569
578
|
### dontSee
|
|
570
579
|
|
|
@@ -578,9 +587,8 @@ I.dontSee('Login', '.nav'); // no login inside .nav element
|
|
|
578
587
|
|
|
579
588
|
#### Parameters
|
|
580
589
|
|
|
581
|
-
- `text` [string][
|
|
582
|
-
- `context` ([string][
|
|
583
|
-
|
|
590
|
+
- `text` **[string][18]** which is not present.
|
|
591
|
+
- `context` **([string][18] | [object][19])?** (optional) element located by CSS|XPath|strict locator in which to perfrom search.
|
|
584
592
|
|
|
585
593
|
|
|
586
594
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -598,10 +606,7 @@ I.dontSeeCheckboxIsChecked('agree'); // located by name
|
|
|
598
606
|
|
|
599
607
|
#### Parameters
|
|
600
608
|
|
|
601
|
-
- `field` ([string][
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
Appium: not tested
|
|
609
|
+
- `field` **([string][18] | [object][19])** located by label|name|CSS|XPath|strict locator.Appium: not tested
|
|
605
610
|
|
|
606
611
|
### dontSeeCookie
|
|
607
612
|
|
|
@@ -613,9 +618,7 @@ I.dontSeeCookie('auth'); // no auth cookie
|
|
|
613
618
|
|
|
614
619
|
#### Parameters
|
|
615
620
|
|
|
616
|
-
- `name` [string][
|
|
617
|
-
|
|
618
|
-
|
|
621
|
+
- `name` **[string][18]** cookie name.
|
|
619
622
|
|
|
620
623
|
### dontSeeCurrentUrlEquals
|
|
621
624
|
|
|
@@ -629,9 +632,7 @@ I.dontSeeCurrentUrlEquals('http://mysite.com/login'); // absolute urls are also
|
|
|
629
632
|
|
|
630
633
|
#### Parameters
|
|
631
634
|
|
|
632
|
-
- `url` [string][
|
|
633
|
-
|
|
634
|
-
|
|
635
|
+
- `url` **[string][18]** value to check.
|
|
635
636
|
|
|
636
637
|
### dontSeeElement
|
|
637
638
|
|
|
@@ -643,9 +644,7 @@ I.dontSeeElement('.modal'); // modal is not shown
|
|
|
643
644
|
|
|
644
645
|
#### Parameters
|
|
645
646
|
|
|
646
|
-
- `locator` ([string][
|
|
647
|
-
|
|
648
|
-
|
|
647
|
+
- `locator` **([string][18] | [object][19])** located by CSS|XPath|Strict locator.
|
|
649
648
|
|
|
650
649
|
|
|
651
650
|
|
|
@@ -662,9 +661,7 @@ I.dontSeeElementInDOM('.nav'); // checks that element is not on page visible or
|
|
|
662
661
|
|
|
663
662
|
#### Parameters
|
|
664
663
|
|
|
665
|
-
- `locator` ([string][
|
|
666
|
-
|
|
667
|
-
|
|
664
|
+
- `locator` **([string][18] | [object][19])** located by CSS|XPath|Strict locator.
|
|
668
665
|
|
|
669
666
|
### dontSeeInCurrentUrl
|
|
670
667
|
|
|
@@ -672,9 +669,7 @@ Checks that current url does not contain a provided fragment.
|
|
|
672
669
|
|
|
673
670
|
#### Parameters
|
|
674
671
|
|
|
675
|
-
- `url` [string][
|
|
676
|
-
|
|
677
|
-
|
|
672
|
+
- `url` **[string][18]** value to check.
|
|
678
673
|
|
|
679
674
|
### dontSeeInField
|
|
680
675
|
|
|
@@ -688,10 +683,8 @@ I.dontSeeInField({ css: 'form input.email' }, 'user@user.com'); // field by CSS
|
|
|
688
683
|
|
|
689
684
|
#### Parameters
|
|
690
685
|
|
|
691
|
-
- `field` ([string][
|
|
692
|
-
- `value` [string][
|
|
693
|
-
|
|
694
|
-
|
|
686
|
+
- `field` **([string][18] | [object][19])** located by label|name|CSS|XPath|strict locator.
|
|
687
|
+
- `value` **[string][18]** value to check.
|
|
695
688
|
|
|
696
689
|
### dontSeeInSource
|
|
697
690
|
|
|
@@ -704,9 +697,7 @@ I.dontSeeInSource('<!--'); // no comments in source
|
|
|
704
697
|
#### Parameters
|
|
705
698
|
|
|
706
699
|
- `text`
|
|
707
|
-
- `value` [string][
|
|
708
|
-
|
|
709
|
-
|
|
700
|
+
- `value` **[string][18]** to check.
|
|
710
701
|
|
|
711
702
|
### dontSeeInTitle
|
|
712
703
|
|
|
@@ -718,9 +709,7 @@ I.dontSeeInTitle('Error');
|
|
|
718
709
|
|
|
719
710
|
#### Parameters
|
|
720
711
|
|
|
721
|
-
- `text` [string][
|
|
722
|
-
|
|
723
|
-
|
|
712
|
+
- `text` **[string][18]** value to check.
|
|
724
713
|
|
|
725
714
|
### doubleClick
|
|
726
715
|
|
|
@@ -736,10 +725,8 @@ I.doubleClick('.btn.edit');
|
|
|
736
725
|
|
|
737
726
|
#### Parameters
|
|
738
727
|
|
|
739
|
-
- `locator` ([string][
|
|
740
|
-
- `context` ([string][
|
|
741
|
-
|
|
742
|
-
|
|
728
|
+
- `locator` **([string][18] | [object][19])** clickable link or button located by text, or any element located by CSS|XPath|strict locator.
|
|
729
|
+
- `context` **([string][18]? | [object][19])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.
|
|
743
730
|
|
|
744
731
|
|
|
745
732
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -755,10 +742,8 @@ I.dragAndDrop('#dragHandle', '#container');
|
|
|
755
742
|
|
|
756
743
|
#### Parameters
|
|
757
744
|
|
|
758
|
-
- `srcElement` ([string][
|
|
759
|
-
- `destElement` ([string][
|
|
760
|
-
|
|
761
|
-
|
|
745
|
+
- `srcElement` **([string][18] | [object][19])** located by CSS|XPath|strict locator.
|
|
746
|
+
- `destElement` **([string][18] | [object][19])** located by CSS|XPath|strict locator.
|
|
762
747
|
Appium: not tested
|
|
763
748
|
|
|
764
749
|
### dragSlider
|
|
@@ -773,10 +758,8 @@ I.dragSlider('#slider', -70);
|
|
|
773
758
|
|
|
774
759
|
#### Parameters
|
|
775
760
|
|
|
776
|
-
- `locator` ([string][
|
|
777
|
-
- `offsetX` [number][22] position to drag.
|
|
778
|
-
|
|
779
|
-
|
|
761
|
+
- `locator` **([string][18] | [object][19])** located by label|name|CSS|XPath|strict locator.
|
|
762
|
+
- `offsetX` **[number][22]** position to drag.
|
|
780
763
|
|
|
781
764
|
### executeAsyncScript
|
|
782
765
|
|
|
@@ -803,7 +786,10 @@ let val = await I.executeAsyncScript(function(url, done) {
|
|
|
803
786
|
|
|
804
787
|
#### Parameters
|
|
805
788
|
|
|
806
|
-
- `fn` ([string][
|
|
789
|
+
- `fn` **([string][18] | [function][24])** function to be executed in browser context.
|
|
790
|
+
- `args` **...any** to be passed to function.
|
|
791
|
+
|
|
792
|
+
Returns **[Promise][25]<any>**
|
|
807
793
|
|
|
808
794
|
### executeScript
|
|
809
795
|
|
|
@@ -833,7 +819,10 @@ let date = await I.executeScript(function(el) {
|
|
|
833
819
|
|
|
834
820
|
#### Parameters
|
|
835
821
|
|
|
836
|
-
- `fn` ([string][
|
|
822
|
+
- `fn` **([string][18] | [function][24])** function to be executed in browser context.
|
|
823
|
+
- `args` **...any** to be passed to function.
|
|
824
|
+
|
|
825
|
+
Returns **[Promise][25]<any>** Wraps [execute][26] command.
|
|
837
826
|
|
|
838
827
|
### fillField
|
|
839
828
|
|
|
@@ -853,11 +842,8 @@ I.fillField({css: 'form#login input[name=username]'}, 'John');
|
|
|
853
842
|
|
|
854
843
|
#### Parameters
|
|
855
844
|
|
|
856
|
-
- `field` ([string][
|
|
857
|
-
- `value` [string][
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
845
|
+
- `field` **([string][18] | [object][19])** located by label|name|CSS|XPath|strict locator.
|
|
846
|
+
- `value` **[string][18]** text value to fill.
|
|
861
847
|
|
|
862
848
|
|
|
863
849
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -876,7 +862,7 @@ const windows = await I.grabAllWindowHandles();
|
|
|
876
862
|
|
|
877
863
|
Retrieves an attribute from an element located by CSS or XPath and returns it to test.
|
|
878
864
|
An array as a result will be returned if there are more than one matched element.
|
|
879
|
-
Resumes test execution, so should be used inside async with `await
|
|
865
|
+
Resumes test execution, so **should be used inside async with `await`** operator.
|
|
880
866
|
|
|
881
867
|
```js
|
|
882
868
|
let hint = await I.grabAttributeFrom('#tooltip', 'title');
|
|
@@ -884,12 +870,10 @@ let hint = await I.grabAttributeFrom('#tooltip', 'title');
|
|
|
884
870
|
|
|
885
871
|
#### Parameters
|
|
886
872
|
|
|
887
|
-
- `locator` ([string][
|
|
888
|
-
- `attr` [string][
|
|
889
|
-
|
|
890
|
-
Returns [Promise][25]<[string][19]> attribute value
|
|
891
|
-
|
|
873
|
+
- `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
874
|
+
- `attr` **[string][18]** attribute name.
|
|
892
875
|
|
|
876
|
+
Returns **[Promise][25]<[string][18]>** attribute value
|
|
893
877
|
Appium: can be used for apps only with several values ("contentDescription", "text", "className", "resourceId")
|
|
894
878
|
|
|
895
879
|
### grabBrowserLogs
|
|
@@ -901,12 +885,13 @@ let logs = await I.grabBrowserLogs();
|
|
|
901
885
|
console.log(JSON.stringify(logs))
|
|
902
886
|
```
|
|
903
887
|
|
|
888
|
+
Returns **[Promise][25]<([string][18] | [undefined][27])>**
|
|
889
|
+
|
|
904
890
|
### grabCookie
|
|
905
891
|
|
|
906
892
|
Gets a cookie object by name.
|
|
907
893
|
If none provided gets all cookies.
|
|
908
|
-
|
|
909
|
-
- Resumes test execution, so should be used inside async with `await` operator.
|
|
894
|
+
Resumes test execution, so **should be used inside async with `await`** operator.
|
|
910
895
|
|
|
911
896
|
```js
|
|
912
897
|
let cookie = await I.grabCookie('auth');
|
|
@@ -915,16 +900,14 @@ assert(cookie.value, '123456');
|
|
|
915
900
|
|
|
916
901
|
#### Parameters
|
|
917
902
|
|
|
918
|
-
- `name`
|
|
919
|
-
|
|
920
|
-
Returns [Promise][25]<[string][19]> attribute value
|
|
921
|
-
|
|
903
|
+
- `name` **[string][18]?** cookie name.
|
|
922
904
|
|
|
905
|
+
Returns **[Promise][25]<[string][18]>** attribute value
|
|
923
906
|
|
|
924
907
|
### grabCssPropertyFrom
|
|
925
908
|
|
|
926
909
|
Grab CSS property for given locator
|
|
927
|
-
Resumes test execution, so should be used inside an async function with `await
|
|
910
|
+
Resumes test execution, so **should be used inside an async function with `await`** operator.
|
|
928
911
|
|
|
929
912
|
```js
|
|
930
913
|
const value = await I.grabCssPropertyFrom('h3', 'font-weight');
|
|
@@ -932,12 +915,10 @@ const value = await I.grabCssPropertyFrom('h3', 'font-weight');
|
|
|
932
915
|
|
|
933
916
|
#### Parameters
|
|
934
917
|
|
|
935
|
-
- `locator` ([string][
|
|
936
|
-
- `cssProperty` [string][
|
|
937
|
-
|
|
938
|
-
Returns [Promise][25]<[string][19]> CSS value
|
|
939
|
-
|
|
918
|
+
- `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
919
|
+
- `cssProperty` **[string][18]** CSS property name.
|
|
940
920
|
|
|
921
|
+
Returns **[Promise][25]<[string][18]>** CSS value
|
|
941
922
|
|
|
942
923
|
### grabCurrentUrl
|
|
943
924
|
|
|
@@ -949,9 +930,7 @@ let url = await I.grabCurrentUrl();
|
|
|
949
930
|
console.log(`Current URL is [${url}]`);
|
|
950
931
|
```
|
|
951
932
|
|
|
952
|
-
Returns [Promise][25]<[string][
|
|
953
|
-
|
|
954
|
-
|
|
933
|
+
Returns **[Promise][25]<[string][18]>** current URL
|
|
955
934
|
|
|
956
935
|
### grabCurrentWindowHandle
|
|
957
936
|
|
|
@@ -966,7 +945,7 @@ const window = await I.grabCurrentWindowHandle();
|
|
|
966
945
|
|
|
967
946
|
Grab the width, height, location of given locator.
|
|
968
947
|
Provide `width` or `height`as second param to get your desired prop.
|
|
969
|
-
Resumes test execution, so should be used inside an async function with `await
|
|
948
|
+
Resumes test execution, so **should be used inside an async function with `await`** operator.
|
|
970
949
|
|
|
971
950
|
Returns an object with `x`, `y`, `width`, `height` keys.
|
|
972
951
|
|
|
@@ -984,13 +963,11 @@ const width = await I.grabElementBoundingRect('h3', 'width');
|
|
|
984
963
|
|
|
985
964
|
#### Parameters
|
|
986
965
|
|
|
987
|
-
- `locator` ([string][
|
|
966
|
+
- `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
988
967
|
- `prop`
|
|
989
|
-
- `elementSize` [string][
|
|
990
|
-
|
|
991
|
-
Returns [object][20] Element bounding rectangle
|
|
992
|
-
|
|
968
|
+
- `elementSize` **[string][18]** x, y, width or height of the given element.
|
|
993
969
|
|
|
970
|
+
Returns **[object][19]** Element bounding rectangle
|
|
994
971
|
|
|
995
972
|
### grabGeoLocation
|
|
996
973
|
|
|
@@ -1000,13 +977,10 @@ Return the current geo location
|
|
|
1000
977
|
let geoLocation = await I.grabGeoLocation();
|
|
1001
978
|
```
|
|
1002
979
|
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
980
|
### grabHTMLFrom
|
|
1007
981
|
|
|
1008
982
|
Retrieves the innerHTML from an element located by CSS or XPath and returns it to test.
|
|
1009
|
-
Resumes test execution, so should be used inside async function with `await
|
|
983
|
+
Resumes test execution, so **should be used inside async function with `await`** operator.
|
|
1010
984
|
If more than one element is found - an array of HTMLs returned.
|
|
1011
985
|
|
|
1012
986
|
```js
|
|
@@ -1015,11 +989,10 @@ let postHTML = await I.grabHTMLFrom('#post');
|
|
|
1015
989
|
|
|
1016
990
|
#### Parameters
|
|
1017
991
|
|
|
1018
|
-
- `locator`
|
|
1019
|
-
|
|
1020
|
-
Returns [Promise][25]<[string][19]> HTML code for an element
|
|
1021
|
-
|
|
992
|
+
- `locator`
|
|
993
|
+
- `element` **([string][18] | [object][19])** located by CSS|XPath|strict locator.
|
|
1022
994
|
|
|
995
|
+
Returns **[Promise][25]<[string][18]>** HTML code for an element
|
|
1023
996
|
|
|
1024
997
|
### grabNumberOfOpenTabs
|
|
1025
998
|
|
|
@@ -1029,9 +1002,7 @@ Grab number of open tabs.
|
|
|
1029
1002
|
let tabs = await I.grabNumberOfOpenTabs();
|
|
1030
1003
|
```
|
|
1031
1004
|
|
|
1032
|
-
Returns [Promise][25]<[number][22]
|
|
1033
|
-
|
|
1034
|
-
|
|
1005
|
+
Returns **[Promise][25]<[number][22]>** number of open tabs
|
|
1035
1006
|
|
|
1036
1007
|
### grabNumberOfVisibleElements
|
|
1037
1008
|
|
|
@@ -1043,24 +1014,20 @@ let numOfElements = await I.grabNumberOfVisibleElements('p');
|
|
|
1043
1014
|
|
|
1044
1015
|
#### Parameters
|
|
1045
1016
|
|
|
1046
|
-
- `locator` ([string][
|
|
1047
|
-
|
|
1048
|
-
Returns [Promise][25]<[number][22]> number of visible elements
|
|
1049
|
-
|
|
1017
|
+
- `locator` **([string][18] | [object][19])** located by CSS|XPath|strict locator.
|
|
1050
1018
|
|
|
1019
|
+
Returns **[Promise][25]<[number][22]>** number of visible elements
|
|
1051
1020
|
|
|
1052
1021
|
### grabPageScrollPosition
|
|
1053
1022
|
|
|
1054
1023
|
Retrieves a page scroll position and returns it to test.
|
|
1055
|
-
Resumes test execution, so should be used inside an async function with `await
|
|
1024
|
+
Resumes test execution, so **should be used inside an async function with `await`** operator.
|
|
1056
1025
|
|
|
1057
1026
|
```js
|
|
1058
1027
|
let { x, y } = await I.grabPageScrollPosition();
|
|
1059
1028
|
```
|
|
1060
1029
|
|
|
1061
|
-
Returns [Promise][25]<[
|
|
1062
|
-
|
|
1063
|
-
|
|
1030
|
+
Returns **[Promise][25]<[Object][19]<[string][18], any>>** scroll position
|
|
1064
1031
|
|
|
1065
1032
|
### grabPopupText
|
|
1066
1033
|
|
|
@@ -1079,14 +1046,12 @@ Resumes test execution, so should be used inside an async function.
|
|
|
1079
1046
|
let pageSource = await I.grabSource();
|
|
1080
1047
|
```
|
|
1081
1048
|
|
|
1082
|
-
Returns [Promise][25]<[string][
|
|
1083
|
-
|
|
1084
|
-
|
|
1049
|
+
Returns **[Promise][25]<[string][18]>** source code
|
|
1085
1050
|
|
|
1086
1051
|
### grabTextFrom
|
|
1087
1052
|
|
|
1088
1053
|
Retrieves a text from an element located by CSS or XPath and returns it to test.
|
|
1089
|
-
Resumes test execution, so should be used inside async with `await
|
|
1054
|
+
Resumes test execution, so **should be used inside async with `await`** operator.
|
|
1090
1055
|
|
|
1091
1056
|
```js
|
|
1092
1057
|
let pin = await I.grabTextFrom('#pin');
|
|
@@ -1096,29 +1061,25 @@ If multiple elements found returns an array of texts.
|
|
|
1096
1061
|
|
|
1097
1062
|
#### Parameters
|
|
1098
1063
|
|
|
1099
|
-
- `locator`
|
|
1100
|
-
|
|
1101
|
-
Returns [Promise][25]<[string][19]> attribute value
|
|
1102
|
-
|
|
1064
|
+
- `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
1103
1065
|
|
|
1066
|
+
Returns **[Promise][25]<([string][18] | [Array][28]<[string][18]>)>** attribute value
|
|
1104
1067
|
|
|
1105
1068
|
### grabTitle
|
|
1106
1069
|
|
|
1107
1070
|
Retrieves a page title and returns it to test.
|
|
1108
|
-
Resumes test execution, so should be used inside async with `await
|
|
1071
|
+
Resumes test execution, so **should be used inside async with `await`** operator.
|
|
1109
1072
|
|
|
1110
1073
|
```js
|
|
1111
1074
|
let title = await I.grabTitle();
|
|
1112
1075
|
```
|
|
1113
1076
|
|
|
1114
|
-
Returns [Promise][25]<[string][
|
|
1115
|
-
|
|
1116
|
-
|
|
1077
|
+
Returns **[Promise][25]<[string][18]>** title
|
|
1117
1078
|
|
|
1118
1079
|
### grabValueFrom
|
|
1119
1080
|
|
|
1120
1081
|
Retrieves a value from a form element located by CSS or XPath and returns it to test.
|
|
1121
|
-
Resumes test execution, so should be used inside async function with `await
|
|
1082
|
+
Resumes test execution, so **should be used inside async function with `await`** operator.
|
|
1122
1083
|
|
|
1123
1084
|
```js
|
|
1124
1085
|
let email = await I.grabValueFrom('input[name=email]');
|
|
@@ -1126,11 +1087,9 @@ let email = await I.grabValueFrom('input[name=email]');
|
|
|
1126
1087
|
|
|
1127
1088
|
#### Parameters
|
|
1128
1089
|
|
|
1129
|
-
- `locator` ([string][
|
|
1130
|
-
|
|
1131
|
-
Returns [Promise][25]<[string][19]> attribute value
|
|
1132
|
-
|
|
1090
|
+
- `locator` **([string][18] | [object][19])** field located by label|name|CSS|XPath|strict locator.
|
|
1133
1091
|
|
|
1092
|
+
Returns **[Promise][25]<[string][18]>** attribute value
|
|
1134
1093
|
|
|
1135
1094
|
### moveCursorTo
|
|
1136
1095
|
|
|
@@ -1144,11 +1103,9 @@ I.moveCursorTo('#submit', 5,5);
|
|
|
1144
1103
|
|
|
1145
1104
|
#### Parameters
|
|
1146
1105
|
|
|
1147
|
-
- `locator` ([string][
|
|
1148
|
-
- `offsetX` [number][22] (optional, `0` by default) X-axis offset.
|
|
1149
|
-
- `offsetY` [number][22] (optional, `0` by default) Y-axis offset.
|
|
1150
|
-
|
|
1151
|
-
|
|
1106
|
+
- `locator` **([string][18] | [object][19])** located by CSS|XPath|strict locator.
|
|
1107
|
+
- `offsetX` **[number][22]** (optional, `0` by default) X-axis offset.
|
|
1108
|
+
- `offsetY` **[number][22]** (optional, `0` by default) Y-axis offset.
|
|
1152
1109
|
|
|
1153
1110
|
### openNewTab
|
|
1154
1111
|
|
|
@@ -1167,7 +1124,7 @@ I.openNewTab();
|
|
|
1167
1124
|
|
|
1168
1125
|
Presses a key in the browser (on a focused element).
|
|
1169
1126
|
|
|
1170
|
-
_Hint:_ For populating text field or textarea, it is recommended to use [`fillField`][
|
|
1127
|
+
_Hint:_ For populating text field or textarea, it is recommended to use [`fillField`][29].
|
|
1171
1128
|
|
|
1172
1129
|
```js
|
|
1173
1130
|
I.pressKey('Backspace');
|
|
@@ -1226,15 +1183,13 @@ Some of the supported key names are:
|
|
|
1226
1183
|
|
|
1227
1184
|
#### Parameters
|
|
1228
1185
|
|
|
1229
|
-
- `key` ([string][
|
|
1230
|
-
|
|
1231
|
-
_Note:_ In case a text field or textarea is focused be aware that some browsers do not respect active modifier when combining modifier keys with other keys.
|
|
1186
|
+
- `key` **([string][18] | [Array][28]<[string][18]>)** key or array of keys to press._Note:_ In case a text field or textarea is focused be aware that some browsers do not respect active modifier when combining modifier keys with other keys.
|
|
1232
1187
|
|
|
1233
1188
|
### pressKeyDown
|
|
1234
1189
|
|
|
1235
1190
|
Presses a key in the browser and leaves it in a down state.
|
|
1236
1191
|
|
|
1237
|
-
To make combinations with modifier key and user operation (e.g. `'Control'` + [`click`][
|
|
1192
|
+
To make combinations with modifier key and user operation (e.g. `'Control'` + [`click`][30]).
|
|
1238
1193
|
|
|
1239
1194
|
```js
|
|
1240
1195
|
I.pressKeyDown('Control');
|
|
@@ -1244,15 +1199,13 @@ I.pressKeyUp('Control');
|
|
|
1244
1199
|
|
|
1245
1200
|
#### Parameters
|
|
1246
1201
|
|
|
1247
|
-
- `key` [string][
|
|
1248
|
-
|
|
1249
|
-
|
|
1202
|
+
- `key` **[string][18]** name of key to press down.
|
|
1250
1203
|
|
|
1251
1204
|
### pressKeyUp
|
|
1252
1205
|
|
|
1253
1206
|
Releases a key in the browser which was previously set to a down state.
|
|
1254
1207
|
|
|
1255
|
-
To make combinations with modifier key and user operation (e.g. `'Control'` + [`click`][
|
|
1208
|
+
To make combinations with modifier key and user operation (e.g. `'Control'` + [`click`][30]).
|
|
1256
1209
|
|
|
1257
1210
|
```js
|
|
1258
1211
|
I.pressKeyDown('Control');
|
|
@@ -1262,9 +1215,7 @@ I.pressKeyUp('Control');
|
|
|
1262
1215
|
|
|
1263
1216
|
#### Parameters
|
|
1264
1217
|
|
|
1265
|
-
- `key` [string][
|
|
1266
|
-
|
|
1267
|
-
|
|
1218
|
+
- `key` **[string][18]** name of key to release.
|
|
1268
1219
|
|
|
1269
1220
|
### refreshPage
|
|
1270
1221
|
|
|
@@ -1274,9 +1225,6 @@ Reload the current page.
|
|
|
1274
1225
|
I.refreshPage();
|
|
1275
1226
|
```
|
|
1276
1227
|
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
1228
|
### resizeWindow
|
|
1281
1229
|
|
|
1282
1230
|
Resize the current window to provided width and height.
|
|
@@ -1284,10 +1232,8 @@ First parameter can be set to `maximize`.
|
|
|
1284
1232
|
|
|
1285
1233
|
#### Parameters
|
|
1286
1234
|
|
|
1287
|
-
- `width` [number][22] width in pixels or `maximize`.
|
|
1288
|
-
- `height` [number][22] height in pixels.
|
|
1289
|
-
|
|
1290
|
-
|
|
1235
|
+
- `width` **[number][22]** width in pixels or `maximize`.
|
|
1236
|
+
- `height` **[number][22]** height in pixels.
|
|
1291
1237
|
Appium: not tested in web, in apps doesn't work
|
|
1292
1238
|
|
|
1293
1239
|
### rightClick
|
|
@@ -1305,14 +1251,12 @@ I.rightClick('Click me', '.context');
|
|
|
1305
1251
|
|
|
1306
1252
|
#### Parameters
|
|
1307
1253
|
|
|
1308
|
-
- `locator` ([string][
|
|
1309
|
-
- `context` ([string][
|
|
1310
|
-
|
|
1311
|
-
|
|
1254
|
+
- `locator` **([string][18] | [object][19])** clickable element located by CSS|XPath|strict locator.
|
|
1255
|
+
- `context` **([string][18]? | [object][19])** (optional, `null` by default) element located by CSS|XPath|strict locator.
|
|
1312
1256
|
|
|
1313
1257
|
|
|
1314
1258
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
1315
|
-
|
|
1259
|
+
|
|
1316
1260
|
|
|
1317
1261
|
### runInWeb
|
|
1318
1262
|
|
|
@@ -1353,21 +1297,32 @@ I.saveScreenshot('debug.png', true) //resizes to available scrollHeight and scro
|
|
|
1353
1297
|
|
|
1354
1298
|
#### Parameters
|
|
1355
1299
|
|
|
1356
|
-
- `fileName` [string][
|
|
1357
|
-
- `fullPage` [boolean][
|
|
1358
|
-
|
|
1359
|
-
|
|
1300
|
+
- `fileName` **[string][18]** file name to save.
|
|
1301
|
+
- `fullPage` **[boolean][31]** (optional, `false` by default) flag to enable fullscreen screenshot mode.
|
|
1360
1302
|
|
|
1361
|
-
###
|
|
1303
|
+
### scrollIntoView
|
|
1362
1304
|
|
|
1363
|
-
Scroll
|
|
1305
|
+
Scroll element into viewport.
|
|
1364
1306
|
|
|
1365
1307
|
```js
|
|
1366
|
-
I.
|
|
1308
|
+
I.scrollIntoView('#submit');
|
|
1309
|
+
I.scrollIntoView('#submit', true);
|
|
1310
|
+
I.scrollIntoView('#submit', { behavior: "smooth", block: "center", inline: "center" });
|
|
1367
1311
|
```
|
|
1368
1312
|
|
|
1313
|
+
#### Parameters
|
|
1314
|
+
|
|
1315
|
+
- `locator` **([string][18] | [object][19])** located by CSS|XPath|strict locator.
|
|
1316
|
+
- `scrollIntoViewOptions`
|
|
1317
|
+
- `alignToTop` **([boolean][31] | [object][19])** (optional) or scrollIntoViewOptions (optional), see [https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView][32].
|
|
1318
|
+
|
|
1319
|
+
### scrollPageToBottom
|
|
1369
1320
|
|
|
1321
|
+
Scroll page to the bottom.
|
|
1370
1322
|
|
|
1323
|
+
```js
|
|
1324
|
+
I.scrollPageToBottom();
|
|
1325
|
+
```
|
|
1371
1326
|
|
|
1372
1327
|
### scrollPageToTop
|
|
1373
1328
|
|
|
@@ -1377,9 +1332,6 @@ Scroll page to the top.
|
|
|
1377
1332
|
I.scrollPageToTop();
|
|
1378
1333
|
```
|
|
1379
1334
|
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
1335
|
### scrollTo
|
|
1384
1336
|
|
|
1385
1337
|
Scrolls to element matched by locator.
|
|
@@ -1392,11 +1344,9 @@ I.scrollTo('#submit', 5, 5);
|
|
|
1392
1344
|
|
|
1393
1345
|
#### Parameters
|
|
1394
1346
|
|
|
1395
|
-
- `locator` ([string][
|
|
1396
|
-
- `offsetX` [number][22] (optional, `0` by default) X-axis offset.
|
|
1397
|
-
- `offsetY` [number][22] (optional, `0` by default) Y-axis offset.
|
|
1398
|
-
|
|
1399
|
-
|
|
1347
|
+
- `locator` **([string][18] | [object][19])** located by CSS|XPath|strict locator.
|
|
1348
|
+
- `offsetX` **[number][22]** (optional, `0` by default) X-axis offset.
|
|
1349
|
+
- `offsetY` **[number][22]** (optional, `0` by default) Y-axis offset.
|
|
1400
1350
|
|
|
1401
1351
|
### see
|
|
1402
1352
|
|
|
@@ -1411,10 +1361,8 @@ I.see('Register', {css: 'form.register'}); // use strict locator
|
|
|
1411
1361
|
|
|
1412
1362
|
#### Parameters
|
|
1413
1363
|
|
|
1414
|
-
- `text` [string][
|
|
1415
|
-
- `context` ([string][
|
|
1416
|
-
|
|
1417
|
-
|
|
1364
|
+
- `text` **[string][18]** expected on page.
|
|
1365
|
+
- `context` **([string][18]? | [object][19])** (optional, `null` by default) element located by CSS|Xpath|strict locator in which to search for text.
|
|
1418
1366
|
|
|
1419
1367
|
|
|
1420
1368
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -1430,10 +1378,8 @@ I.seeAttributesOnElements('//form', { method: "post"});
|
|
|
1430
1378
|
|
|
1431
1379
|
#### Parameters
|
|
1432
1380
|
|
|
1433
|
-
- `locator` ([string][
|
|
1434
|
-
- `attributes` [object][
|
|
1435
|
-
|
|
1436
|
-
|
|
1381
|
+
- `locator` **([string][18] | [object][19])** located by CSS|XPath|strict locator.
|
|
1382
|
+
- `attributes` **[object][19]** attributes and their values to check.
|
|
1437
1383
|
|
|
1438
1384
|
### seeCheckboxIsChecked
|
|
1439
1385
|
|
|
@@ -1447,10 +1393,7 @@ I.seeCheckboxIsChecked({css: '#signup_form input[type=checkbox]'});
|
|
|
1447
1393
|
|
|
1448
1394
|
#### Parameters
|
|
1449
1395
|
|
|
1450
|
-
- `field` ([string][
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
Appium: not tested
|
|
1396
|
+
- `field` **([string][18] | [object][19])** located by label|name|CSS|XPath|strict locator.Appium: not tested
|
|
1454
1397
|
|
|
1455
1398
|
### seeCookie
|
|
1456
1399
|
|
|
@@ -1462,9 +1405,7 @@ I.seeCookie('Auth');
|
|
|
1462
1405
|
|
|
1463
1406
|
#### Parameters
|
|
1464
1407
|
|
|
1465
|
-
- `name` [string][
|
|
1466
|
-
|
|
1467
|
-
|
|
1408
|
+
- `name` **[string][18]** cookie name.
|
|
1468
1409
|
|
|
1469
1410
|
### seeCssPropertiesOnElements
|
|
1470
1411
|
|
|
@@ -1476,10 +1417,8 @@ I.seeCssPropertiesOnElements('h3', { 'font-weight': "bold"});
|
|
|
1476
1417
|
|
|
1477
1418
|
#### Parameters
|
|
1478
1419
|
|
|
1479
|
-
- `locator` ([string][
|
|
1480
|
-
- `cssProperties` [object][
|
|
1481
|
-
|
|
1482
|
-
|
|
1420
|
+
- `locator` **([string][18] | [object][19])** located by CSS|XPath|strict locator.
|
|
1421
|
+
- `cssProperties` **[object][19]** object with CSS properties and their values to check.
|
|
1483
1422
|
|
|
1484
1423
|
### seeCurrentUrlEquals
|
|
1485
1424
|
|
|
@@ -1494,9 +1433,7 @@ I.seeCurrentUrlEquals('http://my.site.com/register');
|
|
|
1494
1433
|
|
|
1495
1434
|
#### Parameters
|
|
1496
1435
|
|
|
1497
|
-
- `url` [string][
|
|
1498
|
-
|
|
1499
|
-
|
|
1436
|
+
- `url` **[string][18]** value to check.
|
|
1500
1437
|
|
|
1501
1438
|
### seeElement
|
|
1502
1439
|
|
|
@@ -1509,9 +1446,7 @@ I.seeElement('#modal');
|
|
|
1509
1446
|
|
|
1510
1447
|
#### Parameters
|
|
1511
1448
|
|
|
1512
|
-
- `locator` ([string][
|
|
1513
|
-
|
|
1514
|
-
|
|
1449
|
+
- `locator` **([string][18] | [object][19])** located by CSS|XPath|strict locator.
|
|
1515
1450
|
|
|
1516
1451
|
|
|
1517
1452
|
|
|
@@ -1529,9 +1464,7 @@ I.seeElementInDOM('#modal');
|
|
|
1529
1464
|
|
|
1530
1465
|
#### Parameters
|
|
1531
1466
|
|
|
1532
|
-
- `locator` ([string][
|
|
1533
|
-
|
|
1534
|
-
|
|
1467
|
+
- `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
1535
1468
|
|
|
1536
1469
|
### seeInCurrentUrl
|
|
1537
1470
|
|
|
@@ -1543,9 +1476,7 @@ I.seeInCurrentUrl('/register'); // we are on registration page
|
|
|
1543
1476
|
|
|
1544
1477
|
#### Parameters
|
|
1545
1478
|
|
|
1546
|
-
- `url` [string][
|
|
1547
|
-
|
|
1548
|
-
|
|
1479
|
+
- `url` **[string][18]** a fragment to check
|
|
1549
1480
|
|
|
1550
1481
|
### seeInField
|
|
1551
1482
|
|
|
@@ -1561,10 +1492,8 @@ I.seeInField('#searchform input','Search');
|
|
|
1561
1492
|
|
|
1562
1493
|
#### Parameters
|
|
1563
1494
|
|
|
1564
|
-
- `field` ([string][
|
|
1565
|
-
- `value` [string][
|
|
1566
|
-
|
|
1567
|
-
|
|
1495
|
+
- `field` **([string][18] | [object][19])** located by label|name|CSS|XPath|strict locator.
|
|
1496
|
+
- `value` **[string][18]** value to check.
|
|
1568
1497
|
|
|
1569
1498
|
### seeInPopup
|
|
1570
1499
|
|
|
@@ -1573,7 +1502,7 @@ given string.
|
|
|
1573
1502
|
|
|
1574
1503
|
#### Parameters
|
|
1575
1504
|
|
|
1576
|
-
- `text`
|
|
1505
|
+
- `text` **[string][18]** value to check.
|
|
1577
1506
|
|
|
1578
1507
|
### seeInSource
|
|
1579
1508
|
|
|
@@ -1585,9 +1514,7 @@ I.seeInSource('<h1>Green eggs & ham</h1>');
|
|
|
1585
1514
|
|
|
1586
1515
|
#### Parameters
|
|
1587
1516
|
|
|
1588
|
-
- `text` [string][
|
|
1589
|
-
|
|
1590
|
-
|
|
1517
|
+
- `text` **[string][18]** value to check.
|
|
1591
1518
|
|
|
1592
1519
|
### seeInTitle
|
|
1593
1520
|
|
|
@@ -1599,9 +1526,7 @@ I.seeInTitle('Home Page');
|
|
|
1599
1526
|
|
|
1600
1527
|
#### Parameters
|
|
1601
1528
|
|
|
1602
|
-
- `text` [string][
|
|
1603
|
-
|
|
1604
|
-
|
|
1529
|
+
- `text` **[string][18]** text value to check.
|
|
1605
1530
|
|
|
1606
1531
|
### seeNumberOfElements
|
|
1607
1532
|
|
|
@@ -1614,11 +1539,8 @@ I.seeNumberOfElements('#submitBtn', 1);
|
|
|
1614
1539
|
|
|
1615
1540
|
#### Parameters
|
|
1616
1541
|
|
|
1617
|
-
- `locator` ([string][
|
|
1618
|
-
- `num` [number][22] number of elements.
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1542
|
+
- `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
1543
|
+
- `num` **[number][22]** number of elements.
|
|
1622
1544
|
|
|
1623
1545
|
|
|
1624
1546
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -1635,11 +1557,8 @@ I.seeNumberOfVisibleElements('.buttons', 3);
|
|
|
1635
1557
|
|
|
1636
1558
|
#### Parameters
|
|
1637
1559
|
|
|
1638
|
-
- `locator` ([string][
|
|
1639
|
-
- `num` [number][22] number of elements.
|
|
1640
|
-
|
|
1641
|
-
|
|
1642
|
-
|
|
1560
|
+
- `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
1561
|
+
- `num` **[number][22]** number of elements.
|
|
1643
1562
|
|
|
1644
1563
|
|
|
1645
1564
|
This action supports [React locators](https://codecept.io/react#locators)
|
|
@@ -1655,8 +1574,8 @@ I.seeTextEquals('text', 'h1');
|
|
|
1655
1574
|
|
|
1656
1575
|
#### Parameters
|
|
1657
1576
|
|
|
1658
|
-
- `text`
|
|
1659
|
-
- `context`
|
|
1577
|
+
- `text` **[string][18]** element value to check.
|
|
1578
|
+
- `context` **([string][18] | [object][19]?)** element located by CSS|XPath|strict locator.
|
|
1660
1579
|
|
|
1661
1580
|
### seeTitleEquals
|
|
1662
1581
|
|
|
@@ -1668,7 +1587,7 @@ I.seeTitleEquals('Test title.');
|
|
|
1668
1587
|
|
|
1669
1588
|
#### Parameters
|
|
1670
1589
|
|
|
1671
|
-
- `text`
|
|
1590
|
+
- `text` **[string][18]** value to check.
|
|
1672
1591
|
|
|
1673
1592
|
### selectOption
|
|
1674
1593
|
|
|
@@ -1693,10 +1612,8 @@ I.selectOption('Which OS do you use?', ['Android', 'iOS']);
|
|
|
1693
1612
|
|
|
1694
1613
|
#### Parameters
|
|
1695
1614
|
|
|
1696
|
-
- `select` ([string][
|
|
1697
|
-
- `option` ([string][
|
|
1698
|
-
|
|
1699
|
-
|
|
1615
|
+
- `select` **([string][18] | [object][19])** field located by label|name|CSS|XPath|strict locator.
|
|
1616
|
+
- `option` **([string][18] | [Array][28]<any>)** visible text or value of option.
|
|
1700
1617
|
|
|
1701
1618
|
### setCookie
|
|
1702
1619
|
|
|
@@ -1708,10 +1625,8 @@ I.setCookie({name: 'auth', value: true});
|
|
|
1708
1625
|
|
|
1709
1626
|
#### Parameters
|
|
1710
1627
|
|
|
1711
|
-
- `cookie` [object][
|
|
1712
|
-
|
|
1713
|
-
Uses Selenium's JSON [cookie
|
|
1714
|
-
format][30].
|
|
1628
|
+
- `cookie` **[object][19]** a cookie object.Uses Selenium's JSON [cookie
|
|
1629
|
+
format][33].
|
|
1715
1630
|
|
|
1716
1631
|
### setGeoLocation
|
|
1717
1632
|
|
|
@@ -1724,11 +1639,9 @@ I.setGeoLocation(121.21, 11.56, 10);
|
|
|
1724
1639
|
|
|
1725
1640
|
#### Parameters
|
|
1726
1641
|
|
|
1727
|
-
- `latitude` [number][22] to set.
|
|
1728
|
-
- `longitude` [number][22] to set
|
|
1729
|
-
- `altitude` [number][22] (optional, null by default) to set
|
|
1730
|
-
|
|
1731
|
-
|
|
1642
|
+
- `latitude` **[number][22]** to set.
|
|
1643
|
+
- `longitude` **[number][22]** to set
|
|
1644
|
+
- `altitude` **[number][22]** (optional, null by default) to set
|
|
1732
1645
|
|
|
1733
1646
|
### switchTo
|
|
1734
1647
|
|
|
@@ -1741,9 +1654,7 @@ I.switchTo(); // switch back to main page
|
|
|
1741
1654
|
|
|
1742
1655
|
#### Parameters
|
|
1743
1656
|
|
|
1744
|
-
- `locator` ([string][
|
|
1745
|
-
|
|
1746
|
-
|
|
1657
|
+
- `locator` **([string][18]? | [object][19])** (optional, `null` by default) element located by CSS|XPath|strict locator.
|
|
1747
1658
|
|
|
1748
1659
|
### switchToNextTab
|
|
1749
1660
|
|
|
@@ -1756,8 +1667,8 @@ I.switchToNextTab(2);
|
|
|
1756
1667
|
|
|
1757
1668
|
#### Parameters
|
|
1758
1669
|
|
|
1759
|
-
- `num`
|
|
1760
|
-
- `sec`
|
|
1670
|
+
- `num` **[number][22]?** (optional) number of tabs to switch forward, default: 1.
|
|
1671
|
+
- `sec` **([number][22] | null)?** (optional) time in seconds to wait.
|
|
1761
1672
|
|
|
1762
1673
|
### switchToPreviousTab
|
|
1763
1674
|
|
|
@@ -1770,8 +1681,8 @@ I.switchToPreviousTab(2);
|
|
|
1770
1681
|
|
|
1771
1682
|
#### Parameters
|
|
1772
1683
|
|
|
1773
|
-
- `num`
|
|
1774
|
-
- `sec`
|
|
1684
|
+
- `num` **[number][22]?** (optional) number of tabs to switch backward, default: 1.
|
|
1685
|
+
- `sec` **[number][22]??** (optional) time in seconds to wait.
|
|
1775
1686
|
|
|
1776
1687
|
### switchToWindow
|
|
1777
1688
|
|
|
@@ -1806,10 +1717,8 @@ I.uncheckOption('agree', '//form');
|
|
|
1806
1717
|
|
|
1807
1718
|
#### Parameters
|
|
1808
1719
|
|
|
1809
|
-
- `field` ([string][
|
|
1810
|
-
- `context` [string][19] (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
1811
|
-
|
|
1812
|
-
|
|
1720
|
+
- `field` **([string][18] | [object][19])** checkbox located by label | name | CSS | XPath | strict locator.
|
|
1721
|
+
- `context` **([string][18]? | [object][19])** (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
1813
1722
|
Appium: not tested
|
|
1814
1723
|
|
|
1815
1724
|
### wait
|
|
@@ -1822,9 +1731,23 @@ I.wait(2); // wait 2 secs
|
|
|
1822
1731
|
|
|
1823
1732
|
#### Parameters
|
|
1824
1733
|
|
|
1825
|
-
- `sec` [number][22] number of second to wait.
|
|
1826
|
-
|
|
1734
|
+
- `sec` **[number][22]** number of second to wait.
|
|
1735
|
+
|
|
1736
|
+
### waitForClickable
|
|
1827
1737
|
|
|
1738
|
+
Waits for element to be clickable (by default waits for 1sec).
|
|
1739
|
+
Element can be located by CSS or XPath.
|
|
1740
|
+
|
|
1741
|
+
```js
|
|
1742
|
+
I.waitForClickable('.btn.continue');
|
|
1743
|
+
I.waitForClickable('.btn.continue', 5); // wait for 5 secs
|
|
1744
|
+
```
|
|
1745
|
+
|
|
1746
|
+
#### Parameters
|
|
1747
|
+
|
|
1748
|
+
- `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
1749
|
+
- `waitTimeout`
|
|
1750
|
+
- `sec` **[number][22]?** (optional, `1` by default) time in seconds to wait
|
|
1828
1751
|
|
|
1829
1752
|
### waitForDetached
|
|
1830
1753
|
|
|
@@ -1837,10 +1760,8 @@ I.waitForDetached('#popup');
|
|
|
1837
1760
|
|
|
1838
1761
|
#### Parameters
|
|
1839
1762
|
|
|
1840
|
-
- `locator` ([string][
|
|
1841
|
-
- `sec` [number][22] (optional, `1` by default) time in seconds to wait
|
|
1842
|
-
|
|
1843
|
-
|
|
1763
|
+
- `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
1764
|
+
- `sec` **[number][22]** (optional, `1` by default) time in seconds to wait
|
|
1844
1765
|
|
|
1845
1766
|
### waitForElement
|
|
1846
1767
|
|
|
@@ -1854,10 +1775,8 @@ I.waitForElement('.btn.continue', 5); // wait for 5 secs
|
|
|
1854
1775
|
|
|
1855
1776
|
#### Parameters
|
|
1856
1777
|
|
|
1857
|
-
- `locator` ([string][
|
|
1858
|
-
- `sec` [number][22] (optional, `1` by default) time in seconds to wait
|
|
1859
|
-
|
|
1860
|
-
|
|
1778
|
+
- `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
1779
|
+
- `sec` **[number][22]?** (optional, `1` by default) time in seconds to wait
|
|
1861
1780
|
|
|
1862
1781
|
### waitForEnabled
|
|
1863
1782
|
|
|
@@ -1866,10 +1785,8 @@ Element can be located by CSS or XPath.
|
|
|
1866
1785
|
|
|
1867
1786
|
#### Parameters
|
|
1868
1787
|
|
|
1869
|
-
- `locator` ([string][
|
|
1870
|
-
- `sec`
|
|
1871
|
-
|
|
1872
|
-
|
|
1788
|
+
- `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
1789
|
+
- `sec` **[number][22]** (optional) time in seconds to wait, 1 by default.
|
|
1873
1790
|
|
|
1874
1791
|
### waitForFunction
|
|
1875
1792
|
|
|
@@ -1888,11 +1805,9 @@ I.waitForFunction((count) => window.requests == count, [3], 5) // pass args and
|
|
|
1888
1805
|
|
|
1889
1806
|
#### Parameters
|
|
1890
1807
|
|
|
1891
|
-
- `fn` ([string][
|
|
1892
|
-
- `argsOrSec` ([
|
|
1893
|
-
- `sec` [number][22] (optional, `1` by default) time in seconds to wait
|
|
1894
|
-
|
|
1895
|
-
|
|
1808
|
+
- `fn` **([string][18] | [function][24])** to be executed in browser context.
|
|
1809
|
+
- `argsOrSec` **([Array][28]<any> | [number][22])?** (optional, `1` by default) arguments for function or seconds.
|
|
1810
|
+
- `sec` **[number][22]?** (optional, `1` by default) time in seconds to wait
|
|
1896
1811
|
|
|
1897
1812
|
### waitForInvisible
|
|
1898
1813
|
|
|
@@ -1905,10 +1820,8 @@ I.waitForInvisible('#popup');
|
|
|
1905
1820
|
|
|
1906
1821
|
#### Parameters
|
|
1907
1822
|
|
|
1908
|
-
- `locator` ([string][
|
|
1909
|
-
- `sec` [number][22] (optional, `1` by default) time in seconds to wait
|
|
1910
|
-
|
|
1911
|
-
|
|
1823
|
+
- `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
1824
|
+
- `sec` **[number][22]** (optional, `1` by default) time in seconds to wait
|
|
1912
1825
|
|
|
1913
1826
|
### waitForText
|
|
1914
1827
|
|
|
@@ -1923,11 +1836,9 @@ I.waitForText('Thank you, form has been submitted', 5, '#modal');
|
|
|
1923
1836
|
|
|
1924
1837
|
#### Parameters
|
|
1925
1838
|
|
|
1926
|
-
- `text` [string][
|
|
1927
|
-
- `sec` [number][22] (optional, `1` by default) time in seconds to wait
|
|
1928
|
-
- `context` ([string][
|
|
1929
|
-
|
|
1930
|
-
|
|
1839
|
+
- `text` **[string][18]** to wait for.
|
|
1840
|
+
- `sec` **[number][22]** (optional, `1` by default) time in seconds to wait
|
|
1841
|
+
- `context` **([string][18] | [object][19])?** (optional) element located by CSS|XPath|strict locator.
|
|
1931
1842
|
|
|
1932
1843
|
### waitForValue
|
|
1933
1844
|
|
|
@@ -1939,11 +1850,9 @@ I.waitForValue('//input', "GoodValue");
|
|
|
1939
1850
|
|
|
1940
1851
|
#### Parameters
|
|
1941
1852
|
|
|
1942
|
-
- `field` ([string][
|
|
1943
|
-
- `value` [string][
|
|
1944
|
-
- `sec` [number][22] (optional, `1` by default) time in seconds to wait
|
|
1945
|
-
|
|
1946
|
-
|
|
1853
|
+
- `field` **([string][18] | [object][19])** input field.
|
|
1854
|
+
- `value` **[string][18]** expected value.
|
|
1855
|
+
- `sec` **[number][22]** (optional, `1` by default) time in seconds to wait
|
|
1947
1856
|
|
|
1948
1857
|
### waitForVisible
|
|
1949
1858
|
|
|
@@ -1956,10 +1865,8 @@ I.waitForVisible('#popup');
|
|
|
1956
1865
|
|
|
1957
1866
|
#### Parameters
|
|
1958
1867
|
|
|
1959
|
-
- `locator` ([string][
|
|
1960
|
-
- `sec` [number][22] (optional, `1` by default) time in seconds to wait
|
|
1961
|
-
|
|
1962
|
-
|
|
1868
|
+
- `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
1869
|
+
- `sec` **[number][22]** (optional, `1` by default) time in seconds to wait
|
|
1963
1870
|
|
|
1964
1871
|
### waitInUrl
|
|
1965
1872
|
|
|
@@ -1971,10 +1878,8 @@ I.waitInUrl('/info', 2);
|
|
|
1971
1878
|
|
|
1972
1879
|
#### Parameters
|
|
1973
1880
|
|
|
1974
|
-
- `urlPart` [string][
|
|
1975
|
-
- `sec` [number][22] (optional, `1` by default) time in seconds to wait
|
|
1976
|
-
|
|
1977
|
-
|
|
1881
|
+
- `urlPart` **[string][18]** value to check.
|
|
1882
|
+
- `sec` **[number][22]** (optional, `1` by default) time in seconds to wait
|
|
1978
1883
|
|
|
1979
1884
|
### waitNumberOfVisibleElements
|
|
1980
1885
|
|
|
@@ -1986,11 +1891,9 @@ I.waitNumberOfVisibleElements('a', 3);
|
|
|
1986
1891
|
|
|
1987
1892
|
#### Parameters
|
|
1988
1893
|
|
|
1989
|
-
- `locator` ([string][
|
|
1990
|
-
- `num` [number][22] number of elements.
|
|
1991
|
-
- `sec` [number][22] (optional, `1` by default) time in seconds to wait
|
|
1992
|
-
|
|
1993
|
-
|
|
1894
|
+
- `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
1895
|
+
- `num` **[number][22]** number of elements.
|
|
1896
|
+
- `sec` **[number][22]** (optional, `1` by default) time in seconds to wait
|
|
1994
1897
|
|
|
1995
1898
|
### waitToHide
|
|
1996
1899
|
|
|
@@ -2003,10 +1906,8 @@ I.waitToHide('#popup');
|
|
|
2003
1906
|
|
|
2004
1907
|
#### Parameters
|
|
2005
1908
|
|
|
2006
|
-
- `locator` ([string][
|
|
2007
|
-
- `sec` [number][22] (optional, `1` by default) time in seconds to wait
|
|
2008
|
-
|
|
2009
|
-
|
|
1909
|
+
- `locator` **([string][18] | [object][19])** element located by CSS|XPath|strict locator.
|
|
1910
|
+
- `sec` **[number][22]** (optional, `1` by default) time in seconds to wait
|
|
2010
1911
|
|
|
2011
1912
|
### waitUntil
|
|
2012
1913
|
|
|
@@ -2019,12 +1920,10 @@ I.waitUntil(() => window.requests == 0, 5);
|
|
|
2019
1920
|
|
|
2020
1921
|
#### Parameters
|
|
2021
1922
|
|
|
2022
|
-
- `fn` ([function][24]
|
|
2023
|
-
- `sec` [number][22] (optional, `1` by default) time in seconds to wait
|
|
2024
|
-
- `timeoutMsg` [string][
|
|
2025
|
-
|
|
2026
|
-
|
|
2027
|
-
- `interval`
|
|
1923
|
+
- `fn` **([function][24] | [string][18])** function which is executed in browser context.
|
|
1924
|
+
- `sec` **[number][22]** (optional, `1` by default) time in seconds to wait
|
|
1925
|
+
- `timeoutMsg` **[string][18]** message to show in case of timeout fail.
|
|
1926
|
+
- `interval` **[number][22]?**
|
|
2028
1927
|
|
|
2029
1928
|
### waitUrlEquals
|
|
2030
1929
|
|
|
@@ -2037,10 +1936,8 @@ I.waitUrlEquals('http://127.0.0.1:8000/info');
|
|
|
2037
1936
|
|
|
2038
1937
|
#### Parameters
|
|
2039
1938
|
|
|
2040
|
-
- `urlPart` [string][
|
|
2041
|
-
- `sec` [number][22] (optional, `1` by default) time in seconds to wait
|
|
2042
|
-
|
|
2043
|
-
|
|
1939
|
+
- `urlPart` **[string][18]** value to check.
|
|
1940
|
+
- `sec` **[number][22]** (optional, `1` by default) time in seconds to wait
|
|
2044
1941
|
|
|
2045
1942
|
[1]: http://webdriver.io/
|
|
2046
1943
|
|
|
@@ -2076,11 +1973,11 @@ I.waitUrlEquals('http://127.0.0.1:8000/info');
|
|
|
2076
1973
|
|
|
2077
1974
|
[17]: http://webdriver.io/guide/usage/multiremote.html
|
|
2078
1975
|
|
|
2079
|
-
[18]:
|
|
1976
|
+
[18]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
|
|
2080
1977
|
|
|
2081
|
-
[19]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/
|
|
1978
|
+
[19]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object
|
|
2082
1979
|
|
|
2083
|
-
[20]:
|
|
1980
|
+
[20]: http://jster.net/category/windows-modals-popups
|
|
2084
1981
|
|
|
2085
1982
|
[21]: https://webdriver.io/docs/timeouts.html
|
|
2086
1983
|
|
|
@@ -2092,12 +1989,18 @@ I.waitUrlEquals('http://127.0.0.1:8000/info');
|
|
|
2092
1989
|
|
|
2093
1990
|
[25]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise
|
|
2094
1991
|
|
|
2095
|
-
[26]:
|
|
1992
|
+
[26]: http://webdriver.io/api/protocol/execute.html
|
|
1993
|
+
|
|
1994
|
+
[27]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/undefined
|
|
1995
|
+
|
|
1996
|
+
[28]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array
|
|
1997
|
+
|
|
1998
|
+
[29]: #fillfield
|
|
2096
1999
|
|
|
2097
|
-
[
|
|
2000
|
+
[30]: #click
|
|
2098
2001
|
|
|
2099
|
-
[
|
|
2002
|
+
[31]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean
|
|
2100
2003
|
|
|
2101
|
-
[
|
|
2004
|
+
[32]: https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView
|
|
2102
2005
|
|
|
2103
|
-
[
|
|
2006
|
+
[33]: https://code.google.com/p/selenium/wiki/JsonWireProtocol#Cookie_JSON_Object
|