codeceptjs 4.0.0-rc.17 → 4.0.0-rc.19
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/bin/codecept.js +15 -2
- package/bin/codeceptq.js +49 -0
- package/bin/mcp-server.js +733 -196
- package/docs/advanced.md +201 -0
- package/docs/agents.md +159 -0
- package/docs/ai.md +537 -0
- package/docs/aitrace.md +266 -0
- package/docs/api.md +332 -0
- package/docs/assertions.md +415 -0
- package/docs/auth.md +318 -0
- package/docs/basics.md +424 -0
- package/docs/bdd.md +539 -0
- package/docs/best.md +240 -0
- package/docs/bootstrap.md +132 -0
- package/docs/commands.md +352 -0
- package/docs/community-helpers.md +63 -0
- package/docs/configuration.md +230 -0
- package/docs/continuous-integration.md +497 -0
- package/docs/custom-helpers.md +297 -0
- package/docs/data.md +448 -0
- package/docs/debugging.md +332 -0
- package/docs/detox.md +235 -0
- package/docs/docker.md +136 -0
- package/docs/effects.md +179 -0
- package/docs/element-based-testing.md +295 -0
- package/docs/element-selection.md +125 -0
- package/docs/els.md +328 -0
- package/docs/examples.md +161 -0
- package/docs/heal.md +213 -0
- package/docs/helpers/ApiDataFactory.md +267 -0
- package/docs/helpers/Appium.md +1405 -0
- package/docs/helpers/Detox.md +665 -0
- package/docs/helpers/ExpectHelper.md +275 -0
- package/docs/helpers/FileSystem.md +152 -0
- package/docs/helpers/GraphQL.md +152 -0
- package/docs/helpers/GraphQLDataFactory.md +226 -0
- package/docs/helpers/JSONResponse.md +255 -0
- package/docs/helpers/Mochawesome.md +8 -0
- package/docs/helpers/MockRequest.md +377 -0
- package/docs/helpers/MockServer.md +212 -0
- package/docs/helpers/Playwright.md +2969 -0
- package/docs/helpers/Polly.md +44 -0
- package/docs/helpers/Protractor.md +1769 -0
- package/docs/helpers/Puppeteer-firefox.md +86 -0
- package/docs/helpers/Puppeteer.md +2690 -0
- package/docs/helpers/REST.md +289 -0
- package/docs/helpers/SoftExpectHelper.md +352 -0
- package/docs/helpers/WebDriver.md +2682 -0
- package/docs/hooks.md +339 -0
- package/docs/index.md +111 -0
- package/docs/installation.md +83 -0
- package/docs/internal-api.md +265 -0
- package/docs/internal-test-server.md +89 -0
- package/docs/locators.md +355 -0
- package/docs/mcp.md +485 -0
- package/docs/migration-4.md +556 -0
- package/docs/mobile.md +338 -0
- package/docs/pageobjects.md +399 -0
- package/docs/parallel.md +585 -0
- package/docs/playwright.md +714 -0
- package/docs/plugins.md +866 -0
- package/docs/puppeteer.md +314 -0
- package/docs/quickstart.md +120 -0
- package/docs/react.md +70 -0
- package/docs/reports.md +483 -0
- package/docs/retry.md +274 -0
- package/docs/secrets.md +150 -0
- package/docs/sessions.md +80 -0
- package/docs/shadow.md +68 -0
- package/docs/test-structure.md +275 -0
- package/docs/timeouts.md +183 -0
- package/docs/translation.md +247 -0
- package/docs/tutorial.md +271 -0
- package/docs/typescript.md +374 -0
- package/docs/web-element.md +251 -0
- package/docs/webdriver.md +708 -0
- package/docs/within.md +55 -0
- package/lib/aria.js +260 -0
- package/lib/command/dryRun.js +23 -3
- package/lib/command/init.js +247 -266
- package/lib/command/list.js +150 -10
- package/lib/command/query.js +218 -0
- package/lib/config.js +77 -4
- package/lib/container.js +34 -2
- package/lib/element/WebElement.js +37 -0
- package/lib/globals.js +11 -10
- package/lib/helper/Playwright.js +5 -6
- package/lib/helper/extras/PlaywrightReactVueLocator.js +45 -36
- package/lib/html.js +90 -16
- package/lib/index.js +9 -1
- package/lib/locator.js +2 -2
- package/lib/mocha/factory.js +5 -1
- package/lib/mocha/inject.js +1 -1
- package/lib/parser.js +2 -2
- package/lib/pause.js +38 -4
- package/lib/plugin/aiTrace.js +72 -84
- package/lib/plugin/browser.js +77 -0
- package/lib/plugin/expose.js +159 -0
- package/lib/plugin/heal.js +44 -1
- package/lib/plugin/pageInfo.js +51 -48
- package/lib/plugin/pause.js +131 -0
- package/lib/plugin/pauseOnFail.js +10 -34
- package/lib/plugin/screencast.js +287 -0
- package/lib/plugin/screenshot.js +563 -0
- package/lib/plugin/screenshotOnFail.js +8 -170
- package/lib/utils/pluginParser.js +151 -0
- package/lib/utils/trace.js +297 -0
- package/lib/utils.js +25 -0
- package/lib/workers.js +1 -15
- package/package.json +12 -10
- package/typings/index.d.ts +0 -5
- package/docs/webapi/amOnPage.mustache +0 -11
- package/docs/webapi/appendField.mustache +0 -16
- package/docs/webapi/attachFile.mustache +0 -24
- package/docs/webapi/blur.mustache +0 -18
- package/docs/webapi/checkOption.mustache +0 -13
- package/docs/webapi/clearCookie.mustache +0 -9
- package/docs/webapi/clearField.mustache +0 -14
- package/docs/webapi/click.mustache +0 -29
- package/docs/webapi/clickLink.mustache +0 -8
- package/docs/webapi/closeCurrentTab.mustache +0 -7
- package/docs/webapi/closeOtherTabs.mustache +0 -8
- package/docs/webapi/dontSee.mustache +0 -11
- package/docs/webapi/dontSeeCheckboxIsChecked.mustache +0 -10
- package/docs/webapi/dontSeeCookie.mustache +0 -8
- package/docs/webapi/dontSeeCurrentPathEquals.mustache +0 -10
- package/docs/webapi/dontSeeCurrentUrlEquals.mustache +0 -10
- package/docs/webapi/dontSeeElement.mustache +0 -12
- package/docs/webapi/dontSeeElementInDOM.mustache +0 -8
- package/docs/webapi/dontSeeInCurrentUrl.mustache +0 -4
- package/docs/webapi/dontSeeInField.mustache +0 -16
- package/docs/webapi/dontSeeInSource.mustache +0 -8
- package/docs/webapi/dontSeeInTitle.mustache +0 -8
- package/docs/webapi/dontSeeTraffic.mustache +0 -13
- package/docs/webapi/doubleClick.mustache +0 -13
- package/docs/webapi/downloadFile.mustache +0 -12
- package/docs/webapi/dragAndDrop.mustache +0 -9
- package/docs/webapi/dragSlider.mustache +0 -11
- package/docs/webapi/executeAsyncScript.mustache +0 -24
- package/docs/webapi/executeScript.mustache +0 -26
- package/docs/webapi/fillField.mustache +0 -21
- package/docs/webapi/flushNetworkTraffics.mustache +0 -5
- package/docs/webapi/focus.mustache +0 -13
- package/docs/webapi/forceClick.mustache +0 -28
- package/docs/webapi/forceRightClick.mustache +0 -18
- package/docs/webapi/grabAllWindowHandles.mustache +0 -7
- package/docs/webapi/grabAttributeFrom.mustache +0 -10
- package/docs/webapi/grabAttributeFromAll.mustache +0 -9
- package/docs/webapi/grabBrowserLogs.mustache +0 -9
- package/docs/webapi/grabCookie.mustache +0 -11
- package/docs/webapi/grabCssPropertyFrom.mustache +0 -11
- package/docs/webapi/grabCssPropertyFromAll.mustache +0 -10
- package/docs/webapi/grabCurrentUrl.mustache +0 -9
- package/docs/webapi/grabCurrentWindowHandle.mustache +0 -6
- package/docs/webapi/grabDataFromPerformanceTiming.mustache +0 -20
- package/docs/webapi/grabElementBoundingRect.mustache +0 -20
- package/docs/webapi/grabGeoLocation.mustache +0 -8
- package/docs/webapi/grabHTMLFrom.mustache +0 -10
- package/docs/webapi/grabHTMLFromAll.mustache +0 -9
- package/docs/webapi/grabNumberOfOpenTabs.mustache +0 -8
- package/docs/webapi/grabNumberOfVisibleElements.mustache +0 -9
- package/docs/webapi/grabPageScrollPosition.mustache +0 -8
- package/docs/webapi/grabPopupText.mustache +0 -5
- package/docs/webapi/grabRecordedNetworkTraffics.mustache +0 -10
- package/docs/webapi/grabSource.mustache +0 -8
- package/docs/webapi/grabTextFrom.mustache +0 -10
- package/docs/webapi/grabTextFromAll.mustache +0 -9
- package/docs/webapi/grabTitle.mustache +0 -8
- package/docs/webapi/grabValueFrom.mustache +0 -9
- package/docs/webapi/grabValueFromAll.mustache +0 -8
- package/docs/webapi/grabWebElement.mustache +0 -9
- package/docs/webapi/grabWebElements.mustache +0 -9
- package/docs/webapi/moveCursorTo.mustache +0 -16
- package/docs/webapi/openNewTab.mustache +0 -7
- package/docs/webapi/pressKey.mustache +0 -12
- package/docs/webapi/pressKeyDown.mustache +0 -12
- package/docs/webapi/pressKeyUp.mustache +0 -12
- package/docs/webapi/pressKeyWithKeyNormalization.mustache +0 -60
- package/docs/webapi/refreshPage.mustache +0 -6
- package/docs/webapi/resizeWindow.mustache +0 -6
- package/docs/webapi/rightClick.mustache +0 -14
- package/docs/webapi/saveElementScreenshot.mustache +0 -10
- package/docs/webapi/saveScreenshot.mustache +0 -12
- package/docs/webapi/say.mustache +0 -10
- package/docs/webapi/scrollIntoView.mustache +0 -11
- package/docs/webapi/scrollPageToBottom.mustache +0 -6
- package/docs/webapi/scrollPageToTop.mustache +0 -6
- package/docs/webapi/scrollTo.mustache +0 -12
- package/docs/webapi/see.mustache +0 -11
- package/docs/webapi/seeAttributesOnElements.mustache +0 -9
- package/docs/webapi/seeCheckboxIsChecked.mustache +0 -10
- package/docs/webapi/seeCookie.mustache +0 -8
- package/docs/webapi/seeCssPropertiesOnElements.mustache +0 -9
- package/docs/webapi/seeCurrentPathEquals.mustache +0 -10
- package/docs/webapi/seeCurrentUrlEquals.mustache +0 -11
- package/docs/webapi/seeElement.mustache +0 -12
- package/docs/webapi/seeElementInDOM.mustache +0 -8
- package/docs/webapi/seeInCurrentUrl.mustache +0 -8
- package/docs/webapi/seeInField.mustache +0 -17
- package/docs/webapi/seeInPopup.mustache +0 -8
- package/docs/webapi/seeInSource.mustache +0 -7
- package/docs/webapi/seeInTitle.mustache +0 -8
- package/docs/webapi/seeNumberOfElements.mustache +0 -11
- package/docs/webapi/seeNumberOfVisibleElements.mustache +0 -10
- package/docs/webapi/seeTextEquals.mustache +0 -9
- package/docs/webapi/seeTitleEquals.mustache +0 -8
- package/docs/webapi/seeTraffic.mustache +0 -36
- package/docs/webapi/selectOption.mustache +0 -26
- package/docs/webapi/setCookie.mustache +0 -16
- package/docs/webapi/setGeoLocation.mustache +0 -12
- package/docs/webapi/startRecordingTraffic.mustache +0 -8
- package/docs/webapi/startRecordingWebSocketMessages.mustache +0 -8
- package/docs/webapi/stopRecordingTraffic.mustache +0 -5
- package/docs/webapi/stopRecordingWebSocketMessages.mustache +0 -7
- package/docs/webapi/switchTo.mustache +0 -9
- package/docs/webapi/switchToNextTab.mustache +0 -10
- package/docs/webapi/switchToPreviousTab.mustache +0 -10
- package/docs/webapi/type.mustache +0 -21
- package/docs/webapi/uncheckOption.mustache +0 -13
- package/docs/webapi/wait.mustache +0 -8
- package/docs/webapi/waitForClickable.mustache +0 -11
- package/docs/webapi/waitForCookie.mustache +0 -9
- package/docs/webapi/waitForDetached.mustache +0 -10
- package/docs/webapi/waitForDisabled.mustache +0 -6
- package/docs/webapi/waitForElement.mustache +0 -11
- package/docs/webapi/waitForEnabled.mustache +0 -6
- package/docs/webapi/waitForFunction.mustache +0 -17
- package/docs/webapi/waitForInvisible.mustache +0 -10
- package/docs/webapi/waitForNumberOfTabs.mustache +0 -9
- package/docs/webapi/waitForText.mustache +0 -13
- package/docs/webapi/waitForValue.mustache +0 -10
- package/docs/webapi/waitForVisible.mustache +0 -10
- package/docs/webapi/waitInUrl.mustache +0 -9
- package/docs/webapi/waitNumberOfVisibleElements.mustache +0 -10
- package/docs/webapi/waitToHide.mustache +0 -10
- package/docs/webapi/waitUrlEquals.mustache +0 -10
- package/lib/helper/AI.js +0 -214
- package/lib/plugin/pauseOn.js +0 -167
- package/lib/plugin/stepByStepReport.js +0 -432
- package/lib/plugin/subtitles.js +0 -89
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
Retrieves an array of attributes from elements located by CSS or XPath and returns it to test.
|
|
2
|
-
Resumes test execution, so **should be used inside async with `await`** operator.
|
|
3
|
-
|
|
4
|
-
```js
|
|
5
|
-
let hints = await I.grabAttributeFromAll('.tooltip', 'title');
|
|
6
|
-
```
|
|
7
|
-
@param {CodeceptJS.LocatorOrString} locator element located by CSS|XPath|strict locator.
|
|
8
|
-
@param {string} attr attribute name.
|
|
9
|
-
@returns {Promise<string[]>} attribute value
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
Get JS log from browser. Log buffer is reset after each request.
|
|
2
|
-
Resumes test execution, so **should be used inside an async function with `await`** operator.
|
|
3
|
-
|
|
4
|
-
```js
|
|
5
|
-
let logs = await I.grabBrowserLogs();
|
|
6
|
-
console.log(JSON.stringify(logs))
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
@returns {Promise<object[]>|undefined} all browser logs
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
Gets a cookie object by name.
|
|
2
|
-
If none provided gets all cookies.
|
|
3
|
-
Resumes test execution, so **should be used inside async function with `await`** operator.
|
|
4
|
-
|
|
5
|
-
```js
|
|
6
|
-
let cookie = await I.grabCookie('auth');
|
|
7
|
-
assert(cookie.value, '123456');
|
|
8
|
-
```
|
|
9
|
-
|
|
10
|
-
@param {?string} [name=null] cookie name.
|
|
11
|
-
@returns {any} attribute value
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
Grab CSS property for given locator
|
|
2
|
-
Resumes test execution, so **should be used inside an async function with `await`** operator.
|
|
3
|
-
If more than one element is found - value of first element is returned.
|
|
4
|
-
|
|
5
|
-
```js
|
|
6
|
-
const value = await I.grabCssPropertyFrom('h3', 'font-weight');
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
@param {CodeceptJS.LocatorOrString} locator element located by CSS|XPath|strict locator.
|
|
10
|
-
@param {string} cssProperty CSS property name.
|
|
11
|
-
@returns {Promise<string>} CSS value
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
Grab array of CSS properties for given locator
|
|
2
|
-
Resumes test execution, so **should be used inside an async function with `await`** operator.
|
|
3
|
-
|
|
4
|
-
```js
|
|
5
|
-
const values = await I.grabCssPropertyFromAll('h3', 'font-weight');
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
@param {CodeceptJS.LocatorOrString} locator element located by CSS|XPath|strict locator.
|
|
9
|
-
@param {string} cssProperty CSS property name.
|
|
10
|
-
@returns {Promise<string[]>} CSS value
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
Grab the data from performance timing using Navigation Timing API.
|
|
2
|
-
The returned data will contain following things in ms:
|
|
3
|
-
- responseEnd,
|
|
4
|
-
- domInteractive,
|
|
5
|
-
- domContentLoadedEventEnd,
|
|
6
|
-
- loadEventEnd
|
|
7
|
-
Resumes test execution, so **should be used inside an async function with `await`** operator.
|
|
8
|
-
|
|
9
|
-
```js
|
|
10
|
-
await I.amOnPage('https://example.com');
|
|
11
|
-
let data = await I.grabDataFromPerformanceTiming();
|
|
12
|
-
//Returned data
|
|
13
|
-
{ // all results are in [ms]
|
|
14
|
-
responseEnd: 23,
|
|
15
|
-
domInteractive: 44,
|
|
16
|
-
domContentLoadedEventEnd: 196,
|
|
17
|
-
loadEventEnd: 241
|
|
18
|
-
}
|
|
19
|
-
```
|
|
20
|
-
@returns {void} automatically synchronized promise through #recorder
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
Grab the width, height, location of given locator.
|
|
2
|
-
Provide `width` or `height`as second param to get your desired prop.
|
|
3
|
-
Resumes test execution, so **should be used inside an async function with `await`** operator.
|
|
4
|
-
|
|
5
|
-
Returns an object with `x`, `y`, `width`, `height` keys.
|
|
6
|
-
|
|
7
|
-
```js
|
|
8
|
-
const value = await I.grabElementBoundingRect('h3');
|
|
9
|
-
// value is like { x: 226.5, y: 89, width: 527, height: 220 }
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
To get only one metric use second parameter:
|
|
13
|
-
|
|
14
|
-
```js
|
|
15
|
-
const width = await I.grabElementBoundingRect('h3', 'width');
|
|
16
|
-
// width == 527
|
|
17
|
-
```
|
|
18
|
-
@param {LocatorOrString} locator element located by CSS|XPath|strict locator.
|
|
19
|
-
@param {string=} elementSize x, y, width or height of the given element.
|
|
20
|
-
@returns {Promise<DOMRect>|Promise<number>} Element bounding rectangle
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
Return the current geo location
|
|
2
|
-
Resumes test execution, so **should be used inside async function with `await`** operator.
|
|
3
|
-
|
|
4
|
-
```js
|
|
5
|
-
let geoLocation = await I.grabGeoLocation();
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
@returns {Promise<{ latitude: number, longitude: number, altitude: number }>}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
Retrieves the innerHTML from an element located by CSS or XPath and returns it to test.
|
|
2
|
-
Resumes test execution, so **should be used inside async function with `await`** operator.
|
|
3
|
-
If more than one element is found - HTML of first element is returned.
|
|
4
|
-
|
|
5
|
-
```js
|
|
6
|
-
let postHTML = await I.grabHTMLFrom('#post');
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
@param {CodeceptJS.LocatorOrString} element located by CSS|XPath|strict locator.
|
|
10
|
-
@returns {Promise<string>} HTML code for an element
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
Retrieves all the innerHTML from elements located by CSS or XPath and returns it to test.
|
|
2
|
-
Resumes test execution, so **should be used inside async function with `await`** operator.
|
|
3
|
-
|
|
4
|
-
```js
|
|
5
|
-
let postHTMLs = await I.grabHTMLFromAll('.post');
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
@param {CodeceptJS.LocatorOrString} element located by CSS|XPath|strict locator.
|
|
9
|
-
@returns {Promise<string[]>} HTML code for an element
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
Grab number of visible elements by locator.
|
|
2
|
-
Resumes test execution, so **should be used inside async function with `await`** operator.
|
|
3
|
-
|
|
4
|
-
```js
|
|
5
|
-
let numOfElements = await I.grabNumberOfVisibleElements('p');
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
@param {CodeceptJS.LocatorOrString} locator located by CSS|XPath|strict locator.
|
|
9
|
-
@returns {Promise<number>} number of visible elements
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
Retrieves a page scroll position and returns it to test.
|
|
2
|
-
Resumes test execution, so **should be used inside an async function with `await`** operator.
|
|
3
|
-
|
|
4
|
-
```js
|
|
5
|
-
let { x, y } = await I.grabPageScrollPosition();
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
@returns {Promise<PageScrollPosition>} scroll position
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
Grab the recording network traffics
|
|
2
|
-
|
|
3
|
-
```js
|
|
4
|
-
const traffics = await I.grabRecordedNetworkTraffics();
|
|
5
|
-
expect(traffics[0].url).to.equal('https://reqres.in/api/comments/1');
|
|
6
|
-
expect(traffics[0].response.status).to.equal(200);
|
|
7
|
-
expect(traffics[0].response.body).to.contain({ name: 'this was mocked' });
|
|
8
|
-
```
|
|
9
|
-
|
|
10
|
-
@return { Array } recorded network traffics
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
Retrieves a text from an element located by CSS or XPath and returns it to test.
|
|
2
|
-
Resumes test execution, so **should be used inside async with `await`** operator.
|
|
3
|
-
|
|
4
|
-
```js
|
|
5
|
-
let pin = await I.grabTextFrom('#pin');
|
|
6
|
-
```
|
|
7
|
-
If multiple elements found returns first element.
|
|
8
|
-
|
|
9
|
-
@param {CodeceptJS.LocatorOrString} locator element located by CSS|XPath|strict locator.
|
|
10
|
-
@returns {Promise<string>} attribute value
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
Retrieves all texts from an element located by CSS or XPath and returns it to test.
|
|
2
|
-
Resumes test execution, so **should be used inside async with `await`** operator.
|
|
3
|
-
|
|
4
|
-
```js
|
|
5
|
-
let pins = await I.grabTextFromAll('#pin li');
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
@param {CodeceptJS.LocatorOrString} locator element located by CSS|XPath|strict locator.
|
|
9
|
-
@returns {Promise<string[]>} attribute value
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
Retrieves a value from a form element located by CSS or XPath and returns it to test.
|
|
2
|
-
Resumes test execution, so **should be used inside async function with `await`** operator.
|
|
3
|
-
If more than one element is found - value of first element is returned.
|
|
4
|
-
|
|
5
|
-
```js
|
|
6
|
-
let email = await I.grabValueFrom('input[name=email]');
|
|
7
|
-
```
|
|
8
|
-
@param {CodeceptJS.LocatorOrString} locator field located by label|name|CSS|XPath|strict locator.
|
|
9
|
-
@returns {Promise<string>} attribute value
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
Retrieves an array of value from a form located by CSS or XPath and returns it to test.
|
|
2
|
-
Resumes test execution, so **should be used inside async function with `await`** operator.
|
|
3
|
-
|
|
4
|
-
```js
|
|
5
|
-
let inputs = await I.grabValueFromAll('//form/input');
|
|
6
|
-
```
|
|
7
|
-
@param {CodeceptJS.LocatorOrString} locator field located by label|name|CSS|XPath|strict locator.
|
|
8
|
-
@returns {Promise<string[]>} attribute value
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
Grab WebElement for given locator
|
|
2
|
-
Resumes test execution, so **should be used inside an async function with `await`** operator.
|
|
3
|
-
|
|
4
|
-
```js
|
|
5
|
-
const webElement = await I.grabWebElement('#button');
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
@param {CodeceptJS.LocatorOrString} locator element located by CSS|XPath|strict locator.
|
|
9
|
-
@returns {Promise<*>} WebElement of being used Web helper
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
Grab WebElements for given locator
|
|
2
|
-
Resumes test execution, so **should be used inside an async function with `await`** operator.
|
|
3
|
-
|
|
4
|
-
```js
|
|
5
|
-
const webElements = await I.grabWebElements('#button');
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
@param {CodeceptJS.LocatorOrString} locator element located by CSS|XPath|strict locator.
|
|
9
|
-
@returns {Promise<*>} WebElement of being used Web helper
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
Moves cursor to element matched by locator.
|
|
2
|
-
Extra shift can be set with offsetX and offsetY options.
|
|
3
|
-
|
|
4
|
-
An optional `context` (as a second parameter) can be specified to narrow the search to an element within a parent.
|
|
5
|
-
When the second argument is a non-number (string or locator object), it is treated as context.
|
|
6
|
-
|
|
7
|
-
```js
|
|
8
|
-
I.moveCursorTo('.tooltip');
|
|
9
|
-
I.moveCursorTo('#submit', 5,5);
|
|
10
|
-
I.moveCursorTo('#submit', '.container');
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
@param {CodeceptJS.LocatorOrString} locator located by CSS|XPath|strict locator.
|
|
14
|
-
@param {number|CodeceptJS.LocatorOrString} [offsetX=0] (optional, `0` by default) X-axis offset or context locator.
|
|
15
|
-
@param {number} [offsetY=0] (optional, `0` by default) Y-axis offset.
|
|
16
|
-
@returns {void} automatically synchronized promise through #recorder
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
Presses a key on a focused element.
|
|
2
|
-
Special keys like 'Enter', 'Control', [etc](https://code.google.com/p/selenium/wiki/JsonWireProtocol#/session/:sessionId/element/:id/value)
|
|
3
|
-
will be replaced with corresponding unicode.
|
|
4
|
-
If modifier key is used (Control, Command, Alt, Shift) in array, it will be released afterwards.
|
|
5
|
-
|
|
6
|
-
```js
|
|
7
|
-
I.pressKey('Enter');
|
|
8
|
-
I.pressKey(['Control','a']);
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
@param {string|string[]} key key or array of keys to press.
|
|
12
|
-
@returns {void} automatically synchronized promise through #recorder
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
Presses a key in the browser and leaves it in a down state.
|
|
2
|
-
|
|
3
|
-
To make combinations with modifier key and user operation (e.g. `'Control'` + [`click`](#click)).
|
|
4
|
-
|
|
5
|
-
```js
|
|
6
|
-
I.pressKeyDown('Control');
|
|
7
|
-
I.click('#element');
|
|
8
|
-
I.pressKeyUp('Control');
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
@param {string} key name of key to press down.
|
|
12
|
-
@returns {void} automatically synchronized promise through #recorder
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
Releases a key in the browser which was previously set to a down state.
|
|
2
|
-
|
|
3
|
-
To make combinations with modifier key and user operation (e.g. `'Control'` + [`click`](#click)).
|
|
4
|
-
|
|
5
|
-
```js
|
|
6
|
-
I.pressKeyDown('Control');
|
|
7
|
-
I.click('#element');
|
|
8
|
-
I.pressKeyUp('Control');
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
@param {string} key name of key to release.
|
|
12
|
-
@returns {void} automatically synchronized promise through #recorder
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
Presses a key in the browser (on a focused element).
|
|
2
|
-
|
|
3
|
-
_Hint:_ For populating text field or textarea, it is recommended to use [`fillField`](#fillfield).
|
|
4
|
-
|
|
5
|
-
```js
|
|
6
|
-
I.pressKey('Backspace');
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
To press a key in combination with modifier keys, pass the sequence as an array. All modifier keys (`'Alt'`, `'Control'`, `'Meta'`, `'Shift'`) will be released afterwards.
|
|
10
|
-
|
|
11
|
-
```js
|
|
12
|
-
I.pressKey(['Control', 'Z']);
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
For specifying operation modifier key based on operating system it is suggested to use `'CommandOrControl'`.
|
|
16
|
-
This will press `'Command'` (also known as `'Meta'`) on macOS machines and `'Control'` on non-macOS machines.
|
|
17
|
-
|
|
18
|
-
```js
|
|
19
|
-
I.pressKey(['CommandOrControl', 'Z']);
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
Some of the supported key names are:
|
|
23
|
-
- `'AltLeft'` or `'Alt'`
|
|
24
|
-
- `'AltRight'`
|
|
25
|
-
- `'ArrowDown'`
|
|
26
|
-
- `'ArrowLeft'`
|
|
27
|
-
- `'ArrowRight'`
|
|
28
|
-
- `'ArrowUp'`
|
|
29
|
-
- `'Backspace'`
|
|
30
|
-
- `'Clear'`
|
|
31
|
-
- `'ControlLeft'` or `'Control'`
|
|
32
|
-
- `'ControlRight'`
|
|
33
|
-
- `'Command'`
|
|
34
|
-
- `'CommandOrControl'`
|
|
35
|
-
- `'Delete'`
|
|
36
|
-
- `'End'`
|
|
37
|
-
- `'Enter'`
|
|
38
|
-
- `'Escape'`
|
|
39
|
-
- `'F1'` to `'F12'`
|
|
40
|
-
- `'Home'`
|
|
41
|
-
- `'Insert'`
|
|
42
|
-
- `'MetaLeft'` or `'Meta'`
|
|
43
|
-
- `'MetaRight'`
|
|
44
|
-
- `'Numpad0'` to `'Numpad9'`
|
|
45
|
-
- `'NumpadAdd'`
|
|
46
|
-
- `'NumpadDecimal'`
|
|
47
|
-
- `'NumpadDivide'`
|
|
48
|
-
- `'NumpadMultiply'`
|
|
49
|
-
- `'NumpadSubtract'`
|
|
50
|
-
- `'PageDown'`
|
|
51
|
-
- `'PageUp'`
|
|
52
|
-
- `'Pause'`
|
|
53
|
-
- `'Return'`
|
|
54
|
-
- `'ShiftLeft'` or `'Shift'`
|
|
55
|
-
- `'ShiftRight'`
|
|
56
|
-
- `'Space'`
|
|
57
|
-
- `'Tab'`
|
|
58
|
-
|
|
59
|
-
@param {string|string[]} key key or array of keys to press.
|
|
60
|
-
@returns {void} automatically synchronized promise through #recorder
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
Resize the current window to provided width and height.
|
|
2
|
-
First parameter can be set to `maximize`.
|
|
3
|
-
|
|
4
|
-
@param {number} width width in pixels or `maximize`.
|
|
5
|
-
@param {number} height height in pixels.
|
|
6
|
-
@returns {void} automatically synchronized promise through #recorder
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
Performs right click on a clickable element matched by semantic locator, CSS or XPath.
|
|
2
|
-
|
|
3
|
-
```js
|
|
4
|
-
// right click element with id el
|
|
5
|
-
I.rightClick('#el');
|
|
6
|
-
// right click link or button with text "Click me"
|
|
7
|
-
I.rightClick('Click me');
|
|
8
|
-
// right click button with text "Click me" inside .context
|
|
9
|
-
I.rightClick('Click me', '.context');
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
@param {CodeceptJS.LocatorOrString} locator clickable element located by CSS|XPath|strict locator.
|
|
13
|
-
@param {?CodeceptJS.LocatorOrString} [context=null] (optional, `null` by default) element located by CSS|XPath|strict locator.
|
|
14
|
-
@returns {void} automatically synchronized promise through #recorder
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
Saves screenshot of the specified locator to ouput folder (set in codecept.conf.ts or codecept.conf.js).
|
|
2
|
-
Filename is relative to output folder.
|
|
3
|
-
|
|
4
|
-
```js
|
|
5
|
-
I.saveElementScreenshot(`#submit`,'debug.png');
|
|
6
|
-
```
|
|
7
|
-
|
|
8
|
-
@param {CodeceptJS.LocatorOrString} locator element located by CSS|XPath|strict locator.
|
|
9
|
-
@param {string} fileName file name to save.
|
|
10
|
-
@returns {void} automatically synchronized promise through #recorder
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
Saves a screenshot to ouput folder (set in codecept.conf.ts or codecept.conf.js).
|
|
2
|
-
Filename is relative to output folder.
|
|
3
|
-
Optionally resize the window to the full available page `scrollHeight` and `scrollWidth` to capture the entire page by passing `true` in as the second argument.
|
|
4
|
-
|
|
5
|
-
```js
|
|
6
|
-
I.saveScreenshot('debug.png');
|
|
7
|
-
I.saveScreenshot('debug.png', true) //resizes to available scrollHeight and scrollWidth before taking screenshot
|
|
8
|
-
```
|
|
9
|
-
|
|
10
|
-
@param {string} fileName file name to save.
|
|
11
|
-
@param {boolean} [fullPage=false] (optional, `false` by default) flag to enable fullscreen screenshot mode.
|
|
12
|
-
@returns {void} automatically synchronized promise through #recorder
|
package/docs/webapi/say.mustache
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
Print a text in console log
|
|
2
|
-
|
|
3
|
-
```js
|
|
4
|
-
I.say('This is red', 'red'); //red is used
|
|
5
|
-
I.say('This is blue', 'blue'); //blue is used
|
|
6
|
-
I.say('This is by default'); //cyan is used
|
|
7
|
-
```
|
|
8
|
-
@param {string} text expected on console log.
|
|
9
|
-
@param {string} [color='cyan'] color you want to use.
|
|
10
|
-
@returns {void} automatically synchronized promise through #recorder
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
Scroll element into viewport.
|
|
2
|
-
|
|
3
|
-
```js
|
|
4
|
-
I.scrollIntoView('#submit');
|
|
5
|
-
I.scrollIntoView('#submit', true);
|
|
6
|
-
I.scrollIntoView('#submit', { behavior: "smooth", block: "center", inline: "center" });
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
@param {LocatorOrString} locator located by CSS|XPath|strict locator.
|
|
10
|
-
@param {ScrollIntoViewOptions|boolean} scrollIntoViewOptions either alignToTop=true|false or scrollIntoViewOptions. See https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView.
|
|
11
|
-
@returns {void} automatically synchronized promise through #recorder
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
Scrolls to element matched by locator.
|
|
2
|
-
Extra shift can be set with offsetX and offsetY options.
|
|
3
|
-
|
|
4
|
-
```js
|
|
5
|
-
I.scrollTo('footer');
|
|
6
|
-
I.scrollTo('#submit', 5, 5);
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
@param {CodeceptJS.LocatorOrString} locator located by CSS|XPath|strict locator.
|
|
10
|
-
@param {number} [offsetX=0] (optional, `0` by default) X-axis offset.
|
|
11
|
-
@param {number} [offsetY=0] (optional, `0` by default) Y-axis offset.
|
|
12
|
-
@returns {void} automatically synchronized promise through #recorder
|
package/docs/webapi/see.mustache
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
Checks that a page contains a visible text.
|
|
2
|
-
Use context parameter to narrow down the search.
|
|
3
|
-
|
|
4
|
-
```js
|
|
5
|
-
I.see('Welcome'); // text welcome on a page
|
|
6
|
-
I.see('Welcome', '.content'); // text inside .content div
|
|
7
|
-
I.see('Register', {css: 'form.register'}); // use strict locator
|
|
8
|
-
```
|
|
9
|
-
@param {string} text expected on page.
|
|
10
|
-
@param {?CodeceptJS.LocatorOrString} [context=null] (optional, `null` by default) element located by CSS|Xpath|strict locator in which to search for text.
|
|
11
|
-
@returns {void} automatically synchronized promise through #recorder
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
Checks that all elements with given locator have given attributes.
|
|
2
|
-
|
|
3
|
-
```js
|
|
4
|
-
I.seeAttributesOnElements('//form', { method: "post"});
|
|
5
|
-
```
|
|
6
|
-
|
|
7
|
-
@param {CodeceptJS.LocatorOrString} locator located by CSS|XPath|strict locator.
|
|
8
|
-
@param {object} attributes attributes and their values to check.
|
|
9
|
-
@returns {void} automatically synchronized promise through #recorder
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
Verifies that the specified checkbox is checked.
|
|
2
|
-
|
|
3
|
-
```js
|
|
4
|
-
I.seeCheckboxIsChecked('Agree');
|
|
5
|
-
I.seeCheckboxIsChecked('#agree'); // I suppose user agreed to terms
|
|
6
|
-
I.seeCheckboxIsChecked({css: '#signup_form input[type=checkbox]'});
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
@param {CodeceptJS.LocatorOrString} field located by label|name|CSS|XPath|strict locator.
|
|
10
|
-
@returns {void} automatically synchronized promise through #recorder
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
Checks that all elements with given locator have given CSS properties.
|
|
2
|
-
|
|
3
|
-
```js
|
|
4
|
-
I.seeCssPropertiesOnElements('h3', { 'font-weight': "bold"});
|
|
5
|
-
```
|
|
6
|
-
|
|
7
|
-
@param {CodeceptJS.LocatorOrString} locator located by CSS|XPath|strict locator.
|
|
8
|
-
@param {object} cssProperties object with CSS properties and their values to check.
|
|
9
|
-
@returns {void} automatically synchronized promise through #recorder
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
Checks that current URL path matches the expected path.
|
|
2
|
-
Query strings and URL fragments are ignored.
|
|
3
|
-
|
|
4
|
-
```js
|
|
5
|
-
I.seeCurrentPathEquals('/info'); // passes for '/info', '/info?user=1', '/info#section'
|
|
6
|
-
I.seeCurrentPathEquals('/'); // passes for '/', '/?user=ok', '/#top'
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
@param {string} path value to check.
|
|
10
|
-
@returns {void} automatically synchronized promise through #recorder
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
Checks that current url is equal to provided one.
|
|
2
|
-
If a relative url provided, a configured url will be prepended to it.
|
|
3
|
-
So both examples will work:
|
|
4
|
-
|
|
5
|
-
```js
|
|
6
|
-
I.seeCurrentUrlEquals('/register');
|
|
7
|
-
I.seeCurrentUrlEquals('http://my.site.com/register');
|
|
8
|
-
```
|
|
9
|
-
|
|
10
|
-
@param {string} url value to check.
|
|
11
|
-
@returns {void} automatically synchronized promise through #recorder
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
Checks that a given Element is visible
|
|
2
|
-
Element is located by CSS or XPath.
|
|
3
|
-
|
|
4
|
-
The second parameter is a context (CSS or XPath locator) to narrow the search.
|
|
5
|
-
|
|
6
|
-
```js
|
|
7
|
-
I.seeElement('#modal');
|
|
8
|
-
I.seeElement('#modal', '#container');
|
|
9
|
-
```
|
|
10
|
-
@param {CodeceptJS.LocatorOrString} locator located by CSS|XPath|strict locator.
|
|
11
|
-
@param {?CodeceptJS.LocatorOrString} [context=null] (optional, `null` by default) element located by CSS | XPath | strict locator.
|
|
12
|
-
@returns {void} automatically synchronized promise through #recorder
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
Checks that a given Element is present in the DOM
|
|
2
|
-
Element is located by CSS or XPath.
|
|
3
|
-
|
|
4
|
-
```js
|
|
5
|
-
I.seeElementInDOM('#modal');
|
|
6
|
-
```
|
|
7
|
-
@param {CodeceptJS.LocatorOrString} locator element located by CSS|XPath|strict locator.
|
|
8
|
-
@returns {void} automatically synchronized promise through #recorder
|