From c7ecc9b16b85572db04521928561a11526d22e0e Mon Sep 17 00:00:00 2001 From: Davert Date: Wed, 29 Jul 2020 00:00:44 +0300 Subject: [PATCH 01/14] added docs --- docs/helpers/Appium.md | 19 +++++++++++++++---- docs/helpers/WebDriver.md | 21 ++++++++++++++++----- docs/playwright.md | 13 +++++++++++++ 3 files changed, 44 insertions(+), 9 deletions(-) diff --git a/docs/helpers/Appium.md b/docs/helpers/Appium.md index cccc7fb4e..e31b93557 100644 --- a/docs/helpers/Appium.md +++ b/docs/helpers/Appium.md @@ -1282,14 +1282,25 @@ I.rightClick('Click me', '.context'); ### forceRightClick -{{> forceRightClick }} +Emulates right click on an element. +Unlike normal click instead of sending native event, emulates a click with JavaScript. +This works on hidden, animated or inactive elements as well. + +If a fuzzy locator is given, the page will be searched for a button, link, or image matching the locator string. +For buttons, the "value" attribute, "name" attribute, and inner text are searched. For links, the link text is searched. +For images, the "alt" attribute and inner text of any parent links are searched. + +The second parameter is a context (CSS or XPath locator) to narrow the search. -{{ react }} +```js +// simple link +I.forceRightClick('Menu'); +``` #### Parameters -- `locator` -- `context` (optional, default `null`) +- `locator` **([string][4] \| [object][6])** clickable link or button located by text, or any element located by CSS|XPath|strict locator. +- `context` **([string][4]? | [object][6])** (optional, `null` by default) element to search in CSS|XPath|Strict locator.{{ react }} (optional, default `null`) ### clearField diff --git a/docs/helpers/WebDriver.md b/docs/helpers/WebDriver.md index f14d2d6a3..83ebbfff0 100644 --- a/docs/helpers/WebDriver.md +++ b/docs/helpers/WebDriver.md @@ -913,18 +913,29 @@ This action supports [React locators](https://codecept.io/react#locators) ### forceRightClick -{{> forceRightClick }} +Emulates right click on an element. +Unlike normal click instead of sending native event, emulates a click with JavaScript. +This works on hidden, animated or inactive elements as well. +If a fuzzy locator is given, the page will be searched for a button, link, or image matching the locator string. +For buttons, the "value" attribute, "name" attribute, and inner text are searched. For links, the link text is searched. +For images, the "alt" attribute and inner text of any parent links are searched. +The second parameter is a context (CSS or XPath locator) to narrow the search. +```js +// simple link +I.forceRightClick('Menu'); +``` -This action supports [React locators](https://codecept.io/react#locators) +#### Parameters +- `locator` **([string][19] | [object][18])** clickable link or button located by text, or any element located by CSS|XPath|strict locator. +- `context` **([string][19]? | [object][18])** (optional, `null` by default) element to search in CSS|XPath|Strict locator. -#### Parameters -- `locator` -- `context` +This action supports [React locators](https://codecept.io/react#locators) + ### grabAllWindowHandles diff --git a/docs/playwright.md b/docs/playwright.md index f24275ed5..f57e7526d 100644 --- a/docs/playwright.md +++ b/docs/playwright.md @@ -260,6 +260,19 @@ Scenario('website looks nice on iPhone', () => { }); ``` +## Configuring CI + +### GitHub Actions + +Playwright can be added to GitHub Actions using [official action](https://github.com/microsoft/playwright-github-action). Use it before starting CodeceptJS tests to install all dependencies. It is important to run tests in headless mode ([otherwise you will need to enable xvfb to emulate desktop](https://github.com/microsoft/playwright-github-action#run-in-headful-mode)). + +```yml +# from workflows/tests.yml +- uses: microsoft/playwright-github-action@v1 +- name: run CodeceptJS tests + run: npx codeceptjs run +``` + ## Extending Playwright has a very [rich and flexible API](https://github.com/microsoft/playwright/blob/master/docs/api.md). Sure, you can extend your test suites to use the methods listed there. CodeceptJS already prepares some objects for you and you can use them from your you helpers. From 7d20036fc7b579796ce1690e626e53595ada6b86 Mon Sep 17 00:00:00 2001 From: Davert Date: Wed, 5 Aug 2020 00:26:18 +0300 Subject: [PATCH 02/14] added type method --- CHANGELOG.md | 5 + docs/books.md | 4 +- docs/changelog.md | 244 +++++++++++++++++----------------- docs/community-helpers.md | 4 +- docs/examples.md | 6 +- docs/helpers/Appium.md | 14 ++ docs/videos.md | 2 +- docs/webapi/type.mustache | 17 ++- lib/helper/Nightmare.js | 11 +- lib/helper/Playwright.js | 17 ++- lib/helper/Protractor.js | 4 +- lib/helper/Puppeteer.js | 17 ++- lib/helper/TestCafe.js | 6 +- lib/helper/WebDriver.js | 19 ++- lib/step.js | 2 +- test/helper/WebDriver_test.js | 15 --- test/helper/webapi.js | 32 ++++- 17 files changed, 239 insertions(+), 180 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e4089530a..e07c8e9d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ ## 2.6.8 +* [WebDriver][Protractor][Playwright][Puppeteer][Nightmare] `saveElementScreenshot` method added to make screenshot of an element. By @suniljaiswal01 +* [Playwright][Puppeteer] Added `type` method to type a text using keyboard with an optional delay. +* [WebDriver] Added optional `delay` argument to `type` method to slow down typing. +* [Puppeteer] Fixed `amOnPage` freeze when `getPageTimeout` is 0"; set 30 sec as default timeout by @Vorobeyko. +* Fixed printing step with null argument in custom helper by @sjana-aj. See #2494 * Fix missing screenshot on failure when REST helper is in use #2513 by @PeterNgTr * Improve error logging in the `screenshotOnFail` plugin #2512 by @pablopaul diff --git a/docs/books.md b/docs/books.md index 5f33b3f17..7730f9e04 100644 --- a/docs/books.md +++ b/docs/books.md @@ -7,7 +7,7 @@ editLink: false --- # Books & Posts -> Add your own books or posts to our [Wiki Page](https://github.com/codeceptjs/CodeceptJS/wiki/Books-&-Posts) +> Add your own books or posts to our [Wiki Page](https://github.com/Codeception/CodeceptJS/wiki/Books-&-Posts) ### [Practical End 2 End Testing with CodeceptJS](https://leanpub.com/codeceptjs/) A book by **Paul Vincent Beigang** @@ -34,4 +34,4 @@ A list of good educational posts about CodeceptJS * [Customizing CodeceptJS Skeleton](https://medium.com/@successivetech/codeceptjs-skeleton-9ba86d3b45ec) * [Running End to End tests as Google Cloud Functions](https://hackernoon.com/running-end-to-end-tests-as-google-cloud-functions-f5e34ffc3984) * [End-To-End Testing With CodeceptJS](https://www.monterail.com/blog/end-to-end-testing-with-codeceptjs) by Piotr Michalski -* [Getting started with CodeceptJS and Selenium WebDriver](https://medium.com/@garrettvorce/getting-started-with-selenium-and-codeceptjs-c0698e8df677) +* [Getting started with CodeceptJS and Selenium WebDriver](https://medium.com/@garrettvorce/getting-started-with-selenium-and-codeceptjs-c0698e8df677) \ No newline at end of file diff --git a/docs/changelog.md b/docs/changelog.md index 3a65ea10c..657608a4e 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -9,26 +9,26 @@ layout: Section ## 2.6.7 -* Add REST helper into `standardActingHelpers` array [#2474](https://github.com/codeceptjs/CodeceptJS/issues/2474) by **[PeterNgTr](https://github.com/PeterNgTr)** -* Add missing `--invert` option for `run-workers` command [#2504](https://github.com/codeceptjs/CodeceptJS/issues/2504) by **[pablopaul](https://github.com/pablopaul)** -* **[WebDriver]** Introduce `forceRightClick` method [#2485](https://github.com/codeceptjs/CodeceptJS/issues/2485) bylsuniljaiswal01 -* **[Playwright]** Fix `setCookie` method [#2491](https://github.com/codeceptjs/CodeceptJS/issues/2491) by **[bmbarker90](https://github.com/bmbarker90)** -* **[TypeScript]** Update compilerOptions.target to es2017 [#2483](https://github.com/codeceptjs/CodeceptJS/issues/2483) by **[shanplourde](https://github.com/shanplourde)** -* **[Mocha]** Honor reporter configuration [#2465](https://github.com/codeceptjs/CodeceptJS/issues/2465) by **[trinhpham](https://github.com/trinhpham)** +* Add REST helper into `standardActingHelpers` array [#2474](https://github.com/Codeception/CodeceptJS/issues/2474) by **[PeterNgTr](https://github.com/PeterNgTr)** +* Add missing `--invert` option for `run-workers` command [#2504](https://github.com/Codeception/CodeceptJS/issues/2504) by **[pablopaul](https://github.com/pablopaul)** +* **[WebDriver]** Introduce `forceRightClick` method [#2485](https://github.com/Codeception/CodeceptJS/issues/2485) bylsuniljaiswal01 +* **[Playwright]** Fix `setCookie` method [#2491](https://github.com/Codeception/CodeceptJS/issues/2491) by **[bmbarker90](https://github.com/bmbarker90)** +* **[TypeScript]** Update compilerOptions.target to es2017 [#2483](https://github.com/Codeception/CodeceptJS/issues/2483) by **[shanplourde](https://github.com/shanplourde)** +* **[Mocha]** Honor reporter configuration [#2465](https://github.com/Codeception/CodeceptJS/issues/2465) by **[trinhpham](https://github.com/trinhpham)** ## 2.6.6 * Puppeteer 4.0 support. Important: MockRequest helper won't work with Puppeter > 3.3 * Added `xFeature` and `Feature.skip` to skip all tests in a suite. By **[Georgegriff](https://github.com/Georgegriff)** -* **[Appium]** Fixed [#2428](https://github.com/codeceptjs/CodeceptJS/issues/2428) Android native locator support by **[idxn](https://github.com/idxn)** +* **[Appium]** Fixed [#2428](https://github.com/Codeception/CodeceptJS/issues/2428) Android native locator support by **[idxn](https://github.com/idxn)** * **[WebDriver]** Fixed `waitNumberOfVisibleElements` to actually filter visible elements. By **[ilangv](https://github.com/ilangv)** -* **[Puppeteer]** Fixed handling error which is not an Error object. Fixes `cannot read property indexOf of undefined` error. Fix [#2436](https://github.com/codeceptjs/CodeceptJS/issues/2436) by **[Georgegriff](https://github.com/Georgegriff)** +* **[Puppeteer]** Fixed handling error which is not an Error object. Fixes `cannot read property indexOf of undefined` error. Fix [#2436](https://github.com/Codeception/CodeceptJS/issues/2436) by **[Georgegriff](https://github.com/Georgegriff)** * **[Puppeteer]** Print error on page crash by **[Georgegriff](https://github.com/Georgegriff)** ## 2.6.5 -* Added `test.skipped` event to run-workers, fixing allure reports with skipped tests in workers [#2391](https://github.com/codeceptjs/CodeceptJS/issues/2391). Fix [#2387](https://github.com/codeceptjs/CodeceptJS/issues/2387) by **[koushikmohan1996](https://github.com/koushikmohan1996)** -* **[Playwright]** Fixed calling `waitFor*` methods with custom locators [#2314](https://github.com/codeceptjs/CodeceptJS/issues/2314). Fix [#2389](https://github.com/codeceptjs/CodeceptJS/issues/2389) by **[Georgegriff](https://github.com/Georgegriff)** +* Added `test.skipped` event to run-workers, fixing allure reports with skipped tests in workers [#2391](https://github.com/Codeception/CodeceptJS/issues/2391). Fix [#2387](https://github.com/Codeception/CodeceptJS/issues/2387) by **[koushikmohan1996](https://github.com/koushikmohan1996)** +* **[Playwright]** Fixed calling `waitFor*` methods with custom locators [#2314](https://github.com/Codeception/CodeceptJS/issues/2314). Fix [#2389](https://github.com/Codeception/CodeceptJS/issues/2389) by **[Georgegriff](https://github.com/Georgegriff)** ## 2.6.4 @@ -36,8 +36,8 @@ layout: Section ## 2.6.3 -* [stepByStepReport plugin] Fixed when using plugin with BeforeSuite. Fixes [#2337](https://github.com/codeceptjs/CodeceptJS/issues/2337) by **[mirao](https://github.com/mirao)** -* [allure plugin] Fixed reporting of tests skipped by failure in before hook. Refer to [#2349](https://github.com/codeceptjs/CodeceptJS/issues/2349) & [#2354](https://github.com/codeceptjs/CodeceptJS/issues/2354). Fix by **[koushikmohan1996](https://github.com/koushikmohan1996)** +* [stepByStepReport plugin] Fixed when using plugin with BeforeSuite. Fixes [#2337](https://github.com/Codeception/CodeceptJS/issues/2337) by **[mirao](https://github.com/mirao)** +* [allure plugin] Fixed reporting of tests skipped by failure in before hook. Refer to [#2349](https://github.com/Codeception/CodeceptJS/issues/2349) & [#2354](https://github.com/Codeception/CodeceptJS/issues/2354). Fix by **[koushikmohan1996](https://github.com/koushikmohan1996)** ## 2.6.2 @@ -50,14 +50,14 @@ layout: Section * **[WebDriver]** Fixed `waitForEnabled` fix for webdriver 6. Fix by **[dsharapkou](https://github.com/dsharapkou)** * Workers: Fixed negative failure result if use scenario with the same names. Fix by **[Vorobeyko](https://github.com/Vorobeyko)** * **[MockRequest]** Updated documentation to match new helper version -* Fixed: skipped tests are not reported if a suite failed in `before`. Refer [#2349](https://github.com/codeceptjs/CodeceptJS/issues/2349) & [#2354](https://github.com/codeceptjs/CodeceptJS/issues/2354). Fix by **[koushikmohan1996](https://github.com/koushikmohan1996)** +* Fixed: skipped tests are not reported if a suite failed in `before`. Refer [#2349](https://github.com/Codeception/CodeceptJS/issues/2349) & [#2354](https://github.com/Codeception/CodeceptJS/issues/2354). Fix by **[koushikmohan1996](https://github.com/koushikmohan1996)** ## 2.6.1 * [screenshotOnFail plugin] Fixed saving screenshot of active session. -* [screenshotOnFail plugin] Fix issue [#2301](https://github.com/codeceptjs/CodeceptJS/issues/2301) when having the flag `uniqueScreenshotNames`=true results in `undefined` in screenshot file name by **[PeterNgTr](https://github.com/PeterNgTr)** +* [screenshotOnFail plugin] Fix issue [#2301](https://github.com/Codeception/CodeceptJS/issues/2301) when having the flag `uniqueScreenshotNames`=true results in `undefined` in screenshot file name by **[PeterNgTr](https://github.com/PeterNgTr)** * **[WebDriver]** Fixed `waitForElement` not applying the optional second argument to override the default timeout in webdriverio 6. Fix by **[Mooksc](https://github.com/Mooksc)** -* **[WebDriver]** Updated `waitUntil` method which is used by all of the wait* functions. This updates the `waitForElement` by the same convention used to update `waitForVisible` and `waitInUrl` to be compatible with both WebDriverIO v5 & v6. See [#2313](https://github.com/codeceptjs/CodeceptJS/issues/2313) by **[Mooksc](https://github.com/Mooksc)** +* **[WebDriver]** Updated `waitUntil` method which is used by all of the wait* functions. This updates the `waitForElement` by the same convention used to update `waitForVisible` and `waitInUrl` to be compatible with both WebDriverIO v5 & v6. See [#2313](https://github.com/Codeception/CodeceptJS/issues/2313) by **[Mooksc](https://github.com/Mooksc)** ## 2.6.0 @@ -82,7 +82,7 @@ I.executeScript(({x, y}) => x + y, {x, y}); * `clickLink` - deprecated * `waitForClickable` - deprecated * `forceClick` - added - * Added support for custom locators. See [#2277](https://github.com/codeceptjs/CodeceptJS/issues/2277) + * Added support for custom locators. See [#2277](https://github.com/Codeception/CodeceptJS/issues/2277) * Introduced [device emulation](/playwright/#device-emulation): * globally via `emulate` config option * per session @@ -108,20 +108,20 @@ I.click({ shadow: ['my-app', 'recipe-hello', 'button'] }); * added `mockServer` method to use flexible PollyJS API to define mocks * fixed stale browser screen in record mode. * **[Playwright]** Added support on for `screenshotOnFail` plugin by **[amonkc](https://github.com/amonkc)** -* Gherkin improvement: setting different tags per examples. See [#2208](https://github.com/codeceptjs/CodeceptJS/issues/2208) by **[acuper](https://github.com/acuper)** -* **[TestCafe]** Updated `click` to take first visible element. Fixes [#2226](https://github.com/codeceptjs/CodeceptJS/issues/2226) by **[theTainted](https://github.com/theTainted)** -* [Puppeteer][WebDriver] Updated `waitForClickable` method to check for element overlapping. See [#2261](https://github.com/codeceptjs/CodeceptJS/issues/2261) by **[PiQx](https://github.com/PiQx)** +* Gherkin improvement: setting different tags per examples. See [#2208](https://github.com/Codeception/CodeceptJS/issues/2208) by **[acuper](https://github.com/acuper)** +* **[TestCafe]** Updated `click` to take first visible element. Fixes [#2226](https://github.com/Codeception/CodeceptJS/issues/2226) by **[theTainted](https://github.com/theTainted)** +* [Puppeteer][WebDriver] Updated `waitForClickable` method to check for element overlapping. See [#2261](https://github.com/Codeception/CodeceptJS/issues/2261) by **[PiQx](https://github.com/PiQx)** * **[Puppeteer]** Dropped `puppeteer-firefox` support, as Puppeteer supports Firefox natively. -* **[REST]** Rrespect Content-Type header. See [#2262](https://github.com/codeceptjs/CodeceptJS/issues/2262) by **[pmarshall-legacy](https://github.com/pmarshall-legacy)** -* [allure plugin] Fixes BeforeSuite failures in allure reports. See [#2248](https://github.com/codeceptjs/CodeceptJS/issues/2248) by **[Georgegriff](https://github.com/Georgegriff)** -* [WebDriver][Puppeteer][Playwright] A screenshot of for an active session is saved in multi-session mode. See [#2253](https://github.com/codeceptjs/CodeceptJS/issues/2253) by **[ChexWarrior](https://github.com/ChexWarrior)** +* **[REST]** Rrespect Content-Type header. See [#2262](https://github.com/Codeception/CodeceptJS/issues/2262) by **[pmarshall-legacy](https://github.com/pmarshall-legacy)** +* [allure plugin] Fixes BeforeSuite failures in allure reports. See [#2248](https://github.com/Codeception/CodeceptJS/issues/2248) by **[Georgegriff](https://github.com/Georgegriff)** +* [WebDriver][Puppeteer][Playwright] A screenshot of for an active session is saved in multi-session mode. See [#2253](https://github.com/Codeception/CodeceptJS/issues/2253) by **[ChexWarrior](https://github.com/ChexWarrior)** * Fixed `--profile` option by **[pablopaul](https://github.com/pablopaul)**. Profile value to be passed into `run-multiple` and `run-workers`: ``` npx codecept run-workers 2 --profile firefox ``` -Value is available at `process.env.profile` (previously `process.profile`). See [#2302](https://github.com/codeceptjs/CodeceptJS/issues/2302). Fixes [#1968](https://github.com/codeceptjs/CodeceptJS/issues/1968) [#1315](https://github.com/codeceptjs/CodeceptJS/issues/1315) +Value is available at `process.env.profile` (previously `process.profile`). See [#2302](https://github.com/Codeception/CodeceptJS/issues/2302). Fixes [#1968](https://github.com/Codeception/CodeceptJS/issues/1968) [#1315](https://github.com/Codeception/CodeceptJS/issues/1315) * [commentStep Plugin introduced](/plugins#commentstep). Allows to annotate logical parts of a test: @@ -142,17 +142,17 @@ I.see('You are logged out'); > [Playwright](https://github.com/microsoft/playwright/) is an alternative to Puppeteer which works very similarly to it but adds cross-browser support with Firefox and Webkit. Until v1.0 Playwright API is not stable but we introduce it to CodeceptJS so you could try it. -* **[Puppeteer]** Fixed basic auth support when running in multiple sessions. See [#2178](https://github.com/codeceptjs/CodeceptJS/issues/2178) by **[ian-bartholomew](https://github.com/ian-bartholomew)** -* **[Puppeteer]** Fixed `waitForText` when there is no `body` element on page (redirect). See [#2181](https://github.com/codeceptjs/CodeceptJS/issues/2181) by **[Vorobeyko](https://github.com/Vorobeyko)** -* [Selenoid plugin] Fixed overriding current capabilities by adding deepMerge. Fixes [#2183](https://github.com/codeceptjs/CodeceptJS/issues/2183) by **[koushikmohan1996](https://github.com/koushikmohan1996)** +* **[Puppeteer]** Fixed basic auth support when running in multiple sessions. See [#2178](https://github.com/Codeception/CodeceptJS/issues/2178) by **[ian-bartholomew](https://github.com/ian-bartholomew)** +* **[Puppeteer]** Fixed `waitForText` when there is no `body` element on page (redirect). See [#2181](https://github.com/Codeception/CodeceptJS/issues/2181) by **[Vorobeyko](https://github.com/Vorobeyko)** +* [Selenoid plugin] Fixed overriding current capabilities by adding deepMerge. Fixes [#2183](https://github.com/Codeception/CodeceptJS/issues/2183) by **[koushikmohan1996](https://github.com/koushikmohan1996)** * Added types for `Scenario.todo` by **[Vorobeyko](https://github.com/Vorobeyko)** * Added types for Mocha by **[Vorobeyko](https://github.com/Vorobeyko)**. Fixed typing conflicts with Jest * **[FileSystem]** Added methods by **[nitschSB](https://github.com/nitschSB)** * `waitForFile` * `seeFileContentsEqualReferenceFile` -* Added `--colors` option to `run` and `run-multiple` so you force colored output in dockerized environment. See [#2189](https://github.com/codeceptjs/CodeceptJS/issues/2189) by **[mirao](https://github.com/mirao)** -* **[WebDriver]** Added `type` command to enter value without focusing on a field. See [#2198](https://github.com/codeceptjs/CodeceptJS/issues/2198) by **[xMutaGenx](https://github.com/xMutaGenx)** -* Fixed `codeceptjs gt` command to respect config pattern for tests. See [#2200](https://github.com/codeceptjs/CodeceptJS/issues/2200) and [#2204](https://github.com/codeceptjs/CodeceptJS/issues/2204) by **[matheo](https://github.com/matheo)** +* Added `--colors` option to `run` and `run-multiple` so you force colored output in dockerized environment. See [#2189](https://github.com/Codeception/CodeceptJS/issues/2189) by **[mirao](https://github.com/mirao)** +* **[WebDriver]** Added `type` command to enter value without focusing on a field. See [#2198](https://github.com/Codeception/CodeceptJS/issues/2198) by **[xMutaGenx](https://github.com/xMutaGenx)** +* Fixed `codeceptjs gt` command to respect config pattern for tests. See [#2200](https://github.com/Codeception/CodeceptJS/issues/2200) and [#2204](https://github.com/Codeception/CodeceptJS/issues/2204) by **[matheo](https://github.com/matheo)** ## 2.4.3 @@ -175,8 +175,8 @@ I.see('You are logged out'); * 📢 Please help us translate context methods to your language! See [italian translation](https://github.com/codeceptjs/CodeceptJS/blob/master/translations/it-IT.js#L3) as an example and send [patches to vocabularies](https://github.com/codeceptjs/CodeceptJS/tree/master/translations). * allurePlugin: Added `say` comments to allure reports by **[PeterNgTr](https://github.com/PeterNgTr)**. * Fixed no custom output folder created when executed with run-worker. Fix by **[PeterNgTr](https://github.com/PeterNgTr)** -* **[Puppeteer]** Fixed error description for context element not found. See [#2065](https://github.com/codeceptjs/CodeceptJS/issues/2065). Fix by **[PeterNgTr](https://github.com/PeterNgTr)** -* **[WebDriver]** Fixed `waitForClickable` to wait for exact number of seconds by **[mirao](https://github.com/mirao)**. Resolves [#2166](https://github.com/codeceptjs/CodeceptJS/issues/2166) +* **[Puppeteer]** Fixed error description for context element not found. See [#2065](https://github.com/Codeception/CodeceptJS/issues/2065). Fix by **[PeterNgTr](https://github.com/PeterNgTr)** +* **[WebDriver]** Fixed `waitForClickable` to wait for exact number of seconds by **[mirao](https://github.com/mirao)**. Resolves [#2166](https://github.com/Codeception/CodeceptJS/issues/2166) * Fixed setting `compilerOptions` in `jsconfig.json` file on init by **[PeterNgTr](https://github.com/PeterNgTr)** * **[Filesystem]** Added method by **[nitschSB](https://github.com/nitschSB)** * `seeFileContentsEqualReferenceFile` @@ -196,20 +196,20 @@ I.see('You are logged out'); * removed question on "steps file", create it by default. * Added [pauseOnFail plugin](/plugins/#pauseonfail). *Sponsored by Paul Vincent Beigang and his book "[Practical End 2 End Testing with CodeceptJS](https://leanpub.com/codeceptjs/)"*. * Added [`run-rerun` command](/commands/#run-rerun) to run tests multiple times to detect and fix flaky tests. By **[Ilrilan](https://github.com/Ilrilan)** and **[Vorobeyko](https://github.com/Vorobeyko)**. -* Added [`Scenario.todo()` to declare tests as pending](/basics#todotest). See [#2100](https://github.com/codeceptjs/CodeceptJS/issues/2100) by **[Vorobeyko](https://github.com/Vorobeyko)** -* Added support for absolute path for `output` dir. See [#2049](https://github.com/codeceptjs/CodeceptJS/issues/2049) by **[elukoyanov](https://github.com/elukoyanov)** -* Fixed error in `npx codecept init` caused by calling `console.print`. See [#2071](https://github.com/codeceptjs/CodeceptJS/issues/2071) by **[Atinux](https://github.com/Atinux)**. +* Added [`Scenario.todo()` to declare tests as pending](/basics#todotest). See [#2100](https://github.com/Codeception/CodeceptJS/issues/2100) by **[Vorobeyko](https://github.com/Vorobeyko)** +* Added support for absolute path for `output` dir. See [#2049](https://github.com/Codeception/CodeceptJS/issues/2049) by **[elukoyanov](https://github.com/elukoyanov)** +* Fixed error in `npx codecept init` caused by calling `console.print`. See [#2071](https://github.com/Codeception/CodeceptJS/issues/2071) by **[Atinux](https://github.com/Atinux)**. * **[Filesystem]** Methods added by **[aefluke](https://github.com/aefluke)**: * `seeFileNameMatching` * `grabFileNames` * **[Puppeteer]** Fixed grabbing attributes with hyphen by **[Holorium](https://github.com/Holorium)** * **[TestCafe]** Fixed `grabAttributeFrom` method by **[elukoyanov](https://github.com/elukoyanov)** * **[MockRequest]** Added support for [Polly config options](https://netflix.github.io/pollyjs/#/configuration?id=configuration) by **[ecrmnn](https://github.com/ecrmnn)** -* **[TestCafe]** Fixes exiting with zero code on failure. Fixed [#2090](https://github.com/codeceptjs/CodeceptJS/issues/2090) with [#2106](https://github.com/codeceptjs/CodeceptJS/issues/2106) by **[koushikmohan1996](https://github.com/koushikmohan1996)** -* [WebDriver][Puppeteer] Added basicAuth support via config. Example: `basicAuth: {username: 'username', password: 'password'}`. See [#1962](https://github.com/codeceptjs/CodeceptJS/issues/1962) by **[PeterNgTr](https://github.com/PeterNgTr)** +* **[TestCafe]** Fixes exiting with zero code on failure. Fixed [#2090](https://github.com/Codeception/CodeceptJS/issues/2090) with [#2106](https://github.com/Codeception/CodeceptJS/issues/2106) by **[koushikmohan1996](https://github.com/koushikmohan1996)** +* [WebDriver][Puppeteer] Added basicAuth support via config. Example: `basicAuth: {username: 'username', password: 'password'}`. See [#1962](https://github.com/Codeception/CodeceptJS/issues/1962) by **[PeterNgTr](https://github.com/PeterNgTr)** * [WebDriver][Appium] Added `scrollIntoView` by **[pablopaul](https://github.com/pablopaul)** -* Fixed [#2118](https://github.com/codeceptjs/CodeceptJS/issues/2118): No error stack trace for syntax error by **[senthillkumar](https://github.com/senthillkumar)** -* Added `parse()` method to data table inside Cucumber tests. Use it to obtain rows and hashes for test data. See [#2082](https://github.com/codeceptjs/CodeceptJS/issues/2082) by **[Sraime](https://github.com/Sraime)** +* Fixed [#2118](https://github.com/Codeception/CodeceptJS/issues/2118): No error stack trace for syntax error by **[senthillkumar](https://github.com/senthillkumar)** +* Added `parse()` method to data table inside Cucumber tests. Use it to obtain rows and hashes for test data. See [#2082](https://github.com/Codeception/CodeceptJS/issues/2082) by **[Sraime](https://github.com/Sraime)** ## 2.3.6 @@ -228,8 +228,8 @@ exports.config = { * **[TestCafe]** Added support for remote connection. By **[jvdieten](https://github.com/jvdieten)** * **[Puppeteer]** Fixed `waitForText` XPath context now works correctly. By **[Heavik](https://github.com/Heavik)** * **[TestCafe]** Fixed `clearField` clear field now awaits TestCafe's promise. By **[orihomie](https://github.com/orihomie)** -* **[Puppeteer]** Fixed fails when executing localStorage on services pages. See [#2026](https://github.com/codeceptjs/CodeceptJS/issues/2026) -* Fixed empty tags in test name. See [#2038](https://github.com/codeceptjs/CodeceptJS/issues/2038) +* **[Puppeteer]** Fixed fails when executing localStorage on services pages. See [#2026](https://github.com/Codeception/CodeceptJS/issues/2026) +* Fixed empty tags in test name. See [#2038](https://github.com/Codeception/CodeceptJS/issues/2038) ## 2.3.5 @@ -238,7 +238,7 @@ exports.config = { ## 2.3.4 * Fixed installation error "Cannot find module '@babel/runtime/helpers/interopRequireDefault'". The issue came from `parse-function` package. Fixed by **[pablopaul](https://github.com/pablopaul)**. -* **[Puppeteer]** Fixed switching to iframe without an ID by **[johnyb](https://github.com/johnyb)**. See [#1974](https://github.com/codeceptjs/CodeceptJS/issues/1974) +* **[Puppeteer]** Fixed switching to iframe without an ID by **[johnyb](https://github.com/johnyb)**. See [#1974](https://github.com/Codeception/CodeceptJS/issues/1974) * Added `--profile` option to `run-workers` by **[orihomie](https://github.com/orihomie)** * Added a tag definition to `FeatureConfig` and `ScenarioConfig` by **[sseliverstov](https://github.com/sseliverstov)** @@ -257,36 +257,36 @@ I.click('$register_button'); Changed pressKey method to resolve issues and extend functionality. * Did not properly recognize 'Meta' (or 'Command') as modifier key. * Right modifier keys did not work in WebDriver using JsonWireProtocol. - * 'Shift' + combination would not reflect actual keyboard behavior. + * 'Shift' + 'key' combination would not reflect actual keyboard behavior. * Respect sequence with multiple modifier keys passed to pressKey. * Added support to automatic change operation modifier key based on operating system. * [Puppeteer][WebDriver] Added `pressKeyUp` and `pressKeyDown` to press and release modifier keys like `Control` or `Shift`. By **[martomo](https://github.com/martomo)**. * [Puppeteer][WebDriver] Added `grabElementBoundingRect` by **[PeterNgTr](https://github.com/PeterNgTr)**. -* **[Puppeteer]** Fixed speed degradation introduced in [#1306](https://github.com/codeceptjs/CodeceptJS/issues/1306) with accessibility locators support. See [#1953](https://github.com/codeceptjs/CodeceptJS/issues/1953). +* **[Puppeteer]** Fixed speed degradation introduced in [#1306](https://github.com/Codeception/CodeceptJS/issues/1306) with accessibility locators support. See [#1953](https://github.com/Codeception/CodeceptJS/issues/1953). * Added `Config.addHook` to add a function that will update configuration on load. * Started [`@codeceptjs/configure`](https://github.com/codecept-js/configure) package with a collection of common configuration patterns. -* **[TestCafe]** port's management removed (left on TestCafe itself) by **[orihomie](https://github.com/orihomie)**. Fixes [#1934](https://github.com/codeceptjs/CodeceptJS/issues/1934). -* **[REST]** Headers are no more declared as singleton variable. Fixes [#1959](https://github.com/codeceptjs/CodeceptJS/issues/1959) +* **[TestCafe]** port's management removed (left on TestCafe itself) by **[orihomie](https://github.com/orihomie)**. Fixes [#1934](https://github.com/Codeception/CodeceptJS/issues/1934). +* **[REST]** Headers are no more declared as singleton variable. Fixes [#1959](https://github.com/Codeception/CodeceptJS/issues/1959) * Updated Docker image to include run tests in workers with `NUMBER_OF_WORKERS` env variable. By **[PeterNgTr](https://github.com/PeterNgTr)**. ## 2.3.2 * **[Puppeteer]** Fixed Puppeteer 1.20 support by **[davertmik](https://github.com/davertmik)** -* Fixed `run-workers` to run with complex configs. See [#1887](https://github.com/codeceptjs/CodeceptJS/issues/1887) by **[nitschSB](https://github.com/nitschSB)** +* Fixed `run-workers` to run with complex configs. See [#1887](https://github.com/Codeception/CodeceptJS/issues/1887) by **[nitschSB](https://github.com/nitschSB)** * Added `--suites` option to `run-workers` to split suites by workers (tests of the same suite goes to teh same worker). Thanks **[nitschSB](https://github.com/nitschSB)**. * Added a guide on [Email Testing](https://codecept.io/email). * **[retryFailedStepPlugin]** Improved to ignore wait* steps and others. Also added option to ignore this plugin per test bases. See [updated documentation](https://codecept.io/plugins#retryfailedstep). By **[davertmik](https://github.com/davertmik)** -* Fixed using PageObjects as classes by **[Vorobeyko](https://github.com/Vorobeyko)**. See [#1896](https://github.com/codeceptjs/CodeceptJS/issues/1896) -* **[WebDriver]** Fixed opening more than one tab. See [#1875](https://github.com/codeceptjs/CodeceptJS/issues/1875) by **[jplegoff](https://github.com/jplegoff)**. Fixes [#1874](https://github.com/codeceptjs/CodeceptJS/issues/1874) -* Fixed [#1891](https://github.com/codeceptjs/CodeceptJS/issues/1891) when `I.retry()` affected retries of next steps. By **[davertmik](https://github.com/davertmik)** +* Fixed using PageObjects as classes by **[Vorobeyko](https://github.com/Vorobeyko)**. See [#1896](https://github.com/Codeception/CodeceptJS/issues/1896) +* **[WebDriver]** Fixed opening more than one tab. See [#1875](https://github.com/Codeception/CodeceptJS/issues/1875) by **[jplegoff](https://github.com/jplegoff)**. Fixes [#1874](https://github.com/Codeception/CodeceptJS/issues/1874) +* Fixed [#1891](https://github.com/Codeception/CodeceptJS/issues/1891) when `I.retry()` affected retries of next steps. By **[davertmik](https://github.com/davertmik)** ## 2.3.1 * **[MockRequest]** Polly helper was renamed to MockRequest. * [MockRequest][WebDriver] [Mocking requests](https://codecept.io/webdriver#mocking-requests) is now available in WebDriver. Thanks **[radhey1851](https://github.com/radhey1851)** -* **[Puppeteer]** Ensure configured user agent and/or window size is applied to all pages. See [#1862](https://github.com/codeceptjs/CodeceptJS/issues/1862) by **[martomo](https://github.com/martomo)** -* Improve handling of xpath locators with round brackets by **[nitschSB](https://github.com/nitschSB)**. See [#1870](https://github.com/codeceptjs/CodeceptJS/issues/1870) -* Use WebDriver capabilities config in wdio plugin. [#1869](https://github.com/codeceptjs/CodeceptJS/issues/1869) by **[quekshuy](https://github.com/quekshuy)** +* **[Puppeteer]** Ensure configured user agent and/or window size is applied to all pages. See [#1862](https://github.com/Codeception/CodeceptJS/issues/1862) by **[martomo](https://github.com/martomo)** +* Improve handling of xpath locators with round brackets by **[nitschSB](https://github.com/nitschSB)**. See [#1870](https://github.com/Codeception/CodeceptJS/issues/1870) +* Use WebDriver capabilities config in wdio plugin. [#1869](https://github.com/Codeception/CodeceptJS/issues/1869) by **[quekshuy](https://github.com/quekshuy)** ## 2.3.0 @@ -300,25 +300,25 @@ npx codeceptjs run-workers 3 * [GraphQL][GraphQLDataFactory] **Helpers for data management over GraphQL** APIs added. By **[radhey1851](https://github.com/radhey1851)**. * Learn how to [use GraphQL helper](https://codecept.io/data#graphql) to access GarphQL API * And how to combine it with [GraphQLDataFactory](https://codecept.io/data#graphql-data-factory) to generate and persist test data. -* **Updated to use Mocha 6**. See [#1802](https://github.com/codeceptjs/CodeceptJS/issues/1802) by **[elukoyanov](https://github.com/elukoyanov)** -* Added `dry-run` command to print steps of test scenarios without running them. Fails to execute scenarios with `grab*` methods or custom code. See [#1825](https://github.com/codeceptjs/CodeceptJS/issues/1825) for more details. +* **Updated to use Mocha 6**. See [#1802](https://github.com/Codeception/CodeceptJS/issues/1802) by **[elukoyanov](https://github.com/elukoyanov)** +* Added `dry-run` command to print steps of test scenarios without running them. Fails to execute scenarios with `grab*` methods or custom code. See [#1825](https://github.com/Codeception/CodeceptJS/issues/1825) for more details. ``` npx codeceptjs dry-run ``` -* **[Appium]** Optimization when clicking, searching for fields by accessibility id. See [#1777](https://github.com/codeceptjs/CodeceptJS/issues/1777) by **[gagandeepsingh26](https://github.com/gagandeepsingh26)** +* **[Appium]** Optimization when clicking, searching for fields by accessibility id. See [#1777](https://github.com/Codeception/CodeceptJS/issues/1777) by **[gagandeepsingh26](https://github.com/gagandeepsingh26)** * **[TestCafe]** Fixed `switchTo` by **[KadoBOT](https://github.com/KadoBOT)** * **[WebDriver]** Added geolocation actions by **[PeterNgTr](https://github.com/PeterNgTr)** * `grabGeoLocation()` * `setGeoLocation()` -* **[Polly]** Check typeof arguments for mock requests by **[VikalpP](https://github.com/VikalpP)**. Fixes [#1815](https://github.com/codeceptjs/CodeceptJS/issues/1815) +* **[Polly]** Check typeof arguments for mock requests by **[VikalpP](https://github.com/VikalpP)**. Fixes [#1815](https://github.com/Codeception/CodeceptJS/issues/1815) * CLI improvements by **[jamesgeorge007](https://github.com/jamesgeorge007)** * `codeceptjs` command prints list of all available commands * added `codeceptjs -V` flag to print version information * warns on unknown command * Added TypeScript files support to `run-multiple` by **[z4o4z](https://github.com/z4o4z)** -* Fixed element position bug in locator builder. See [#1829](https://github.com/codeceptjs/CodeceptJS/issues/1829) by **[AnotherAnkor](https://github.com/AnotherAnkor)** +* Fixed element position bug in locator builder. See [#1829](https://github.com/Codeception/CodeceptJS/issues/1829) by **[AnotherAnkor](https://github.com/AnotherAnkor)** * Various TypeScript typings updates by **[elukoyanov](https://github.com/elukoyanov)** and **[Vorobeyko](https://github.com/Vorobeyko)** * Added `event.step.comment` event for all comment steps like `I.say` or gherking steps. @@ -335,21 +335,21 @@ npx codeceptjs dry-run * `scrollTo` * `switchTo` * Intellisense improvements. Renamed `tsconfig.json` to `jsconfig.json` on init. Fixed autocompletion for Visual Studio Code. -* **[Polly]** Take configuration values from Puppeteer. Fix [#1766](https://github.com/codeceptjs/CodeceptJS/issues/1766) by **[VikalpP](https://github.com/VikalpP)** -* **[Polly]** Add preconditions to check for puppeteer page availability by **[VikalpP](https://github.com/VikalpP)**. Fixes [#1767](https://github.com/codeceptjs/CodeceptJS/issues/1767) -* **[WebDriver]** Use filename for `uploadFile` by **[VikalpP](https://github.com/VikalpP)**. See [#1797](https://github.com/codeceptjs/CodeceptJS/issues/1797) +* **[Polly]** Take configuration values from Puppeteer. Fix [#1766](https://github.com/Codeception/CodeceptJS/issues/1766) by **[VikalpP](https://github.com/VikalpP)** +* **[Polly]** Add preconditions to check for puppeteer page availability by **[VikalpP](https://github.com/VikalpP)**. Fixes [#1767](https://github.com/Codeception/CodeceptJS/issues/1767) +* **[WebDriver]** Use filename for `uploadFile` by **[VikalpP](https://github.com/VikalpP)**. See [#1797](https://github.com/Codeception/CodeceptJS/issues/1797) * **[Puppeteer]** Configure speed of input with `pressKeyDelay` option. By **[hubidu](https://github.com/hubidu)** * Fixed recursive loading of support objects by **[davertmik](https://github.com/davertmik)**. -* Fixed support object definitions in steps.d.ts by **[johnyb](https://github.com/johnyb)**. Fixes [#1795](https://github.com/codeceptjs/CodeceptJS/issues/1795) +* Fixed support object definitions in steps.d.ts by **[johnyb](https://github.com/johnyb)**. Fixes [#1795](https://github.com/Codeception/CodeceptJS/issues/1795) * Fixed `Data().Scenario().injectDependencies()` is not a function by **[andrerleao](https://github.com/andrerleao)** -* Fixed crash when using xScenario & Scenario.skip with tag by **[VikalpP](https://github.com/VikalpP)**. Fixes [#1751](https://github.com/codeceptjs/CodeceptJS/issues/1751) -* Dynamic configuration of helpers can be performed with async function. See [#1786](https://github.com/codeceptjs/CodeceptJS/issues/1786) by **[cviejo](https://github.com/cviejo)** +* Fixed crash when using xScenario & Scenario.skip with tag by **[VikalpP](https://github.com/VikalpP)**. Fixes [#1751](https://github.com/Codeception/CodeceptJS/issues/1751) +* Dynamic configuration of helpers can be performed with async function. See [#1786](https://github.com/Codeception/CodeceptJS/issues/1786) by **[cviejo](https://github.com/cviejo)** * Added TS definitions for internal objects by **[Vorobeyko](https://github.com/Vorobeyko)** * BDD improvements: * Fix for snippets command with a .feature file that has special characters by **[asselin](https://github.com/asselin)** - * Fix `--path` option on `gherkin:snippets` command by **[asselin](https://github.com/asselin)**. See [#1790](https://github.com/codeceptjs/CodeceptJS/issues/1790) - * Added `--feature` option to `gherkin:snippets` to enable creating snippets for a subset of .feature files. See [#1803](https://github.com/codeceptjs/CodeceptJS/issues/1803) by **[asselin](https://github.com/asselin)**. -* Fixed: dynamic configs not reset after test. Fixes [#1776](https://github.com/codeceptjs/CodeceptJS/issues/1776) by **[cviejo](https://github.com/cviejo)**. + * Fix `--path` option on `gherkin:snippets` command by **[asselin](https://github.com/asselin)**. See [#1790](https://github.com/Codeception/CodeceptJS/issues/1790) + * Added `--feature` option to `gherkin:snippets` to enable creating snippets for a subset of .feature files. See [#1803](https://github.com/Codeception/CodeceptJS/issues/1803) by **[asselin](https://github.com/asselin)**. +* Fixed: dynamic configs not reset after test. Fixes [#1776](https://github.com/Codeception/CodeceptJS/issues/1776) by **[cviejo](https://github.com/cviejo)**. ## 2.2.0 @@ -362,24 +362,24 @@ I.mockRequest('GET', '/api/users', 200); I.mockRequest('POST', '/users', { user: { name: 'fake' }}); ``` -* **EXPERIMENTAL** **[Puppeteer]** [Firefox support](https://codecept.io/helpers/Puppeteer-firefox) introduced by **[ngadiyak](https://github.com/ngadiyak)**, see [#1740](https://github.com/codeceptjs/CodeceptJS/issues/1740) -* **[stepByStepReportPlugin]** use md5 hash to generate reports into unique folder. Fix [#1744](https://github.com/codeceptjs/CodeceptJS/issues/1744) by **[chimurai](https://github.com/chimurai)** +* **EXPERIMENTAL** **[Puppeteer]** [Firefox support](https://codecept.io/helpers/Puppeteer-firefox) introduced by **[ngadiyak](https://github.com/ngadiyak)**, see [#1740](https://github.com/Codeception/CodeceptJS/issues/1740) +* **[stepByStepReportPlugin]** use md5 hash to generate reports into unique folder. Fix [#1744](https://github.com/Codeception/CodeceptJS/issues/1744) by **[chimurai](https://github.com/chimurai)** * Interactive pause improvements: * print result of `grab` commands * print message for successful assertions * `run-multiple` (parallel execution) improvements: - * `bootstrapAll` must be called before creating chunks. [#1741](https://github.com/codeceptjs/CodeceptJS/issues/1741) by **[Vorobeyko](https://github.com/Vorobeyko)** - * Bugfix: If value in config has falsy value then multiple config does not overwrite original value. [#1756](https://github.com/codeceptjs/CodeceptJS/issues/1756) by **[LukoyanovE](https://github.com/LukoyanovE)** + * `bootstrapAll` must be called before creating chunks. [#1741](https://github.com/Codeception/CodeceptJS/issues/1741) by **[Vorobeyko](https://github.com/Vorobeyko)** + * Bugfix: If value in config has falsy value then multiple config does not overwrite original value. [#1756](https://github.com/Codeception/CodeceptJS/issues/1756) by **[LukoyanovE](https://github.com/LukoyanovE)** * Fixed hooks broken in 2.1.5 by **[Vorobeyko](https://github.com/Vorobeyko)** -* Fix references to support objects when using Dependency Injection. Fix by **[johnyb](https://github.com/johnyb)**. See [#1701](https://github.com/codeceptjs/CodeceptJS/issues/1701) -* Fix dynamic config applied for multiple helpers by **[VikalpP](https://github.com/VikalpP)** [#1743](https://github.com/codeceptjs/CodeceptJS/issues/1743) +* Fix references to support objects when using Dependency Injection. Fix by **[johnyb](https://github.com/johnyb)**. See [#1701](https://github.com/Codeception/CodeceptJS/issues/1701) +* Fix dynamic config applied for multiple helpers by **[VikalpP](https://github.com/VikalpP)** [#1743](https://github.com/Codeception/CodeceptJS/issues/1743) ## 2.1.5 * **EXPERIMENTAL** [Wix Detox support](https://github.com/codeceptjs/detox-helper) introduced as standalone helper. Provides a faster alternative to Appium for mobile testing. * Saving successful commands inside interactive pause into `_output/cli-history` file. By **[hubidu](https://github.com/hubidu)** -* Fixed hanging error handler inside scenario. See [#1721](https://github.com/codeceptjs/CodeceptJS/issues/1721) by **[haily-lgc](https://github.com/haily-lgc)**. +* Fixed hanging error handler inside scenario. See [#1721](https://github.com/Codeception/CodeceptJS/issues/1721) by **[haily-lgc](https://github.com/haily-lgc)**. * Fixed by **[Vorobeyko](https://github.com/Vorobeyko)**: tests did not fail when an exception was raised in async bootstrap. * **[WebDriver]** Added window control methods by **[emmonspired](https://github.com/emmonspired)** * `grabAllWindowHandles` returns all window handles @@ -541,7 +541,7 @@ Use it with `FileSystem` helper to test availability of a file: * [allure plugin] Add skipped tests to allure reports by **[Vorobeyko](https://github.com/Vorobeyko)** * Fixed `Logged Test name | [object Object]` when used Data().Scenario(). By **[Vorobeyko](https://github.com/Vorobeyko)** * Fixed Data().only.Scenario() to run for all datasets. By **[Vorobeyko](https://github.com/Vorobeyko)** -* **[WebDriver]** `attachFile` to work with hidden elements. Fixed in [#1460](https://github.com/codeceptjs/CodeceptJS/issues/1460) by **[tsuemura](https://github.com/tsuemura)** +* **[WebDriver]** `attachFile` to work with hidden elements. Fixed in [#1460](https://github.com/Codeception/CodeceptJS/issues/1460) by **[tsuemura](https://github.com/tsuemura)** @@ -610,7 +610,7 @@ Use it with `FileSystem` helper to test availability of a file: * **Using `codecept.conf.js` as default configuration format** * Fixed "enametoolong" error when saving screenshots for data driven tests by **[PeterNgTr](https://github.com/PeterNgTr)** * Updated NodeJS to 10 in Docker image -* **[Pupeteer]** Add support to use WSEndpoint. Allows to execute tests remotely. [See [#1350](https://github.com/codeceptjs/CodeceptJS/issues/1350)] by **[gabrielcaires](https://github.com/gabrielcaires)** (https://github.com/codeceptjs/CodeceptJS/pull/1350) +* **[Pupeteer]** Add support to use WSEndpoint. Allows to execute tests remotely. [See [#1350](https://github.com/Codeception/CodeceptJS/issues/1350)] by **[gabrielcaires](https://github.com/gabrielcaires)** (https://github.com/codeceptjs/CodeceptJS/pull/1350) * In interactive shell **[Enter]** goes to next step. Improvement by **[PeterNgTr](https://github.com/PeterNgTr)**. * `I.say` accepts second parameter as color to print colorful comments. Improvement by **[PeterNgTr](https://github.com/PeterNgTr)**. @@ -626,12 +626,12 @@ I.say('This is by default'); //cyan is used * **[Puppeteer]** `dragSlider` action added by **[PeterNgTr](https://github.com/PeterNgTr)** * **[Puppeteer]** Fixed opening browser in shell mode by **[allenhwkim](https://github.com/allenhwkim)** -* **[Puppeteer]** Fixed making screenshot on additional sessions by **[PeterNgTr](https://github.com/PeterNgTr)**. Fixes [#1266](https://github.com/codeceptjs/CodeceptJS/issues/1266) +* **[Puppeteer]** Fixed making screenshot on additional sessions by **[PeterNgTr](https://github.com/PeterNgTr)**. Fixes [#1266](https://github.com/Codeception/CodeceptJS/issues/1266) * Added `--invert` option to `run-multiple` command by **[LukoyanovE](https://github.com/LukoyanovE)** * Fixed steps in Allure reports by **[PeterNgTr](https://github.com/PeterNgTr)** * Add option `output` to customize output directory in [stepByStepReport plugin](https://codecept.io/plugins/#stepbystepreport). By **[fpsthirty](https://github.com/fpsthirty)** * Changed type definition of PageObjects to get auto completion by **[rhicu](https://github.com/rhicu)** -* Fixed steps output for async/arrow functions in CLI by **[LukoyanovE](https://github.com/LukoyanovE)**. See [#1329](https://github.com/codeceptjs/CodeceptJS/issues/1329) +* Fixed steps output for async/arrow functions in CLI by **[LukoyanovE](https://github.com/LukoyanovE)**. See [#1329](https://github.com/Codeception/CodeceptJS/issues/1329) ## 1.4.5 @@ -644,7 +644,7 @@ I.say('This is by default'); //cyan is used ``` * **[WebDriverIO]** Fix timeouts definition to be compatible with W3C drivers. By **[LukoyanovE](https://github.com/LukoyanovE)** -* Fixed: exception in Before block w/ Mocha causes test not to report failure. See [#1292](https://github.com/codeceptjs/CodeceptJS/issues/1292) by **[PeterNgTr](https://github.com/PeterNgTr)** +* Fixed: exception in Before block w/ Mocha causes test not to report failure. See [#1292](https://github.com/Codeception/CodeceptJS/issues/1292) by **[PeterNgTr](https://github.com/PeterNgTr)** * Command `run-parallel` now accepts `--override` flag. Thanks to **[ClemCB](https://github.com/ClemCB)** * Fixed Allure report with Before/BeforeSuite/After/AfterSuite steps. By **[PeterNgTr](https://github.com/PeterNgTr)** * Added `RUN_MULTIPLE` env variable to [Docker config](https://codecept.io/docker/). Allows to run tests in parallel inside a container. Thanks to **[PeterNgTr](https://github.com/PeterNgTr)** @@ -675,7 +675,7 @@ Scenario('update user profile', () => { * Fixed attaching Allure screenshot on exception. Fix by **[DevinWatson](https://github.com/DevinWatson)** * Improved type definitions for custom steps. By **[Akxe](https://github.com/Akxe)** -* Fixed setting `multiple.parallel.chunks` as environment variable in config. See [#1238](https://github.com/codeceptjs/CodeceptJS/issues/1238) by **[ngadiyak](https://github.com/ngadiyak)** +* Fixed setting `multiple.parallel.chunks` as environment variable in config. See [#1238](https://github.com/Codeception/CodeceptJS/issues/1238) by **[ngadiyak](https://github.com/ngadiyak)** ## 1.4.2 @@ -845,9 +845,9 @@ locate('//table') * [Dynamic configuration](https://codecept.io/advanced/#dynamic-configuration) to update helpers config per test or per suite. * Added `event.test.finished` which fires synchronously for both failed and passed tests. -* [WebDriverIO][Protractor][Nightmare][Puppeteer] Full page screenshots on failure disabled by default. See [issue[#1600](https://github.com/codeceptjs/CodeceptJS/issues/1600). You can enabled them with `fullPageScreenshots: true`, however they may work unstable in Selenium. +* [WebDriverIO][Protractor][Nightmare][Puppeteer] Full page screenshots on failure disabled by default. See [issue[#1600](https://github.com/Codeception/CodeceptJS/issues/1600). You can enabled them with `fullPageScreenshots: true`, however they may work unstable in Selenium. * `within` blocks can return values. See [updated documentation](https://codecept.io/basics/#within). -* Removed doublt call to `_init` in helpers. Fixes issue [#1036](https://github.com/codeceptjs/CodeceptJS/issues/1036) +* Removed doublt call to `_init` in helpers. Fixes issue [#1036](https://github.com/Codeception/CodeceptJS/issues/1036) * Added scenario and feature configuration via fluent API: ```js @@ -1111,7 +1111,7 @@ I.dontSee('Email Address'); ↑ This element can be located with `~foobar` in WebDriverIO and Appium helpers. Thanks to **[flyskywhy](https://github.com/flyskywhy)** * Allow providing arbitrary objects in config includes by **[rlewan](https://github.com/rlewan)** -* **[REST]** Prevent from mutating default headers by **[alexashley](https://github.com/alexashley)**. See [#789](https://github.com/codeceptjs/CodeceptJS/issues/789) +* **[REST]** Prevent from mutating default headers by **[alexashley](https://github.com/alexashley)**. See [#789](https://github.com/Codeception/CodeceptJS/issues/789) * **[REST]** Fixed sending empty helpers with `haveRequestHeaders` in `sendPostRequest`. By **[petrisorionel](https://github.com/petrisorionel)** * Fixed displaying undefined args in output by **[APshenkin](https://github.com/APshenkin)** * Fixed NaN instead of seconds in output by **[APshenkin](https://github.com/APshenkin)** @@ -1123,7 +1123,7 @@ I.dontSee('Email Address'); ## 1.0.3 * [WebDriverIO][Protractor][Nightmare] method `waitUntilExists` implemented by **[sabau](https://github.com/sabau)** -* Absolute path can be set for `output` dir by **[APshenkin](https://github.com/APshenkin)**. Fix [#571](https://github.com/codeceptjs/CodeceptJS/issues/571)* Data table rows can be ignored by using `xadd`. By **[APhenkin](https://github.com/APhenkin)** +* Absolute path can be set for `output` dir by **[APshenkin](https://github.com/APshenkin)**. Fix [#571](https://github.com/Codeception/CodeceptJS/issues/571)* Data table rows can be ignored by using `xadd`. By **[APhenkin](https://github.com/APhenkin)** * Added `Data(table).only.Scenario` to give ability to launch only Data tests. By **[APhenkin](https://github.com/APhenkin)** * Implemented `ElementNotFound` error by **[BorisOsipov](https://github.com/BorisOsipov)**. * Added TypeScript compiler / configs to check the JavaScript by **[KennyRules](https://github.com/KennyRules)** @@ -1136,11 +1136,11 @@ I.dontSee('Email Address'); * Introduced generators support in scenario hooks for `BeforeSuite`/`Before`/`AfterSuite`/`After` * **[ApiDataFactory]** Fixed loading helper; `requireg` package included. -* Fix [#485](https://github.com/codeceptjs/CodeceptJS/issues/485)`run-multiple`: the first browser-resolution combination was be used in all configurations +* Fix [#485](https://github.com/Codeception/CodeceptJS/issues/485)`run-multiple`: the first browser-resolution combination was be used in all configurations * Fixed unique test names: - * Fixed [#447](https://github.com/codeceptjs/CodeceptJS/issues/447) tests failed silently if they have the same name as other tests. + * Fixed [#447](https://github.com/Codeception/CodeceptJS/issues/447) tests failed silently if they have the same name as other tests. * Use uuid in screenshot names when `uniqueScreenshotNames: true` -* **[Protractor]** Fixed testing non-angular application. `amOutsideAngularApp` is executed before each step. Fixes [#458](https://github.com/codeceptjs/CodeceptJS/issues/458)* Added output for steps in hooks when they fail +* **[Protractor]** Fixed testing non-angular application. `amOutsideAngularApp` is executed before each step. Fixes [#458](https://github.com/Codeception/CodeceptJS/issues/458)* Added output for steps in hooks when they fail ## 1.0.1 @@ -1149,7 +1149,7 @@ I.dontSee('Email Address'); * Added [Mochawesome](http://codecept.io/helpers/Mochawesome/) helper * `addMochawesomeContext` method to add custom data to mochawesome reports * Fixed Mochawesome context for failed screenshots. -* **[WebDriverIO]** improved click on context to match clickable element with a text inside. Fixes [#647](https://github.com/codeceptjs/CodeceptJS/issues/647)* **[Nightmare]** Added `refresh` function by **[awhanks](https://github.com/awhanks)** +* **[WebDriverIO]** improved click on context to match clickable element with a text inside. Fixes [#647](https://github.com/Codeception/CodeceptJS/issues/647)* **[Nightmare]** Added `refresh` function by **[awhanks](https://github.com/awhanks)** * fixed `Unhandled promise rejection (rejection id: 1): Error: Unknown wait type: pageLoad` * support for tests with retries in html report * be sure that change window size and timeouts completes before test @@ -1214,16 +1214,16 @@ Next notable feature is **[SmartWait](http://codecept.io/acceptance/#smartwait)* * Minimal NodeJS version is 6.11.1 LTS * Use `within` command with generators. * [Data Driven Tests](http://codecept.io/advanced/#data-driven-tests) introduced. -* Print execution time per step in `--debug` mode. [#591](https://github.com/codeceptjs/CodeceptJS/issues/591) by **[APshenkin](https://github.com/APshenkin)** +* Print execution time per step in `--debug` mode. [#591](https://github.com/Codeception/CodeceptJS/issues/591) by **[APshenkin](https://github.com/APshenkin)** * [WebDriverIO][Protractor][Nightmare] Added `disableScreenshots` option to disable screenshots on fail by **[Apshenkin](https://github.com/Apshenkin)** * [WebDriverIO][Protractor][Nightmare] Added `uniqueScreenshotNames` option to generate unique names for screenshots on failure by **[Apshenkin](https://github.com/Apshenkin)** * [WebDriverIO][Nightmare] Fixed click on context; `click('text', '#el')` will throw exception if text is not found inside `#el`. * [WebDriverIO][Protractor][SeleniumWebdriver] [SmartWait introduced](http://codecept.io/acceptance/#smartwait). -* [WebDriverIO][Protractor][Nightmare]Fixed `saveScreenshot` for PhantomJS, `fullPageScreenshots` option introduced by **[HughZurname](https://github.com/HughZurname)** [#549](https://github.com/codeceptjs/CodeceptJS/issues/549) +* [WebDriverIO][Protractor][Nightmare]Fixed `saveScreenshot` for PhantomJS, `fullPageScreenshots` option introduced by **[HughZurname](https://github.com/HughZurname)** [#549](https://github.com/Codeception/CodeceptJS/issues/549) * **[Appium]** helper introduced by **[APshenkin](https://github.com/APshenkin)** -* **[REST]** helper introduced by **[atrevino](https://github.com/atrevino)** in [#504](https://github.com/codeceptjs/CodeceptJS/issues/504) -* [WebDriverIO][SeleniumWebdriver] Fixed "windowSize": "maximize" for Chrome 59+ version [#560](https://github.com/codeceptjs/CodeceptJS/issues/560) by **[APshenkin](https://github.com/APshenkin)** -* **[Nightmare]** Fixed restarting by **[APshenkin](https://github.com/APshenkin)** [#581](https://github.com/codeceptjs/CodeceptJS/issues/581) +* **[REST]** helper introduced by **[atrevino](https://github.com/atrevino)** in [#504](https://github.com/Codeception/CodeceptJS/issues/504) +* [WebDriverIO][SeleniumWebdriver] Fixed "windowSize": "maximize" for Chrome 59+ version [#560](https://github.com/Codeception/CodeceptJS/issues/560) by **[APshenkin](https://github.com/APshenkin)** +* **[Nightmare]** Fixed restarting by **[APshenkin](https://github.com/APshenkin)** [#581](https://github.com/Codeception/CodeceptJS/issues/581) * **[WebDriverIO]** Methods added by **[APshenkin](https://github.com/APshenkin)**: * [grabCssPropertyFrom](http://codecept.io/helpers/WebDriverIO/#grabcsspropertyfrom) * [seeTitleEquals](http://codecept.io/helpers/WebDriverIO/#seetitleequals) @@ -1243,10 +1243,10 @@ Next notable feature is **[SmartWait](http://codecept.io/acceptance/#smartwait)* * [scrollPageToBottom](http://codecept.io/helpers/WebDriverIO/#scrollpagetobottom) * [scrollPageToTop](http://codecept.io/helpers/WebDriverIO/#scrollpagetotop) * [grabBrowserLogs](http://codecept.io/helpers/WebDriverIO/#grabbrowserlogs) -* Use mkdirp to create output directory. [#592](https://github.com/codeceptjs/CodeceptJS/issues/592) by **[vkramskikh](https://github.com/vkramskikh)** -* **[WebDriverIO]** Fixed `seeNumberOfVisibleElements` by **[BorisOsipov](https://github.com/BorisOsipov)** [#574](https://github.com/codeceptjs/CodeceptJS/issues/574) -* Lots of fixes for promise chain by **[APshenkin](https://github.com/APshenkin)** [#568](https://github.com/codeceptjs/CodeceptJS/issues/568) - * Fix [#543](https://github.com/codeceptjs/CodeceptJS/issues/543)- After block not properly executed if Scenario fails +* Use mkdirp to create output directory. [#592](https://github.com/Codeception/CodeceptJS/issues/592) by **[vkramskikh](https://github.com/vkramskikh)** +* **[WebDriverIO]** Fixed `seeNumberOfVisibleElements` by **[BorisOsipov](https://github.com/BorisOsipov)** [#574](https://github.com/Codeception/CodeceptJS/issues/574) +* Lots of fixes for promise chain by **[APshenkin](https://github.com/APshenkin)** [#568](https://github.com/Codeception/CodeceptJS/issues/568) + * Fix [#543](https://github.com/Codeception/CodeceptJS/issues/543)- After block not properly executed if Scenario fails * Expected behavior in promise chains: `_beforeSuite` hooks from helpers -> `BeforeSuite` from test -> `_before` hooks from helpers -> `Before` from test - > Test steps -> `_failed` hooks from helpers (if test failed) -> `After` from test -> `_after` hooks from helpers -> `AfterSuite` from test -> `_afterSuite` hook from helpers. * if during test we got errors from any hook (in test or in helper) - stop complete this suite and go to another * if during test we got error from Selenium server - stop complete this suite and go to another @@ -1254,7 +1254,7 @@ Next notable feature is **[SmartWait](http://codecept.io/acceptance/#smartwait)* * Complete `_after`, `_afterSuite` hooks even After/AfterSuite from test was failed * Don't close browser between suites, when `restart` option is false. We should start browser only one time and close it only after all tests. * Close tabs and clear local storage, if `keepCookies` flag is enabled -* Fix TypeError when using babel-node or ts-node on node.js 7+ [#586](https://github.com/codeceptjs/CodeceptJS/issues/586) by **[vkramskikh](https://github.com/vkramskikh)** +* Fix TypeError when using babel-node or ts-node on node.js 7+ [#586](https://github.com/Codeception/CodeceptJS/issues/586) by **[vkramskikh](https://github.com/vkramskikh)** * **[Nightmare]** fixed usage of `_locate` Special thanks to **Andrey Pshenkin** for his work on this release and the major improvements. @@ -1270,9 +1270,9 @@ Scenario('My scenario', { build_id: 123, type: 'slow' }, function (I) those options can be accessed as `opts` property inside a `test` object. Can be used in custom listeners. * Added `docs` directory to a package. -* [WebDriverIO][Protractor][SeleniumWebdriver] Bugfix: cleaning session when `restart: false` by **[tfiwm](https://github.com/tfiwm)** [#519](https://github.com/codeceptjs/CodeceptJS/issues/519) +* [WebDriverIO][Protractor][SeleniumWebdriver] Bugfix: cleaning session when `restart: false` by **[tfiwm](https://github.com/tfiwm)** [#519](https://github.com/Codeception/CodeceptJS/issues/519) * [WebDriverIO][Protractor][Nightmare] Added second parameter to `saveScreenshot` to allow a full page screenshot. By **[HughZurname](https://github.com/HughZurname)** -* Added suite object to `suite.before` and `suite.after` events by **[implico](https://github.com/implico)**. [#496](https://github.com/codeceptjs/CodeceptJS/issues/496) +* Added suite object to `suite.before` and `suite.after` events by **[implico](https://github.com/implico)**. [#496](https://github.com/Codeception/CodeceptJS/issues/496) ## 0.6.2 @@ -1341,8 +1341,8 @@ codeceptjs run users_test.js -c tests ## 0.5.0 * Protractor ^5.0.0 support (while keeping ^4.0.9 compatibility) -* Fix 'fullTitle() is not a function' in exit.js by **[hubidu](https://github.com/hubidu)**. See [#388](https://github.com/codeceptjs/CodeceptJS/issues/388). -* **[Nightmare]** Fix for `waitTimeout` by **[HughZurname](https://github.com/HughZurname)**. See [#391](https://github.com/codeceptjs/CodeceptJS/issues/391). Resolves [#236](https://github.com/codeceptjs/CodeceptJS/issues/236)* Dockerized CodeceptJS setup by **[artiomnist](https://github.com/artiomnist)**. [See reference](https://github.com/codeceptjs/CodeceptJS/blob/master/docker/README.md) +* Fix 'fullTitle() is not a function' in exit.js by **[hubidu](https://github.com/hubidu)**. See [#388](https://github.com/Codeception/CodeceptJS/issues/388). +* **[Nightmare]** Fix for `waitTimeout` by **[HughZurname](https://github.com/HughZurname)**. See [#391](https://github.com/Codeception/CodeceptJS/issues/391). Resolves [#236](https://github.com/Codeception/CodeceptJS/issues/236)* Dockerized CodeceptJS setup by **[artiomnist](https://github.com/artiomnist)**. [See reference](https://github.com/codeceptjs/CodeceptJS/blob/master/docker/README.md) ## 0.4.16 @@ -1424,7 +1424,7 @@ Scenario('Not that complex', {timeout: 1000}, (I) => { }); ``` -* **[WebDriverIO]** Added `uniqueScreenshotNames` option to set unique screenshot names for failed tests. By **[APshenkin](https://github.com/APshenkin)**. See [#299](https://github.com/codeceptjs/CodeceptJS/issues/299) +* **[WebDriverIO]** Added `uniqueScreenshotNames` option to set unique screenshot names for failed tests. By **[APshenkin](https://github.com/APshenkin)**. See [#299](https://github.com/Codeception/CodeceptJS/issues/299) * **[WebDriverIO]** `clearField` method improved to accept name/label locators and throw errors. * [Nightmare][SeleniumWebdriver][Protractor] `clearField` method added. * **[Nightmare]** Fixed `waitForElement`, and `waitForVisible` methods. @@ -1446,7 +1446,7 @@ codeceptjs run -o '{ "helpers": {"WebDriverIO": {"browser": "chrome"}}}' ## 0.4.11 * Fixed regression in 0.4.10 -* Added `bootstrap`/`teardown` config options to accept functions as parameters by **[pscanf](https://github.com/pscanf)**. See updated [config reference](http://codecept.io/configuration/) [#319](https://github.com/codeceptjs/CodeceptJS/issues/319) +* Added `bootstrap`/`teardown` config options to accept functions as parameters by **[pscanf](https://github.com/pscanf)**. See updated [config reference](http://codecept.io/configuration/) [#319](https://github.com/Codeception/CodeceptJS/issues/319) ## 0.4.10 @@ -1461,26 +1461,26 @@ module.exports = function(done) { } ``` -* Changed 'pending' to 'skipped' in reports by **[timja-kainos](https://github.com/timja-kainos)**. See [#315](https://github.com/codeceptjs/CodeceptJS/issues/315) +* Changed 'pending' to 'skipped' in reports by **[timja-kainos](https://github.com/timja-kainos)**. See [#315](https://github.com/Codeception/CodeceptJS/issues/315) ## 0.4.9 * [SeleniumWebdriver][Protractor][WebDriverIO][Nightmare] fixed `executeScript`, `executeAsyncScript` to work and return values. * [Protractor][SeleniumWebdriver][WebDriverIO] Added `waitForInvisible` and `waitForStalenessOf` methods by **[Nighthawk14](https://github.com/Nighthawk14)**. * Added `--config` option to `codeceptjs run` to manually specify config file by **[cnworks](https://github.com/cnworks)** -* **[Protractor]** Simplified behavior of `amOutsideAngularApp` by using `ignoreSynchronization`. Fixes [#278](https://github.com/codeceptjs/CodeceptJS/issues/278) -* Set exit code to 1 when test fails at `Before`/`After` hooks. Fixes [#279](https://github.com/codeceptjs/CodeceptJS/issues/279) +* **[Protractor]** Simplified behavior of `amOutsideAngularApp` by using `ignoreSynchronization`. Fixes [#278](https://github.com/Codeception/CodeceptJS/issues/278) +* Set exit code to 1 when test fails at `Before`/`After` hooks. Fixes [#279](https://github.com/Codeception/CodeceptJS/issues/279) ## 0.4.8 * [Protractor][SeleniumWebdriver][Nightmare] added `moveCursorTo` method. -* [Protractor][SeleniumWebdriver][WebDriverIO] Added `manualStart` option to start browser manually in the beginning of test. By **[cnworks](https://github.com/cnworks)**. [PR[#250](https://github.com/codeceptjs/CodeceptJS/issues/250) +* [Protractor][SeleniumWebdriver][WebDriverIO] Added `manualStart` option to start browser manually in the beginning of test. By **[cnworks](https://github.com/cnworks)**. [PR[#250](https://github.com/Codeception/CodeceptJS/issues/250) * Fixed `codeceptjs init` to work with nested directories and file masks. * Fixed `codeceptjs gt` to generate test with proper file name suffix. By **[Zougi](https://github.com/Zougi)**. * **[Nightmare]** Fixed: Error is thrown when clicking on element which can't be locate. By **[davetmik](https://github.com/davetmik)** * **[WebDriverIO]** Fixed `attachFile` for file upload. By **[giuband](https://github.com/giuband)** and **[davetmik](https://github.com/davetmik)** -* **[WebDriverIO]** Add support for timeouts in config and with `defineTimeouts` method. By **[easternbloc](https://github.com/easternbloc)** [#258](https://github.com/codeceptjs/CodeceptJS/issues/258) and [#267](https://github.com/codeceptjs/CodeceptJS/issues/267) by **[davetmik](https://github.com/davetmik)** +* **[WebDriverIO]** Add support for timeouts in config and with `defineTimeouts` method. By **[easternbloc](https://github.com/easternbloc)** [#258](https://github.com/Codeception/CodeceptJS/issues/258) and [#267](https://github.com/Codeception/CodeceptJS/issues/267) by **[davetmik](https://github.com/davetmik)** * Fixed hanging of CodeceptJS when error is thrown by event dispatcher. Fix by **[Zougi](https://github.com/Zougi)** and **[davetmik](https://github.com/davetmik)** @@ -1497,7 +1497,7 @@ module.exports = function(done) { ## 0.4.5 * Fixed running `codecept def` command by **[jankaspar](https://github.com/jankaspar)** -* [Protractor][SeleniumWebdriver] Added support for special keys in `pressKey` method. Fixes [#216](https://github.com/codeceptjs/CodeceptJS/issues/216) +* [Protractor][SeleniumWebdriver] Added support for special keys in `pressKey` method. Fixes [#216](https://github.com/Codeception/CodeceptJS/issues/216) ## 0.4.4 @@ -1524,7 +1524,7 @@ exports.config = { ## 0.4.2 -* Added ability to localize tests with translation [#189](https://github.com/codeceptjs/CodeceptJS/issues/189). Thanks to **[abner](https://github.com/abner)** +* Added ability to localize tests with translation [#189](https://github.com/Codeception/CodeceptJS/issues/189). Thanks to **[abner](https://github.com/abner)** * **[Translation]** ru-RU translation added. * **[Translation]** pt-BR translation added. * **[Protractor]** Protractor 4.0.4 compatibility. @@ -1535,8 +1535,8 @@ exports.config = { ## 0.4.1 -* Added custom steps to step definition list. See [#174](https://github.com/codeceptjs/CodeceptJS/issues/174) by **[jayS-de](https://github.com/jayS-de)** -* **[WebDriverIO]** Fixed using `waitForTimeout` option by **[stephane-ruhlmann](https://github.com/stephane-ruhlmann)**. See [#178](https://github.com/codeceptjs/CodeceptJS/issues/178) +* Added custom steps to step definition list. See [#174](https://github.com/Codeception/CodeceptJS/issues/174) by **[jayS-de](https://github.com/jayS-de)** +* **[WebDriverIO]** Fixed using `waitForTimeout` option by **[stephane-ruhlmann](https://github.com/stephane-ruhlmann)**. See [#178](https://github.com/Codeception/CodeceptJS/issues/178) ## 0.4.0 @@ -1576,7 +1576,7 @@ Depending on installation type additional modules (webdriverio, protractor, ...) * [Protractor][SeleniumWebdriver] fixed closing browser instances * [Protractor][SeleniumWebdriver] `doubleClick` method added * [WebDriverIO][Protractor][SeleniumWebdriver] `doubleClick` method to locate clickable elements by text, `context` option added. -* Fixed using assert in generator without yields [#89](https://github.com/codeceptjs/CodeceptJS/issues/89) +* Fixed using assert in generator without yields [#89](https://github.com/Codeception/CodeceptJS/issues/89) ## 0.3.1 @@ -1596,8 +1596,8 @@ Starting from 0.3.0 webdriverio is not the only backend for running selenium tes * **[WebDriverIO]** fixed `windowSize: maximize` option in config * **[WebDriverIO]** `seeElement` and `dontSeeElement` check element for visibility by **[fabioel](https://github.com/fabioel)** and **[davertmik](https://github.com/davertmik)** * **[WebDriverIO]** `seeElementInDOM`, `dontSeeElementInDOM` added to check element exists on page. -* **[WebDriverIO]** fixed saving screenshots on failure. Fixes [#70](https://github.com/codeceptjs/CodeceptJS/issues/70) -* fixed `within` block doesn't end in output not [#79](https://github.com/codeceptjs/CodeceptJS/issues/79) +* **[WebDriverIO]** fixed saving screenshots on failure. Fixes [#70](https://github.com/Codeception/CodeceptJS/issues/70) +* fixed `within` block doesn't end in output not [#79](https://github.com/Codeception/CodeceptJS/issues/79) ## 0.2.8 @@ -1606,20 +1606,20 @@ Starting from 0.3.0 webdriverio is not the only backend for running selenium tes ## 0.2.7 -* process ends with exit code 1 on error or failure [#49](https://github.com/codeceptjs/CodeceptJS/issues/49) -* fixed registereing global Helper [#57](https://github.com/codeceptjs/CodeceptJS/issues/57) -* fixed handling error in within block [#50](https://github.com/codeceptjs/CodeceptJS/issues/50) +* process ends with exit code 1 on error or failure [#49](https://github.com/Codeception/CodeceptJS/issues/49) +* fixed registereing global Helper [#57](https://github.com/Codeception/CodeceptJS/issues/57) +* fixed handling error in within block [#50](https://github.com/Codeception/CodeceptJS/issues/50) ## 0.2.6 * Fixed `done() was called multiple times` * **[WebDriverIO]** added `waitToHide` method by **[fabioel](https://github.com/fabioel)** -* Added global `Helper` (alias `codecept_helper)`, object use for writing custom Helpers. Generator updated. Changes to [#48](https://github.com/codeceptjs/CodeceptJS/issues/48) +* Added global `Helper` (alias `codecept_helper)`, object use for writing custom Helpers. Generator updated. Changes to [#48](https://github.com/Codeception/CodeceptJS/issues/48) ## 0.2.5 -* Fixed issues with using yield inside a test [#45](https://github.com/codeceptjs/CodeceptJS/issues/45) [#47](https://github.com/codeceptjs/CodeceptJS/issues/47) [#43](https://github.com/codeceptjs/CodeceptJS/issues/43) -* Fixed generating a custom helper. Helper class is now accessible with `codecept_helper` var. Fixes [#48](https://github.com/codeceptjs/CodeceptJS/issues/48) +* Fixed issues with using yield inside a test [#45](https://github.com/Codeception/CodeceptJS/issues/45) [#47](https://github.com/Codeception/CodeceptJS/issues/47) [#43](https://github.com/Codeception/CodeceptJS/issues/43) +* Fixed generating a custom helper. Helper class is now accessible with `codecept_helper` var. Fixes [#48](https://github.com/Codeception/CodeceptJS/issues/48) ## 0.2.4 @@ -1652,7 +1652,7 @@ Whenever you need to create `I` object (in page objects, custom steps, but not i - mouse: `rightClick` * tests added * **[WebDriverIO]** proxy configuration added by **[petehouston](https://github.com/petehouston)** -* **[WebDriverIO]** fixed `waitForText` method by **[roadhump](https://github.com/roadhump)**. Fixes [#11](https://github.com/codeceptjs/CodeceptJS/issues/11) +* **[WebDriverIO]** fixed `waitForText` method by **[roadhump](https://github.com/roadhump)**. Fixes [#11](https://github.com/Codeception/CodeceptJS/issues/11) * Fixed creating output dir when it already exists on init by **[alfirin](https://github.com/alfirin)** * Fixed loading of custom helpers diff --git a/docs/community-helpers.md b/docs/community-helpers.md index b41ddd038..cc01b7d4b 100644 --- a/docs/community-helpers.md +++ b/docs/community-helpers.md @@ -5,7 +5,7 @@ editLink: false --- # Community Helpers -> Share your helpers at our [Wiki Page](https://github.com/codeceptjs/CodeceptJS/wiki/Community-Helpers) +> Share your helpers at our [Wiki Page](https://github.com/Codeception/CodeceptJS/wiki/Community-Helpers) Here is the list of helpers created by our community. Please **add your own** by editing this page. @@ -47,4 +47,4 @@ Please **add your own** by editing this page. ## Other -* [eslint-plugin-codeceptjs](https://www.npmjs.com/package/eslint-plugin-codeceptjs) Eslint rules for CodeceptJS. +* [eslint-plugin-codeceptjs](https://www.npmjs.com/package/eslint-plugin-codeceptjs) Eslint rules for CodeceptJS. \ No newline at end of file diff --git a/docs/examples.md b/docs/examples.md index 4a67f8c9b..48a888a9d 100644 --- a/docs/examples.md +++ b/docs/examples.md @@ -7,7 +7,7 @@ editLink: false --- # Examples -> Add your own examples to our [Wiki Page](https://github.com/codeceptjs/CodeceptJS/wiki/Examples) +> Add your own examples to our [Wiki Page](https://github.com/Codeception/CodeceptJS/wiki/Examples) ## [TodoMVC Examples](https://github.com/codecept-js/examples) ![](https://github.com/codecept-js/examples/raw/master/todo.png) @@ -23,7 +23,7 @@ Tests repository demonstrate usage of * PageObjects * Cucumber syntax -## [Basic Examples](https://github.com/codeceptjs/CodeceptJS/tree/master/examples) +## [Basic Examples](https://github.com/Codeception/CodeceptJS/tree/master/examples) CodeceptJS repo contains basic tests (both failing and passing) just to show how it works. Our team uses it to test new features and run simple scenarios. @@ -145,4 +145,4 @@ This is a ready to use example that shows how to integrate CodeceptJS with Puppe * puppeteer helper example * test steps, pages, fragments * examples for sequential and parallel execution -* generation of allure test results +* generation of allure test results \ No newline at end of file diff --git a/docs/helpers/Appium.md b/docs/helpers/Appium.md index e31b93557..9b28f43d1 100644 --- a/docs/helpers/Appium.md +++ b/docs/helpers/Appium.md @@ -1563,6 +1563,20 @@ I.moveCursorTo('#submit', 5,5); - `offsetX` **[number][8]** (optional, `0` by default) X-axis offset. (optional, default `0`) - `offsetY` **[number][8]** (optional, `0` by default) Y-axis offset. (optional, default `0`) +### saveElementScreenshot + +Saves screenshot of the specified locator to ouput folder (set in codecept.json or codecept.conf.js). +Filename is relative to output folder. + +```js +I.saveElementScreenshot(`#submit`,'debug.png'); +``` + +#### Parameters + +- `locator` **([string][4] \| [object][6])** element located by CSS|XPath|strict locator. +- `fileName` **[string][4]** file name to save. + ### saveScreenshot Saves a screenshot to ouput folder (set in codecept.json or codecept.conf.js). diff --git a/docs/videos.md b/docs/videos.md index 0ad20979b..1aaf7b2e9 100644 --- a/docs/videos.md +++ b/docs/videos.md @@ -6,7 +6,7 @@ title: Videos editLink: false --- -> Add your own videos to our [Wiki Page](https://github.com/codeceptjs/CodeceptJS/wiki/Videos) +> Add your own videos to our [Wiki Page](https://github.com/Codeception/CodeceptJS/wiki/Videos) [![](http://i3.ytimg.com/vi/BRMWstiOTks/maxresdefault.jpg)](https://www.youtube.com/watch?v=BRMWstiOTks) * ## [An Introduction, Getting started and working with CodeceptJS & Puppeteer (EAWeekend)](https://www.youtube.com/watch?v=BRMWstiOTks) diff --git a/docs/webapi/type.mustache b/docs/webapi/type.mustache index 5a05f7144..caece5597 100644 --- a/docs/webapi/type.mustache +++ b/docs/webapi/type.mustache @@ -1,12 +1,17 @@ - -Types out the given string or the array of keys provided. -_Note:_ Should only be used when using [`fillField`](#fillfield) is not an option. +Types out the given text into an active field. +To slow down typing use a second parameter, to set interval between key presses. +_Note:_ Should be used when [`fillField`](#fillfield) is not an option. ```js -// When passing in a string +// passing in a string I.type('Type this out.'); -// When passing in an array + +// typing values with a 100ms interval +I.type('4141555311111111', 100); + +// passing in an array I.type(['T', 'E', 'X', 'T']); ``` -@param {string|string[]} key or array of keys to type. \ No newline at end of file +@param {string|string[]} key or array of keys to type. +@param {int} delay in ms between key presses diff --git a/lib/helper/Nightmare.js b/lib/helper/Nightmare.js index 104620ca9..1f52c4fd4 100644 --- a/lib/helper/Nightmare.js +++ b/lib/helper/Nightmare.js @@ -1071,7 +1071,6 @@ class Nightmare extends Helper { * */ async saveElementScreenshot(locator, fileName) { - const outputFile = screenshotOutputFolder(fileName); const rect = await this.grabElementBoundingRect(locator); @@ -1080,23 +1079,21 @@ class Nightmare extends Helper { x: Math.floor(rect.x), y: Math.floor(rect.y), width: Math.floor(rect.width), - height: Math.floor(rect.height) - } + height: Math.floor(rect.height), + }; this.debug(`Screenshot of ${locator} element has been saved to ${outputFile}`); // take the screenshot - await this.browser.screenshot(outputFile, button_clip) + await this.browser.screenshot(outputFile, button_clip); } /** * {{> grabElementBoundingRect }} */ async grabElementBoundingRect(locator, prop) { - locator = new Locator(locator, 'css'); const rect = await this.browser.evaluate(async (by, locator) => { - // store the button in a variable const build_cluster_btn = await window.codeceptjs.findElement(by, locator); @@ -1110,7 +1107,7 @@ class Nightmare extends Helper { x: rect.left, y: rect.top, width: rect.width, - height: rect.height + height: rect.height, }; }, locator.type, locator.value); diff --git a/lib/helper/Playwright.js b/lib/helper/Playwright.js index 82221a9ad..ee041e0e3 100644 --- a/lib/helper/Playwright.js +++ b/lib/helper/Playwright.js @@ -1168,6 +1168,20 @@ class Playwright extends Helper { return this._waitForAction(); } + /** + * {{> type }} + */ + async type(keys, delay = null) { + if (!Array.isArray(keys)) { + keys = keys.split(''); + } + + for (const key of keys) { + await this.page.keyboard.press(key); + if (delay) await this.wait(delay / 1000); + } + } + /** * {{> fillField }} * @@ -1631,12 +1645,11 @@ class Playwright extends Helper { return array.length === 1 ? array[0] : array; } - /** + /** * {{> saveElementScreenshot }} * */ async saveElementScreenshot(locator, fileName) { - const outputFile = screenshotOutputFolder(fileName); const res = await this._locate(locator); diff --git a/lib/helper/Protractor.js b/lib/helper/Protractor.js index 3a7ffd9ca..7863b670a 100644 --- a/lib/helper/Protractor.js +++ b/lib/helper/Protractor.js @@ -967,12 +967,11 @@ class Protractor extends Helper { return this.browser.getCurrentUrl().then(currentUrl => urlEquals(this.options.url).negate(url, currentUrl)); } - /** + /** * {{> saveElementScreenshot }} * */ async saveElementScreenshot(locator, fileName) { - const outputFile = screenshotOutputFolder(fileName); const writeFile = (png, outputFile) => { @@ -990,7 +989,6 @@ class Protractor extends Helper { this.debug(`Screenshot of ${locator} element has been saved to ${outputFile}`); const png = await elem.takeScreenshot(); return writeFile(png, outputFile); - } /** diff --git a/lib/helper/Puppeteer.js b/lib/helper/Puppeteer.js index 1d8ec9bf0..8921b2d62 100644 --- a/lib/helper/Puppeteer.js +++ b/lib/helper/Puppeteer.js @@ -1195,6 +1195,20 @@ class Puppeteer extends Helper { return this._waitForAction(); } + /** + * {{> type }} + */ + async type(keys, delay = null) { + if (!Array.isArray(keys)) { + keys = keys.split(''); + } + + for (const key of keys) { + await this.page.keyboard.press(key); + if (delay) await this.wait(delay / 1000); + } + } + /** * {{> fillField }} * {{ react }} @@ -1671,12 +1685,11 @@ class Puppeteer extends Helper { return array.length === 1 ? array[0] : array; } - /** + /** * {{> saveElementScreenshot }} * */ async saveElementScreenshot(locator, fileName) { - const outputFile = screenshotOutputFolder(fileName); const res = await this._locate(locator); diff --git a/lib/helper/TestCafe.js b/lib/helper/TestCafe.js index 90d33c87e..2d7ea1f04 100644 --- a/lib/helper/TestCafe.js +++ b/lib/helper/TestCafe.js @@ -731,12 +731,11 @@ class TestCafe extends Helper { stringIncludes('HTML source of a page').negate(text, source); } - /** + /** * {{> saveElementScreenshot }} * */ async saveElementScreenshot(locator, fileName) { - const outputFile = path.join(global.output_dir, fileName); const sel = await findElements.call(this, this.context, locator); @@ -744,9 +743,8 @@ class TestCafe extends Helper { const firstElement = await sel.filterVisible().nth(0); this.debug(`Screenshot of ${locator} element has been saved to ${outputFile}`); - return this.t.takeElementScreenshot(firstElement,fileName); + return this.t.takeElementScreenshot(firstElement, fileName); } - /** * {{> saveScreenshot }} diff --git a/lib/helper/WebDriver.js b/lib/helper/WebDriver.js index 629532285..8f7a686a4 100644 --- a/lib/helper/WebDriver.js +++ b/lib/helper/WebDriver.js @@ -1530,12 +1530,11 @@ class WebDriver extends Helper { return elem.moveTo({ xOffset, yOffset }); } - /** + /** * {{> saveElementScreenshot }} * */ async saveElementScreenshot(locator, fileName) { - const outputFile = screenshotOutputFolder(fileName); const res = await this._locate(withStrictLocator(locator), true); @@ -1545,7 +1544,7 @@ class WebDriver extends Helper { this.debug(`Screenshot of ${locator} element has been saved to ${outputFile}`); return elem.saveScreenshot(outputFile); } - + /** * {{> saveScreenshot }} * @@ -1773,12 +1772,18 @@ class WebDriver extends Helper { * {{> type }} * Type out given array of keys or a string of text */ - async type(keys) { - if (Array.isArray(keys)) { - await this.browser.keys(keys); + async type(keys, delay = null) { + if (!Array.isArray(keys)) { + keys = keys.split(''); + } + if (delay) { + for (const key of keys) { + await this.browser.keys(key); + await this.wait(delay / 1000); + } return; } - await this.browser.keys(keys.split('')); + await this.browser.keys(keys); } /** diff --git a/lib/step.js b/lib/step.js index 53d4bccb2..2f47265d2 100644 --- a/lib/step.js +++ b/lib/step.js @@ -96,7 +96,7 @@ class Step { /** @return {string} */ humanizeArgs() { return this.args.map((arg) => { - if ( !arg ) { + if (!arg) { return ''; } if (typeof arg === 'string') { diff --git a/test/helper/WebDriver_test.js b/test/helper/WebDriver_test.js index 84df81fa3..ae9815a27 100644 --- a/test/helper/WebDriver_test.js +++ b/test/helper/WebDriver_test.js @@ -325,21 +325,6 @@ describe('WebDriver', function () { }); }); - describe('#type', () => { - it('should type into a field', async () => { - await wd.amOnPage('/form/field'); - await wd.click('Name'); - - await wd.type('Type Test'); - await wd.seeInField('Name', 'Type Test'); - - await wd.fillField('Name', ''); - - await wd.type(['T', 'y', 'p', 'e', '2']); - await wd.seeInField('Name', 'Type2'); - }); - }); - describe('#seeInSource, #grabSource', () => { it('should check for text to be in HTML source', async () => { await wd.amOnPage('/'); diff --git a/test/helper/webapi.js b/test/helper/webapi.js index 8bcd5ee83..088b0e858 100644 --- a/test/helper/webapi.js +++ b/test/helper/webapi.js @@ -33,11 +33,10 @@ module.exports.tests = function () { }); it('should create a screenshot file in output dir of element', async () => { - await I.amOnPage('/form/field'); - await I.seeElement(`input[name='name']`); + await I.seeElement('input[name=\'name\']'); const sec = (new Date()).getUTCMilliseconds(); - await I.saveElementScreenshot(`input[name='name']`,`element_screenshot_${sec}.png`); + await I.saveElementScreenshot('input[name=\'name\']', `element_screenshot_${sec}.png`); assert.ok(fileExists(path.join(global.output_dir, `element_screenshot_${sec}.png`)), null, 'file does not exists'); }); }); @@ -573,6 +572,33 @@ module.exports.tests = function () { }); }); + describe('#type', function () { + if (isHelper('Nightmare')) this.skip(); + if (isHelper('TestCafe')) this.skip(); + + it('should type into a field', async () => { + await I.amOnPage('/form/field'); + await I.click('Name'); + + await I.type('Type Test'); + await I.seeInField('Name', 'Type Test'); + + await I.fillField('Name', ''); + + await I.type(['T', 'y', 'p', 'e', '2']); + await I.seeInField('Name', 'Type2'); + }); + + it('should use delay to slow down typing', async () => { + await I.amOnPage('/form/field'); + await I.click('Name'); + const time = Date.now(); + await I.type('12345', 100); + await I.seeInField('Name', 'Type2'); + assert(Date.now() - time > 500); + }); + }); + describe('check fields: #seeInField, #seeCheckboxIsChecked, ...', () => { it('should check for empty field', async () => { await I.amOnPage('/form/empty'); From f686f146ffcb212be395464c8ef2102f7afe1259 Mon Sep 17 00:00:00 2001 From: Davert Date: Wed, 5 Aug 2020 00:32:50 +0300 Subject: [PATCH 03/14] fixed steps test --- test/unit/steps_test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/unit/steps_test.js b/test/unit/steps_test.js index 213cab037..a05d915a9 100644 --- a/test/unit/steps_test.js +++ b/test/unit/steps_test.js @@ -34,7 +34,7 @@ describe('Step', () => { let testUndefined; step.args = [testUndefined, 'undefined']; - step.humanizeArgs().should.eql('undefined, "undefined"'); + step.humanizeArgs().should.eql(', "undefined"'); step.args = [secret('word'), 1]; step.humanizeArgs().should.eql('*****, 1'); From 4e2d7ee318f34aaa7378b5fb76e41495c7bc9e58 Mon Sep 17 00:00:00 2001 From: Davert Date: Wed, 5 Aug 2020 00:46:56 +0300 Subject: [PATCH 04/14] fixed tests & types --- docs/webapi/type.mustache | 2 +- test/helper/webapi.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/webapi/type.mustache b/docs/webapi/type.mustache index caece5597..e3e3aed51 100644 --- a/docs/webapi/type.mustache +++ b/docs/webapi/type.mustache @@ -14,4 +14,4 @@ I.type(['T', 'E', 'X', 'T']); ``` @param {string|string[]} key or array of keys to type. -@param {int} delay in ms between key presses +@param {number} delay in ms between key presses diff --git a/test/helper/webapi.js b/test/helper/webapi.js index 088b0e858..3fcde221d 100644 --- a/test/helper/webapi.js +++ b/test/helper/webapi.js @@ -572,9 +572,9 @@ module.exports.tests = function () { }); }); - describe('#type', function () { - if (isHelper('Nightmare')) this.skip(); - if (isHelper('TestCafe')) this.skip(); + describe('#type', () => { + if (isHelper('Nightmare')) return; + if (isHelper('TestCafe')) return; it('should type into a field', async () => { await I.amOnPage('/form/field'); From 14d9d6bc75bcf33c3619758fd27120f7d2c111f1 Mon Sep 17 00:00:00 2001 From: Davert Date: Wed, 5 Aug 2020 00:47:46 +0300 Subject: [PATCH 05/14] fixed tests & types --- docs/webapi/type.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/webapi/type.mustache b/docs/webapi/type.mustache index e3e3aed51..b002cc49e 100644 --- a/docs/webapi/type.mustache +++ b/docs/webapi/type.mustache @@ -14,4 +14,4 @@ I.type(['T', 'E', 'X', 'T']); ``` @param {string|string[]} key or array of keys to type. -@param {number} delay in ms between key presses +@param {?number} [delay=null] (optional) delay in ms between key presses From 6d8fae2dbb73b237c859137e37ae0fff84c4fbf0 Mon Sep 17 00:00:00 2001 From: Davert Date: Wed, 5 Aug 2020 01:14:23 +0300 Subject: [PATCH 06/14] fixed tests for type --- test/helper/webapi.js | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/test/helper/webapi.js b/test/helper/webapi.js index 3fcde221d..23f1eddf5 100644 --- a/test/helper/webapi.js +++ b/test/helper/webapi.js @@ -573,10 +573,10 @@ module.exports.tests = function () { }); describe('#type', () => { - if (isHelper('Nightmare')) return; - if (isHelper('TestCafe')) return; + it('should type into a field', async function () { + if (isHelper('TestCafe')) this.skip(); + if (isHelper('Nightmare')) this.skip(); - it('should type into a field', async () => { await I.amOnPage('/form/field'); await I.click('Name'); @@ -589,12 +589,15 @@ module.exports.tests = function () { await I.seeInField('Name', 'Type2'); }); - it('should use delay to slow down typing', async () => { + it('should use delay to slow down typing', async function () { + if (isHelper('TestCafe')) this.skip(); + if (isHelper('Nightmare')) this.skip(); + await I.amOnPage('/form/field'); - await I.click('Name'); + await I.fillField('Name', ''); const time = Date.now(); await I.type('12345', 100); - await I.seeInField('Name', 'Type2'); + await I.seeInField('Name', '12345'); assert(Date.now() - time > 500); }); }); From 51637a94cd87acaf027d75f31d3585c60ca9b094 Mon Sep 17 00:00:00 2001 From: Davert Date: Wed, 5 Aug 2020 01:58:11 +0300 Subject: [PATCH 07/14] added type to Protractor --- CHANGELOG.md | 2 +- lib/helper/Protractor.js | 18 ++++++++++++++++++ lib/helper/WebDriver.js | 1 - 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e07c8e9d4..a51ac0606 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ ## 2.6.8 * [WebDriver][Protractor][Playwright][Puppeteer][Nightmare] `saveElementScreenshot` method added to make screenshot of an element. By @suniljaiswal01 -* [Playwright][Puppeteer] Added `type` method to type a text using keyboard with an optional delay. +* [Playwright][Puppeteer][Protractor] Added `type` method to type a text using keyboard with an optional delay. * [WebDriver] Added optional `delay` argument to `type` method to slow down typing. * [Puppeteer] Fixed `amOnPage` freeze when `getPageTimeout` is 0"; set 30 sec as default timeout by @Vorobeyko. * Fixed printing step with null argument in custom helper by @sjana-aj. See #2494 diff --git a/lib/helper/Protractor.js b/lib/helper/Protractor.js index 7863b670a..36e15accc 100644 --- a/lib/helper/Protractor.js +++ b/lib/helper/Protractor.js @@ -588,6 +588,24 @@ class Protractor extends Helper { return action.perform(); } + /** + * {{> type }} + */ + async type(keys, delay = null) { + if (!Array.isArray(keys)) { + keys = keys.split(''); + } + if (delay) { + const action = this.browser.actions(); + for (const key of keys) { + await action.keyPress(key); + await this.wait(delay / 1000); + } + return; + } + await this.browser.sendKeys(keys); + } + /** * {{> attachFile }} */ diff --git a/lib/helper/WebDriver.js b/lib/helper/WebDriver.js index 8f7a686a4..e81b64426 100644 --- a/lib/helper/WebDriver.js +++ b/lib/helper/WebDriver.js @@ -1770,7 +1770,6 @@ class WebDriver extends Helper { /** * {{> type }} - * Type out given array of keys or a string of text */ async type(keys, delay = null) { if (!Array.isArray(keys)) { From 95835fb34f501cb43d0b35db0fb9631bdc65445d Mon Sep 17 00:00:00 2001 From: Davert Date: Wed, 5 Aug 2020 02:59:29 +0300 Subject: [PATCH 08/14] fixed typing via Protractor --- lib/helper/Protractor.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/helper/Protractor.js b/lib/helper/Protractor.js index 36e15accc..7917223f6 100644 --- a/lib/helper/Protractor.js +++ b/lib/helper/Protractor.js @@ -595,15 +595,15 @@ class Protractor extends Helper { if (!Array.isArray(keys)) { keys = keys.split(''); } + const action = this.browser.actions(); if (delay) { - const action = this.browser.actions(); for (const key of keys) { - await action.keyPress(key); + await action.sendKeys(key); await this.wait(delay / 1000); } return; } - await this.browser.sendKeys(keys); + await action.sendKeys(keys); } /** From a1e1fdea631b3551cb82fe21c1d6144f01d39f67 Mon Sep 17 00:00:00 2001 From: Davert Date: Wed, 5 Aug 2020 23:04:17 +0300 Subject: [PATCH 09/14] removed protractor type --- CHANGELOG.md | 2 +- lib/helper/Protractor.js | 18 ------------------ test/helper/webapi.js | 1 + 3 files changed, 2 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a51ac0606..e07c8e9d4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ ## 2.6.8 * [WebDriver][Protractor][Playwright][Puppeteer][Nightmare] `saveElementScreenshot` method added to make screenshot of an element. By @suniljaiswal01 -* [Playwright][Puppeteer][Protractor] Added `type` method to type a text using keyboard with an optional delay. +* [Playwright][Puppeteer] Added `type` method to type a text using keyboard with an optional delay. * [WebDriver] Added optional `delay` argument to `type` method to slow down typing. * [Puppeteer] Fixed `amOnPage` freeze when `getPageTimeout` is 0"; set 30 sec as default timeout by @Vorobeyko. * Fixed printing step with null argument in custom helper by @sjana-aj. See #2494 diff --git a/lib/helper/Protractor.js b/lib/helper/Protractor.js index 7917223f6..7863b670a 100644 --- a/lib/helper/Protractor.js +++ b/lib/helper/Protractor.js @@ -588,24 +588,6 @@ class Protractor extends Helper { return action.perform(); } - /** - * {{> type }} - */ - async type(keys, delay = null) { - if (!Array.isArray(keys)) { - keys = keys.split(''); - } - const action = this.browser.actions(); - if (delay) { - for (const key of keys) { - await action.sendKeys(key); - await this.wait(delay / 1000); - } - return; - } - await action.sendKeys(keys); - } - /** * {{> attachFile }} */ diff --git a/test/helper/webapi.js b/test/helper/webapi.js index 23f1eddf5..8ad4e16b1 100644 --- a/test/helper/webapi.js +++ b/test/helper/webapi.js @@ -576,6 +576,7 @@ module.exports.tests = function () { it('should type into a field', async function () { if (isHelper('TestCafe')) this.skip(); if (isHelper('Nightmare')) this.skip(); + if (isHelper('Protractor')) this.skip(); await I.amOnPage('/form/field'); await I.click('Name'); From fd8c5c4c5bddea8f600c07ad26741de8717bcb23 Mon Sep 17 00:00:00 2001 From: Davert Date: Thu, 6 Aug 2020 00:19:35 +0300 Subject: [PATCH 10/14] removed protractor type --- test/helper/webapi.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/helper/webapi.js b/test/helper/webapi.js index 8ad4e16b1..0f43384a0 100644 --- a/test/helper/webapi.js +++ b/test/helper/webapi.js @@ -576,7 +576,7 @@ module.exports.tests = function () { it('should type into a field', async function () { if (isHelper('TestCafe')) this.skip(); if (isHelper('Nightmare')) this.skip(); - if (isHelper('Protractor')) this.skip(); + if (isHelper('ProtractorWeb')) this.skip(); await I.amOnPage('/form/field'); await I.click('Name'); From 0ddf5190acad25f26ca1b3091768d49dc0dab7b6 Mon Sep 17 00:00:00 2001 From: Davert Date: Thu, 6 Aug 2020 02:06:07 +0300 Subject: [PATCH 11/14] fixed tests --- test/helper/webapi.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/helper/webapi.js b/test/helper/webapi.js index 0f43384a0..6ca69346c 100644 --- a/test/helper/webapi.js +++ b/test/helper/webapi.js @@ -575,8 +575,8 @@ module.exports.tests = function () { describe('#type', () => { it('should type into a field', async function () { if (isHelper('TestCafe')) this.skip(); - if (isHelper('Nightmare')) this.skip(); - if (isHelper('ProtractorWeb')) this.skip(); + if (isHelper('Nightmare')) return; + if (isHelper('Protractor-NonAngular')) this.skip(); await I.amOnPage('/form/field'); await I.click('Name'); From 30a376a21ffef43da5949f72c056be7d52d3f343 Mon Sep 17 00:00:00 2001 From: Davert Date: Thu, 6 Aug 2020 02:40:17 +0300 Subject: [PATCH 12/14] fixed tests --- test/helper/webapi.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/helper/webapi.js b/test/helper/webapi.js index 6ca69346c..2d7d5298c 100644 --- a/test/helper/webapi.js +++ b/test/helper/webapi.js @@ -592,7 +592,8 @@ module.exports.tests = function () { it('should use delay to slow down typing', async function () { if (isHelper('TestCafe')) this.skip(); - if (isHelper('Nightmare')) this.skip(); + if (isHelper('Nightmare')) return; + if (isHelper('Protractor-NonAngular')) this.skip(); await I.amOnPage('/form/field'); await I.fillField('Name', ''); From a5aab42ad7601b67f728f7406d5f9f2cf2f5445d Mon Sep 17 00:00:00 2001 From: Davert Date: Thu, 6 Aug 2020 02:54:36 +0300 Subject: [PATCH 13/14] fixed tests --- test/helper/webapi.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/helper/webapi.js b/test/helper/webapi.js index 2d7d5298c..5ab1ecab4 100644 --- a/test/helper/webapi.js +++ b/test/helper/webapi.js @@ -576,7 +576,7 @@ module.exports.tests = function () { it('should type into a field', async function () { if (isHelper('TestCafe')) this.skip(); if (isHelper('Nightmare')) return; - if (isHelper('Protractor-NonAngular')) this.skip(); + if (isHelper('Protractor')) this.skip(); await I.amOnPage('/form/field'); await I.click('Name'); @@ -593,7 +593,7 @@ module.exports.tests = function () { it('should use delay to slow down typing', async function () { if (isHelper('TestCafe')) this.skip(); if (isHelper('Nightmare')) return; - if (isHelper('Protractor-NonAngular')) this.skip(); + if (isHelper('Protractor')) this.skip(); await I.amOnPage('/form/field'); await I.fillField('Name', ''); From 88cbc6d60692fda00808996583034f5452e2d657 Mon Sep 17 00:00:00 2001 From: Davert Date: Thu, 6 Aug 2020 03:29:13 +0300 Subject: [PATCH 14/14] updated release paths --- runio.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/runio.js b/runio.js index 458299271..b4c69c375 100755 --- a/runio.js +++ b/runio.js @@ -231,7 +231,7 @@ title: ${name} cfg.line('---'); cfg.line(''); cfg.line('# Community Helpers'); - cfg.line('> Share your helpers at our [Wiki Page](https://github.com/Codeception/CodeceptJS/wiki/Community-Helpers)'); + cfg.line('> Share your helpers at our [Wiki Page](https://github.com/codeceptjs/CodeceptJS/wiki/Community-Helpers)'); cfg.line(''); cfg.textFromFile('docs/wiki/Community-Helpers.md'); }); @@ -246,7 +246,7 @@ title: ${name} cfg.line('---'); cfg.line(''); cfg.line('# Examples'); - cfg.line('> Add your own examples to our [Wiki Page](https://github.com/Codeception/CodeceptJS/wiki/Examples)'); + cfg.line('> Add your own examples to our [Wiki Page](https://github.com/codeceptjs/CodeceptJS/wiki/Examples)'); cfg.textFromFile('docs/wiki/Examples.md'); }); @@ -260,7 +260,7 @@ title: ${name} cfg.line('---'); cfg.line(''); cfg.line('# Books & Posts'); - cfg.line('> Add your own books or posts to our [Wiki Page](https://github.com/Codeception/CodeceptJS/wiki/Books-&-Posts)'); + cfg.line('> Add your own books or posts to our [Wiki Page](https://github.com/codeceptjs/CodeceptJS/wiki/Books-&-Posts)'); cfg.textFromFile('docs/wiki/Books-&-Posts.md'); }); @@ -273,7 +273,7 @@ title: ${name} cfg.line('editLink: false'); cfg.line('---'); cfg.line(''); - cfg.line('> Add your own videos to our [Wiki Page](https://github.com/Codeception/CodeceptJS/wiki/Videos)'); + cfg.line('> Add your own videos to our [Wiki Page](https://github.com/codeceptjs/CodeceptJS/wiki/Videos)'); cfg.textFromFile('docs/wiki/Videos.md'); }); },