[Playwright] Playwright 1.4 compatibility

Playwright 1.4 compatibility [Playwright] Added ignoreHTTPSErrors config option (default: false). See #2566 by gurjeetbains

Added config option (default: false). See #2566 by gurjeetbains Added French translation by vimar

[WebDriver] Updated dragSlider to work in WebDriver W3C protocol. Fixes #2557 by suniljaiswal01

Fixed saving options for suite via Feature('title', {key: value}) by Diokuz . See #2553 and Docs

[Puppeteer][Playwright] SessionStorage is now cleared in after hook. See #2524

When helper load failed the error stack is now logged by SkReD . See #2541

. See #2541 Small documentation fixes.

[WebDriver][Protractor][Playwright][Puppeteer][Nightmare] saveElementScreenshot method added to make screenshot of an element. By suniljaiswal01

method added to make screenshot of an element. By [Playwright][Puppeteer] Added type method to type a text using keyboard with an optional delay.

method to type a text using keyboard with an optional delay. [WebDriver] Added optional delay argument to type method to slow down typing.

Added optional argument to method to slow down typing. [Puppeteer] Fixed amOnPage freeze when getPageTimeout is 0"; set 30 sec as default timeout by Vorobeyko .

Fixed freeze when is 0"; set 30 sec as default timeout by . Fixed printing step with null argument in custom helper by sjana-aj . See #2494

. See #2494 Fix missing screenshot on failure when REST helper is in use #2513 by PeterNgTr

by Improve error logging in the screenshotOnFail plugin #2512 by pablopaul

Add REST helper into standardActingHelpers array #2474 by PeterNgTr

array #2474 by Add missing --invert option for run-workers command #2504 by pablopaul

option for command #2504 by [WebDriver] Introduce forceRightClick method #2485 bylsuniljaiswal01

Introduce method #2485 bylsuniljaiswal01 [Playwright] Fix setCookie method #2491 by bmbarker90

Fix method #2491 by [TypeScript] Update compilerOptions.target to es2017 #2483 by shanplourde

Update compilerOptions.target to es2017 #2483 by [Mocha] Honor reporter configuration #2465 by trinhpham

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

and to skip all tests in a suite. By [Appium] Fixed #2428 Android native locator support by idxn

Fixed #2428 Android native locator support by [WebDriver] Fixed waitNumberOfVisibleElements to actually filter visible elements. By ilangv

Fixed to actually filter visible elements. By [Puppeteer] Fixed handling error which is not an Error object. Fixes cannot read property indexOf of undefined error. Fix #2436 by Georgegriff

Fixed handling error which is not an Error object. Fixes error. Fix #2436 by [Puppeteer] Print error on page crash by Georgegriff

Added test.skipped event to run-workers, fixing allure reports with skipped tests in workers #2391 . Fix #2387 by koushikmohan1996

event to run-workers, fixing allure reports with skipped tests in workers #2391 . Fix #2387 by [Playwright] Fixed calling waitFor* methods with custom locators #2314 . Fix #2389 by Georgegriff

[Playwright] Playwright 1.0 support by Georgegriff .

[stepByStepReport plugin] Fixed when using plugin with BeforeSuite. Fixes #2337 by mirao

by [allure plugin] Fixed reporting of tests skipped by failure in before hook. Refer to #2349 & #2354 . Fix by koushikmohan1996

[WebDriver][Puppeteer] Added forceClick method to emulate click event instead of using native events.

method to emulate click event instead of using native events. [Playwright] Updated to 0.14

Updated to 0.14 [Puppeteer] Updated to Puppeteer v3.0

Updated to Puppeteer v3.0 [wdio] Fixed undefined output directory for wdio plugns. Fix By PeterNgTr

Fixed undefined output directory for wdio plugns. Fix By [Playwright] Introduced handleDownloads method to download file. Please note, this method has slightly different API than the same one in Puppeteer.

Introduced method to download file. Please note, this method has slightly different API than the same one in Puppeteer. [allure] Fixed undefined output directory for allure plugin on using custom runner. Fix by charliepradeep

Fixed undefined output directory for allure plugin on using custom runner. Fix by [WebDriver] Fixed waitForEnabled fix for webdriver 6. Fix by dsharapkou

Fixed fix for webdriver 6. Fix by Workers: Fixed negative failure result if use scenario with the same names. Fix by Vorobeyko

[MockRequest] Updated documentation to match new helper version

Updated documentation to match new helper version Fixed: skipped tests are not reported if a suite failed in before . Refer #2349 & #2354 . Fix by koushikmohan1996

[screenshotOnFail plugin] Fixed saving screenshot of active session.

[screenshotOnFail plugin] Fix issue #2301 when having the flag uniqueScreenshotNames =true results in undefined in screenshot file name by PeterNgTr

when having the flag =true results in in screenshot file name by [WebDriver] Fixed waitForElement not applying the optional second argument to override the default timeout in webdriverio 6. Fix by Mooksc

Fixed not applying the optional second argument to override the default timeout in webdriverio 6. Fix by [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 by Mooksc

[Playwright] Updated to Playwright 0.12 by Georgegriff .

Upgrade playwright to ^0.12:

Notable changes :

Fixed opening two browsers on start

executeScript - passed function now accepts only one argument. Pass in objects or arrays if you need multtple arguments:

I . executeScript ( ( x , y ) => x + y , x , y ) ; I . executeScript ( ( { x , y } ) => x + y , { x , y } ) ;

click - automatically waits for element to become clickable (visible, not animated) and waits for navigation.

- automatically waits for element to become clickable (visible, not animated) and waits for navigation. clickLink - deprecated

- deprecated waitForClickable - deprecated

- deprecated forceClick - added

- added Added support for custom locators. See #2277

Introduced device emulation: globally via emulate config option per session



[WebDriver] Updated to webdriverio v6 by PeterNgTr .

Read release notes , then upgrade webdriverio to ^6.0:

(webdriverio v5 support is deprecated and will be removed in CodeceptJS 3.0) [WebDriver] Introduced Shadow DOM support by gkushang

I . click ( { shadow : [ 'my-app' , 'recipe-hello' , 'button' ] } ) ;

Fixed parallel execution of run-workers for Gherkin scenarios by koushikmohan1996

scenarios by [MockRequest] Updated and moved to standalone package : full support for record/replay mode for Puppeteer added mockServer method to use flexible PollyJS API to define mocks fixed stale browser screen in record mode.

Updated and : [Playwright] Added support on for screenshotOnFail plugin by amonkc

Added support on for plugin by Gherkin improvement: setting different tags per examples. See #2208 by acuper

by [TestCafe] Updated click to take first visible element. Fixes #2226 by theTainted

Updated to take first visible element. Fixes #2226 by [Puppeteer][WebDriver] Updated waitForClickable method to check for element overlapping. See #2261 by PiQx

method to check for element overlapping. See #2261 by [Puppeteer] Dropped puppeteer-firefox support, as Puppeteer supports Firefox natively.

Dropped support, as Puppeteer supports Firefox natively. [REST] Rrespect Content-Type header. See #2262 by pmarshall-legacy

Rrespect Content-Type header. See #2262 by [allure plugin] Fixes BeforeSuite failures in allure reports. See #2248 by Georgegriff

by [WebDriver][Puppeteer][Playwright] A screenshot of for an active session is saved in multi-session mode. See #2253 by ChexWarrior

by Fixed --profile option by 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 . Fixes #1968 #1315

commentStep Plugin introduced. Allows to annotate logical parts of a test:

__ ` Given ` ; I . amOnPage ( '/profile' ) __ ` When ` ; I . click ( 'Logout' ) ; __ ` Then ` ; I . see ( 'You are logged out' ) ;

Experimental: Playwright helper introduced.

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 by ian-bartholomew

Fixed basic auth support when running in multiple sessions. See #2178 by [Puppeteer] Fixed waitForText when there is no body element on page (redirect). See #2181 by Vorobeyko

Fixed when there is no element on page (redirect). See #2181 by [Selenoid plugin] Fixed overriding current capabilities by adding deepMerge. Fixes #2183 by koushikmohan1996

by Added types for Scenario.todo by Vorobeyko

by Added types for Mocha by Vorobeyko . Fixed typing conflicts with Jest

. Fixed typing conflicts with Jest [FileSystem] Added methods by nitschSB waitForFile seeFileContentsEqualReferenceFile

Added methods by Added --colors option to run and run-multiple so you force colored output in dockerized environment. See #2189 by mirao

option to and so you force colored output in dockerized environment. See #2189 by [WebDriver] Added type command to enter value without focusing on a field. See #2198 by xMutaGenx

Added command to enter value without focusing on a field. See #2198 by Fixed codeceptjs gt command to respect config pattern for tests. See #2200 and #2204 by matheo

Hotfix for interactive pause

Interactive pause improvements by koushikmohan1996 allows using in page objects and variables: pause({ loginPage, a }) enables custom commands inside pause with => prefix: => loginPage.open()

by Selenoid plugin added by by koushikmohan1996 uses Selenoid to launch browsers inside Docker containers automatically records videos and attaches them to allure reports can delete videos for successful tests can automatically pull in and start Selenoid containers works with WebDriver helper

Avoid failiure report on successful retry in worker by koushikmohan1996

Added translation ability to Scenario, Feature and other context methods by koushikmohan1996 📢 Please help us translate context methods to your language! See italian translation as an example and send patches to vocabularies .

allurePlugin: Added say comments to allure reports by PeterNgTr .

comments to allure reports by . Fixed no custom output folder created when executed with run-worker. Fix by PeterNgTr

[Puppeteer] Fixed error description for context element not found. See #2065 . Fix by PeterNgTr

Fixed error description for context element not found. See #2065 . Fix by [WebDriver] Fixed waitForClickable to wait for exact number of seconds by mirao . Resolves #2166

Fixed to wait for exact number of seconds by . Resolves #2166 Fixed setting compilerOptions in jsconfig.json file on init by PeterNgTr

in file on init by [Filesystem] Added method by nitschSB seeFileContentsEqualReferenceFile waitForFile

Added method by

[Hotfix] - Add missing lib that prevents codeceptjs from initializing.

Create better Typescript definition file through JSDoc. By lemnis

run-workers now can use glob pattern. By Ilrilan

exports . config = { tests : '{./workers/base_test.workers.js,./workers/test_grep.workers.js}' , }

Added new command npx codeceptjs info which print information about your environment and CodeceptJS configs. By jamesgeorge007

which print information about your environment and CodeceptJS configs. By Fixed some typos in documantation. By pablopaul atomicpages EricTendian

Added PULL_REQUEST template.

[Puppeteer][WebDriver] Added waitForClickable for waiting clickable element on page.

for waiting clickable element on page. [TestCafe] Added support for remote connection. By jvdieten

Added support for remote connection. By [Puppeteer] Fixed waitForText XPath context now works correctly. By Heavik

Fixed XPath context now works correctly. By [TestCafe] Fixed clearField clear field now awaits TestCafe's promise. By orihomie

Fixed clear field now awaits TestCafe's promise. By [Puppeteer] Fixed fails when executing localStorage on services pages. See #2026

Fixed fails when executing localStorage on services pages. See #2026 Fixed empty tags in test name. See #2038

Set "parse-function" dependency to "5.2.11" to avoid further installation errors.

Fixed installation error "Cannot find module '@babel/runtime/helpers/interopRequireDefault'". The issue came from parse-function package. Fixed by pablopaul .

package. Fixed by . [Puppeteer] Fixed switching to iframe without an ID by johnyb . See #1974

Fixed switching to iframe without an ID by . See #1974 Added --profile option to run-workers by orihomie

option to by Added a tag definition to FeatureConfig and ScenarioConfig by sseliverstov

customLocator plugin introduced. Adds a locator strategy for special test attributes on elements.

I . click ( { css : '[data-test-id=register_button]' ) ; I . click ( '$register_button' ) ;

[Puppeteer][WebDriver] pressKey improvements by martomo : 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' + '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.

improvements by : Changed pressKey method to resolve issues and extend functionality. [Puppeteer][WebDriver] Added pressKeyUp and pressKeyDown to press and release modifier keys like Control or Shift . By martomo .

and to press and release modifier keys like or . By . [Puppeteer][WebDriver] Added grabElementBoundingRect by PeterNgTr .

by . [Puppeteer] Fixed speed degradation introduced in #1306 with accessibility locators support. See #1953 .

Fixed speed degradation introduced in #1306 with accessibility locators support. See #1953 . Added Config.addHook to add a function that will update configuration on load.

to add a function that will update configuration on load. Started @codeceptjs/configure package with a collection of common configuration patterns.

package with a collection of common configuration patterns. [TestCafe] port's management removed (left on TestCafe itself) by orihomie . Fixes #1934 .

port's management removed (left on TestCafe itself) by . Fixes #1934 . [REST] Headers are no more declared as singleton variable. Fixes #1959

Headers are no more declared as singleton variable. Fixes #1959 Updated Docker image to include run tests in workers with NUMBER_OF_WORKERS env variable. By PeterNgTr .

[Puppeteer] Fixed Puppeteer 1.20 support by davertmik

Fixed Puppeteer 1.20 support by Fixed run-workers to run with complex configs. See #1887 by nitschSB

to run with complex configs. See #1887 by Added --suites option to run-workers to split suites by workers (tests of the same suite goes to teh same worker). Thanks nitschSB .

option to to split suites by workers (tests of the same suite goes to teh same worker). Thanks . Added a guide on Email Testing .

. [retryFailedStepPlugin] Improved to ignore wait* steps and others. Also added option to ignore this plugin per test bases. See updated documentation . By davertmik

Improved to ignore wait* steps and others. Also added option to ignore this plugin per test bases. See updated documentation . By Fixed using PageObjects as classes by Vorobeyko . See #1896

. See #1896 [WebDriver] Fixed opening more than one tab. See #1875 by jplegoff . Fixes #1874

Fixed opening more than one tab. See #1875 by . Fixes #1874 Fixed #1891 when I.retry() affected retries of next steps. By davertmik

[MockRequest] Polly helper was renamed to MockRequest.

Polly helper was renamed to MockRequest. [MockRequest][WebDriver] Mocking requests is now available in WebDriver. Thanks radhey1851

is now available in WebDriver. Thanks [Puppeteer] Ensure configured user agent and/or window size is applied to all pages. See #1862 by martomo

Ensure configured user agent and/or window size is applied to all pages. See #1862 by Improve handling of xpath locators with round brackets by nitschSB . See #1870

. See #1870 Use WebDriver capabilities config in wdio plugin. #1869 by quekshuy

Parallel testing by workers introduced by VikalpP and davertmik . Use run-workers command as faster and simpler alternative to run-multiple . Requires NodeJS v12

# run all tests in parallel using 3 workers npx codeceptjs run-workers 3

[GraphQL][GraphQLDataFactory] Helpers for data management over GraphQL APIs added. By radhey1851 . Learn how to use GraphQL helper to access GarphQL API And how to combine it with GraphQLDataFactory to generate and persist test data.

APIs added. By . Updated to use Mocha 6 . See #1802 by elukoyanov

. See #1802 by 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 for more details.

npx codeceptjs dry-run

[Appium] Optimization when clicking, searching for fields by accessibility id. See #1777 by gagandeepsingh26

Optimization when clicking, searching for fields by accessibility id. See #1777 by [TestCafe] Fixed switchTo by KadoBOT

Fixed by [WebDriver] Added geolocation actions by PeterNgTr grabGeoLocation() setGeoLocation()

Added geolocation actions by [Polly] Check typeof arguments for mock requests by VikalpP . Fixes #1815

Check typeof arguments for mock requests by . Fixes #1815 CLI improvements by 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

by Fixed element position bug in locator builder. See #1829 by AnotherAnkor

by Various TypeScript typings updates by elukoyanov and Vorobeyko

and Added event.step.comment event for all comment steps like I.say or gherking steps.

[WebDriver] A dedicated guide written.

A dedicated guide written. [TestCafe] A dedicated guide written.

A dedicated guide written. [Puppeteer] A chapter on mocking written

A chapter on mocking written [Puppeteer][Nightmare][TestCafe] Window mode is enabled by default on codeceptjs init .

. [TestCafe] Actions implemented by hubidu grabPageScrollPosition scrollPageToTop scrollPageToBottom scrollTo switchTo

Actions implemented by Intellisense improvements. Renamed tsconfig.json to jsconfig.json on init. Fixed autocompletion for Visual Studio Code.

to on init. Fixed autocompletion for Visual Studio Code. [Polly] Take configuration values from Puppeteer. Fix #1766 by VikalpP

Take configuration values from Puppeteer. Fix #1766 by [Polly] Add preconditions to check for puppeteer page availability by VikalpP . Fixes #1767

Add preconditions to check for puppeteer page availability by . Fixes #1767 [WebDriver] Use filename for uploadFile by VikalpP . See #1797

Use filename for by . See #1797 [Puppeteer] Configure speed of input with pressKeyDelay option. By hubidu

Configure speed of input with option. By Fixed recursive loading of support objects by davertmik .

. Fixed support object definitions in steps.d.ts by johnyb . Fixes #1795

. Fixes #1795 Fixed Data().Scenario().injectDependencies() is not a function by andrerleao

is not a function by Fixed crash when using xScenario & Scenario.skip with tag by VikalpP . Fixes #1751

. Fixes #1751 Dynamic configuration of helpers can be performed with async function. See #1786 by cviejo

by Added TS definitions for internal objects by Vorobeyko

BDD improvements: Fix for snippets command with a .feature file that has special characters by asselin Fix --path option on gherkin:snippets command by asselin . See #1790 Added --feature option to gherkin:snippets to enable creating snippets for a subset of .feature files. See #1803 by asselin .

Fixed: dynamic configs not reset after test. Fixes #1776 by cviejo .

EXPERIMENTAL TestCafe helper introduced. TestCafe allows to run cross-browser tests it its own very fast engine. Supports all browsers including mobile. Thanks to hubidu for implementation! Please test it and send us feedback.

helper introduced. TestCafe allows to run cross-browser tests it its own very fast engine. Supports all browsers including mobile. Thanks to for implementation! Please test it and send us feedback. [Puppeteer] Mocking requests enabled by introducing Polly.js helper . Thanks VikalpP

I . mockRequest ( 'GET' , '/api/users' , 200 ) ; I . mockRequest ( 'POST' , '/users' , { user : { name : 'fake' } } ) ;

EXPERIMENTAL [Puppeteer] Firefox support introduced by ngadiyak , see #1740

Firefox support introduced by , see #1740 [stepByStepReportPlugin] use md5 hash to generate reports into unique folder. Fix #1744 by chimurai

use md5 hash to generate reports into unique folder. Fix #1744 by 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 by Vorobeyko Bugfix: If value in config has falsy value then multiple config does not overwrite original value. #1756 by LukoyanovE

(parallel execution) improvements: Fixed hooks broken in 2.1.5 by Vorobeyko

Fix references to support objects when using Dependency Injection. Fix by johnyb . See #1701

. See #1701 Fix dynamic config applied for multiple helpers by VikalpP #1743

EXPERIMENTAL Wix Detox support introduced as standalone helper. Provides a faster alternative to Appium for mobile testing.

Wix Detox support 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

file. By Fixed hanging error handler inside scenario. See #1721 by haily-lgc .

by . Fixed by Vorobeyko : tests did not fail when an exception was raised in async bootstrap.

: tests did not fail when an exception was raised in async bootstrap. [WebDriver] Added window control methods by emmonspired grabAllWindowHandles returns all window handles grabCurrentWindowHandle returns current window handle switchToWindow switched to window by its handle

Added window control methods by [Appium] Fixed using host as configuration by trinhpham

Fixed using as configuration by Fixed run-multiple command when tests config option is undefined (in Gherkin scenarios). By gkushang .

command when config option is undefined (in Gherkin scenarios). By . German translation introduced by hubidu

[WebDriver][Puppeteer][Protractor][Nightmare] A11y locator support introduced by Holorium . Clickable elements as well as fields can be located by following attributes: aria-label title aria-labelledby

. Clickable elements as well as fields can be located by following attributes: [Puppeteer] Added support for React locators. New React Guide added.

Added support for React locators. [Puppeteer] Deprecated downloadFile

Deprecated [Puppeteer] Introduced handleDownloads replacing downloadFile

Introduced replacing [puppeteerCoverage plugin] Fixed path already exists error by seta-tuha .

. Fixed 'ERROR: ENAMETOOLONG' creating directory names in run-multiple with long config. By artvinn

with long config. By [REST] Fixed url autocompletion combining base and relative paths by LukoyanovE

Fixed url autocompletion combining base and relative paths by [Nightmare][Protractor] uncheckOption method introduced by PeterNgTr

method introduced by [autoLogin plugin] Enable to use without await by tsuemura

by [Puppeteer] Fixed UnhandledPromiseRejectionWarning: "Execution context was destroyed... by adrielcodeco

Fixed by [WebDriver] Keep browser window dimensions when starting a new session by spiroid

Keep browser window dimensions when starting a new session by Replace Ghekrin plceholders with values in files that combine a scenerio outline and table by medtoure18 .

. Added Documentation to locate elements in React Native apps. By DimGun .

apps. By . Adding optional path parameter to bdd:snippets command to append snippets to a specific file. By cthorsen31 .

parameter to command to append snippets to a specific file. By . Added optional output parameter to def command by LukoyanovE .

parameter to command by . [Puppeteer] Added grabDataFromPerformanceTiming by PeterNgTr .

Added by . axios updated to 0.19.0 by SteveShaffer

by TypeScript defitions updated by LukoyanovE . Added secret and inject function.

Fixed autoLogin plugin to inject login function

function Fixed using toString() in DataTablewhen it is defined by tsuemura

Fixed inject to load objects recursively.

to load objects recursively. Fixed TypeScript definitions for locators by LukoyanovE

EXPERIMENTAL [WebDriver] ReactJS locators support with webdriverio v5.8+:

I . click ( { react : 'component-name' , props : { } , state : { } } ) ; I . seeElement ( { react : 'component-name' , props : { } , state : { } } ) ;

Do not retry within and session calls inside retryFailedStep plugin. Fix by tsuemura

Added global inject() function to require actor and page objects using dependency injection. Recommended to use in page objects, step definition files, support objects:

const I = actor ( ) ; const myPage = require ( '../page/myPage' ) ; const { I , myPage } = inject ( ) ;

Added global secret function to fill in sensitive data. By RohanHart :

I . fillField ( 'password' , secret ( '123456' ) ) ;

wdioPlugin Added a plugin to support webdriverio services including selenium-standalone, sauce, browserstack, etc. Sponsored by GSasu

Added a plugin to including selenium-standalone, sauce, browserstack, etc. [Appium] Fixed swipe* methods by PeterNgTr

Fixed methods by BDD Gherkin Improvements: Implemented run-multiple for feature files. Sponsored by GSasu Added --features and --tests options to run-multiple . Sponsored by GSasu Implemented Before and After hooks in step definitions

Fixed running tests by absolute path. By batalov .

. Enabled the adding screenshot to failed test for moch-junit-reporter by PeterNgTr .

. [Puppeteer] Implemented uncheckOption and fixed behavior of checkOption by aml2610

Implemented and fixed behavior of by [WebDriver] Fixed seeTextEquals on empty strings by PeterNgTr

Fixed on empty strings by [Puppeteer] Fixed launch with browserWSEndpoint config by ngadiyak .

Fixed launch with config by . [Puppeteer] Fixed switching back to main window in multi-session mode by davertmik .

Fixed switching back to main window in multi-session mode by . [autoLoginPlugin] Fixed using async functions for auto login by nitschSB

This release was partly sponsored by GSasu . Thanks for the support! Do you want to improve this project? [Learn more about sponsorin CodeceptJS

[Puppeteer] Added downloadFile action by PeterNgTr .

Use it with FileSystem helper to test availability of a file:

const fileName = await I . downloadFile ( 'a.file-link' ) ; I . amInPath ( 'output' ) ; I . seeFile ( fileName ) ;

Actions amInPath and seeFile are taken from FileSystem helper

[Puppeteer] Fixed autoLogin plugin with Puppeteer by davertmik

Fixed plugin with Puppeteer by [WebDriver] seeInField should throw error if element has no value attrubite. By PeterNgTr

should throw error if element has no value attrubite. By [WebDriver] Fixed seeTextEquals passes for any string if element is empty by PeterNgTr .

Fixed passes for any string if element is empty by . [WebDriver] Internal refctoring to use el.isDisplayed to match latest webdriverio implementation. Thanks to LukoyanovE

Internal refctoring to use to match latest webdriverio implementation. Thanks to [allure plugin] Add ability enable screenshotDiff plugin by Vorobeyko

by [Appium] Fixed locator.stringify call by LukoyanovE

[WebDriver][Protractor][Nightmare] rightClick method implemented (fixed) in a standard way. By davertmik

method implemented (fixed) in a standard way. By [WebDriver] Updated WebDriver API calls in helper. By PeterNgTr

Updated WebDriver API calls in helper. By [stepByStepReportPlugin] Added screenshotsForAllureReport config options to automatically attach screenshots to allure reports. By PeterNgTr

Added config options to automatically attach screenshots to allure reports. By [allurePlugin] Added addLabel method by Vorobeyko

Added method by Locator Builder: fixed withChild and withDescendant to match deep nested siblings by Vorobeyko .

Introduced Custom Locator Strategies .

. Added Visual Testing Guide by puneet0191 and MitkoTschimev .

by and . [Puppeteer] puppeteerCoverage plugin added to collect code coverage in JS. By dvillarama

plugin added to collect code coverage in JS. By Make override option in run-multiple to respect the generated overridden config by kinyat

to respect the generated overridden config by Fixed deep merge for container.append() . Introduced lodash.merge() . By Vorobeyko

. Introduced . By Fixed saving screenshot on Windows by

Fix errors on using interactive shell with Allure plugin by tsuemura

Fixed using dynamic injections with Scenario().injectDependencies by tsemura

by [WebDriver][Puppeteer][Nightmare][Protractor] Fixed url protocol detection for non-http urls by LukoyanovE

[WebDriver] Enabled compatibility with stepByStepReport by tsuemura

Enabled compatibility with by [WebDriver] Fixed grabHTMLFrom to return innerHTML value by Holorium . Fixed compatibility with WebDriverIO.

Fixed to return innerHTML value by . Fixed compatibility with WebDriverIO. [WebDriver] grabHTMLFrom to return one HTML vlaue for one element matched, array if multiple elements found by davertmik .

to return one HTML vlaue for one element matched, array if multiple elements found by . [Nightmare] Added grabHTMLFrom by davertmik

Added by Fixed bootstrapAll and teardownAll launch with path as argument by LukoyanovE

and launch with path as argument by Fixed bootstrapAll and teardownAll calls from exported object by LukoyanovE

and calls from exported object by [WebDriver] Added possibility to define conditional checks interval for waitUntil by LukoyanovE

Added possibility to define conditional checks interval for by Fixed storing current data in data driven tests in a test object. By Vorobeyko

[WebDriver] Fixed hostname config option overwrite when setting a cloud provider. By LukoyanovE

Fixed config option overwrite when setting a cloud provider. By [WebDriver] dragSlider method implemented by DavertMik

method implemented by [WebDrover] Fixed scrollTo to use new webdriverio API by PeterNgTr

Fixed to use new webdriverio API by Added Japanese translation file by tsemura

Added Locator.withDescendant() method to find an element which contains a descendant (child, grandchild) by Vorobeyko

method to find an element which contains a descendant (child, grandchild) by [WebDriver] Fixed configuring capabilities for Selenoid and IE by Vorobeyko

Fixed configuring capabilities for Selenoid and IE by [WebDriver] Restore original window size when taking full size screenshot by tsuemura

Restore original window size when taking full size screenshot by Enabled throws() , fails() , retry() , timeout() , config() functions for data driven tests. By jjm409

[Broken Release]

[WebDriver][Protractor][Nightmare][Puppeteer] grabAttributeFrom returns an array when multiple elements matched. By PeterNgTr

returns an array when multiple elements matched. By [autoLogin plugin] Fixed merging users config by nealfennimore

[autoDelay plugin] Added WebDriver to list of supported helpers by mattin4d

[Appium] Fixed using locators in waitForElement , waitForVisible , waitForInvisible . By eduardofinotti

Fixed using locators in , , . By [allure plugin] Add tags to allure reports by Vorobeyko

[allure plugin] Add skipped tests to allure reports by Vorobeyko

Fixed Logged Test name | [object Object] when used Data().Scenario(). By Vorobeyko

when used Data().Scenario(). By Fixed Data().only.Scenario() to run for all datasets. By Vorobeyko

[WebDriver] attachFile to work with hidden elements. Fixed in #1460 by tsuemura

autoLogin plugin added. Allows to log in once and reuse browser session. When session expires - automatically logs in again. Can persist session between runs by saving cookies to file.

added. Allows to log in once and reuse browser session. When session expires - automatically logs in again. Can persist session between runs by saving cookies to file. Fixed Maximum stack trace issue in retryFailedStep plugin.

issue in plugin. Added locate() function into the interactive shell.

function into the interactive shell. [WebDriver] Disabled smartWait for interactive shell.

Disabled smartWait for interactive shell. [Appium] Updated methods to use for mobile locators waitForElement waitForVisible waitForInvisible

Updated methods to use for mobile locators Helper and page object generators no longer update config automatically. Please add your page objects and helpers manually.

[Puppeteer] Improved handling of connection with remote browser using Puppeteer by martomo

Improved handling of connection with remote browser using Puppeteer by [WebDriver] Updated to webdriverio 5.2.2 by martomo

Updated to webdriverio 5.2.2 by Interactive pause improvements by davertmik Disable retryFailedStep plugin in in interactive mode Removes Interface: parseInput while in interactive pause

[ApiDataFactory] Improvements added fetchId config option to override id retrieval from payload added onRequest config option to update request in realtime added returnId config option to return ids of created items instead of items themvelves added headers config option to override default headers. added a new chapter into DataManagement

Improvements [REST] Added onRequest config option

Fixed creating project with codecept init .

. Fixed error while installing [email protected]

Added code beautifier for generated configs.

[WebDriver] Updated to webdriverio 5.1.0

[WebDriver] Breaking Change. Updated to webdriverio v5. New helper WebDriver helper introduced. Upgrade plan : Install latest webdriverio npm install [email protected] --save Replace WebDriverIO => WebDriver helper name in config. Read webdriverio changelog . If you were using webdriver API in your helpers, upgrade accordingly. We made WebDriver helper to be compatible with old API so no additional changes required. If you face issues using webdriverio v5 you can still use webdriverio 4.x and WebDriverIO helper. Make sure you have webdriverio: ^4.0 installed. Known issues: attachFile doesn't work with proxy server.

[Appium] Breaking Change. Updated to use webdriverio v5 as well. See upgrade plan ↑

[REST] Breaking Change. Replaced unirest library with axios . Upgrade plan : Refer to axios API . If you were using unirest requests/responses in your tests change them to axios format.

Breaking Change. Generators support in tests removed. Use async/await in your tests

Using codecept.conf.js as default configuration format

Fixed "enametoolong" error when saving screenshots for data driven tests by PeterNgTr

Updated NodeJS to 10 in Docker image

[Pupeteer] Add support to use WSEndpoint. Allows to execute tests remotely. [See #1350 ] by gabrielcaires (https://github.com/codeceptjs/CodeceptJS/pull/1350)

In interactive shell [Enter] goes to next step. Improvement by PeterNgTr .

I.say accepts second parameter as color to print colorful comments. Improvement by PeterNgTr .

I . say ( 'This is red' , 'red' ) ; I . say ( 'This is blue' , 'blue' ) ; I . say ( 'This is by default' ) ;

Fixed allure reports for multi session testing by PeterNgTr

Fixed allure reports for hooks by PeterNgTr

[Puppeteer] dragSlider action added by PeterNgTr

action added by [Puppeteer] Fixed opening browser in shell mode by allenhwkim

Fixed opening browser in shell mode by [Puppeteer] Fixed making screenshot on additional sessions by PeterNgTr . Fixes #1266

Fixed making screenshot on additional sessions by . Fixes #1266 Added --invert option to run-multiple command by LukoyanovE

option to command by Fixed steps in Allure reports by PeterNgTr

Add option output to customize output directory in stepByStepReport plugin . By fpsthirty

to customize output directory in stepByStepReport plugin . By Changed type definition of PageObjects to get auto completion by rhicu

Fixed steps output for async/arrow functions in CLI by LukoyanovE . See #1329

Add require param to main config. Allows to require Node modules before executing tests. By LukoyanovE . For example: Use ts-node/register to register TypeScript parser Use should to register should-style assertions

param to main config. Allows to require Node modules before executing tests. By . For example:

"require" : [ "ts-node/register" , "should" ]

[WebDriverIO] Fix timeouts definition to be compatible with W3C drivers. By LukoyanovE

Fix timeouts definition to be compatible with W3C drivers. By Fixed: exception in Before block w/ Mocha causes test not to report failure. See #1292 by PeterNgTr

by Command run-parallel now accepts --override flag. Thanks to ClemCB

now accepts flag. Thanks to Fixed Allure report with Before/BeforeSuite/After/AfterSuite steps. By PeterNgTr

Added RUN_MULTIPLE env variable to Docker config . Allows to run tests in parallel inside a container. Thanks to PeterNgTr

env variable to Docker config . Allows to run tests in parallel inside a container. Thanks to [Mochawesome] Fixed showing screenshot on failure. Fix by PeterNgTr

Fixed showing screenshot on failure. Fix by Fixed running tests filtering by tag names defined via Scenario.tag()

autoDelay plugin added. Adds tiny delay before and after an action so the page could react to actions performed.

added. Adds tiny delay before and after an action so the page could react to actions performed. [Puppeteer] improvements by luismanuel001 click no longer waits for navigation clickLink method added. Performs a click and waits for navigation.

improvements by Bootstrap scripts to be started only for run command and ignored on list , def , etc. Fix by LukoyanovE

Groups renamed to Tags for compatibility with BDD layer

Test and suite objects to contain tags property which can be accessed from internal API

Fixed adding tags for Scenario Outline in BDD

Added tag() method to ScenarioConfig and FeatureConfig:

Scenario ( 'update user profile' , ( ) => { } ) . tag ( '@slow' ) ;

Fixed attaching Allure screenshot on exception. Fix by DevinWatson

Improved type definitions for custom steps. By Akxe

Fixed setting multiple.parallel.chunks as environment variable in config. See #1238 by ngadiyak

Fixed setting config for plugins (inclunding setting outputDir for allure) by jplegoff

Added plugins option to run-multiple

option to Minor output fixes

Added Type Definition for Helper class by Akxe

Fixed extracing devault extension in generators by Akxe

Allure Reporter Integration . Full inegration with Allure Server. Get nicely looking UI for tests,including steps, nested steps, and screenshots. Thanks Natarajan Krishnamurthy krish for sponsoring this feature.

. Full inegration with Allure Server. Get nicely looking UI for tests,including steps, nested steps, and screenshots. Thanks for sponsoring this feature. Plugins API introduced . Create custom plugins for CodeceptJS by hooking into event dispatcher, and using promise recorder.

. Create custom plugins for CodeceptJS by hooking into event dispatcher, and using promise recorder. Official CodeceptJS plugins added : stepByStepReport - creates nicely looking report to see test execution as a slideshow . Use this plugin to debug tests in headless environment without recording a video. allure - Allure reporter added as plugin. screenshotOnFail - saves screenshot on fail. Replaces similar functionality from helpers. retryFailedStep - to rerun each failed step.

: [Puppeteer] Fix executeAsyncScript unexpected token by jonathanz

Fix unexpected token by Added override option to run-multiple command by svarlet

Added initGlobals() function to API of custom runner .

Interactve Shell improvements for pause() Added next command for step-by-step debug when using pause() . Use After(pause); in a to start interactive console after last step.

[Puppeteer] Updated to Puppeteer 1.6.0 Added waitForRequest to wait for network request. Added waitForResponse to wait for network response.

Updated to Puppeteer 1.6.0 Improved TypeScript definitions to support custom steps and page objects. By xt1

Fixed XPath detection to accept XPath which starts with ./ by BenoitZugmeyer

BDD-Gherkin: Fixed running async steps.

[Puppeteer] Fixed process hanging for 30 seconds. Page loading timeout default via getPageTimeout set 0 seconds.

Fixed process hanging for 30 seconds. Page loading timeout default via set 0 seconds. [Puppeteer] Improved displaying client-side console messages in debug mode.

Improved displaying client-side console messages in debug mode. [Puppeteer] Fixed closing sessions in restart:false mode for multi-session mode.

Fixed closing sessions in mode for multi-session mode. [Protractor] Fixed grabPopupText to not throw error popup is not opened.

Fixed to not throw error popup is not opened. [Protractor] Added info on using 'direct' Protractor driver to helper documentation by xt1 .

Added info on using 'direct' Protractor driver to helper documentation by . [WebDriverIO] Added a list of all special keys to WebDriverIO helper by davertmik and xt1 .

Added a list of all special keys to WebDriverIO helper by and . Improved TypeScript definitions generator by xt1

Cucumber-style BDD. Introduced Gherkin support . Thanks to David Vins and Omedym for sponsoring this feature.

Basic feature file:

Feature: Business rules In order to achieve my goals As a persona I want to be able to interact with a system Scenario: do anything in my life Given I need to open Google

Step definition:

const I = actor ( ) ; Given ( 'I need to open Google' , ( ) => { I . amOnPage ( 'https://google.com' ) ; } ) ;

Run it with --features --steps flag:

codeceptjs run --steps --features

Brekaing Chnage run command now uses relative path + test name to run exactly one test file.

Previous behavior (removed):

codeceptjs run basic_test.js

Current behavior (relative path to config + a test name)

codeceptjs run tests/basic_test.js

This change allows using auto-completion when running a specific test.

Nested steps output enabled for page objects. to see high-level steps only run tests with --steps flag. to see PageObjects implementation run tests with --debug .

PageObjects simplified to remove _init() extra method. Try updated generators and see updated guide .

extra method. Try updated generators and see updated guide . [Puppeteer] Multiple sessions enabled. Requires Puppeteer >= 1.5

Multiple sessions enabled. Requires Puppeteer >= 1.5 [Puppeteer] Stability improvement. Waits for for load event on page load. This strategy can be changed in config: waitForNavigation config option introduced. Possible options: load , domcontentloaded , networkidle0 , networkidle2 . See Puppeteer API getPageTimeout config option to set maximum navigation time in milliseconds. Default is 30 seconds. waitForNavigation method added. Explicitly waits for navigation to be finished.

Stability improvement. Waits for for event on page load. This strategy can be changed in config: [WebDriverIO][Protractor][Puppeteer][Nightmare] Possible BC grabTextFrom unified. Return a text for single matched element and an array of texts for multiple elements.

unified. Return a text for single matched element and an array of texts for multiple elements. [Puppeteer]Fixed resizeWindow by sergejkaravajnij

by [WebDriverIO][Protractor][Puppeteer][Nightmare] waitForFunction added. Waits for client-side JavaScript function to return true by GREENpoint .

added. Waits for client-side JavaScript function to return true by . [Puppeteer] waitUntil deprecated in favor of waitForFunction .

deprecated in favor of . Added filter function to DataTable.

function to DataTable. Send non-nested array of files to custom parallel execution chunking by mikecbrant .

. Fixed invalid output directory path for run-multiple by mikecbrant .

. [WebDriverIO] waitUntil timeout accepts time in seconds (as all other wait* functions). Fix by truesrc .

timeout accepts time in seconds (as all other wait* functions). Fix by . [Nightmare] Fixed grabNumberOfVisibleElements to work similarly to seeElement . Thx to stefanschenk and Jinbo Jinboson.

Fixed to work similarly to . Thx to and Jinbo Jinboson. [Protractor] Fixed alert handling error with message 'no such alert' by truesrc .

Fixed running I.retry() on multiple steps.

on multiple steps. Fixed parallel execution wih chunks.

[Puppeteer] Fixed grabNumberOfVisibleElements to return 0 instead of throwing error if no elements are found.

[WebDriverIO][Protractor]Multiple Sessions . Run several browser sessions in one test. Introduced session command, which opens additional browser window and closes it after a test.

Scenario ( 'run in different browsers' , ( I ) => { I . amOnPage ( '/hello' ) ; I . see ( 'Hello!' ) ; session ( 'john' , ( ) => { I . amOnPage ( '/bye' ) ; I . dontSee ( 'Hello' ) ; I . see ( 'Bye' ) ; } ) ; I . see ( 'Hello' ) ; } ) ;

Parallel Execution by sveneisenschmidt . Run tests in parallel specifying number of chunks:

"multiple" : { "parallel" : { "chunks" : 2 , "browsers" : [ "chrome" ] } , }

Locator Builder . Write complex locators with simplest API combining CSS and XPath:

locate ( '//table' ) . find ( 'tr' ) . at ( 2 ) . find ( 'a' ) . withText ( 'Edit' ) ;

Dynamic configuration to update helpers config per test or per suite.

to update helpers config per test or per suite. Added event.test.finished which fires synchronously for both failed and passed tests.

which fires synchronously for both failed and passed tests. [WebDriverIO][Protractor][Nightmare][Puppeteer] Full page screenshots on failure disabled by default. See [issue#1600 . You can enabled them with fullPageScreenshots: true , however they may work unstable in Selenium.

. You can enabled them with , however they may work unstable in Selenium. within blocks can return values. See updated documentation .

blocks can return values. See updated documentation . Removed doublt call to _init in helpers. Fixes issue #1036

in helpers. Fixes issue #1036 Added scenario and feature configuration via fluent API:

Feature ( 'checkout' ) . timeout ( 3000 ) . retry ( 2 ) ; Scenario ( 'user can order in firefox' , ( I ) => { } ) . config ( { browser : 'firefox' } ) . timeout ( 20000 ) ; Scenario ( 'this test should throw error' , ( I ) => { } ) . throws ( new Error ) ;

Fixed generating TypeScript definitions with codeceptjs def .

. Added Chinese translation ("zh-CN" and "zh-TW") by TechQuery .

. Fixed running tests from a different folder specified by -c option.

option. [Puppeteer] Added support for hash handling in URL by gavoja .

Added support for hash handling in URL by . [Puppeteer] Fixed setting viewport size by gavoja . See Puppeteer issue

Docker Image updateed. See updated reference : codeceptjs package is mounted as /codecept insde container tests directory is expected to be mounted as /tests codeceptjs global runner added (symlink to /codecept/bin/codecept.js )

: [Protractor] Functions added by reubenmiller : _locateCheckable (only available from other helpers) _locateClickable (only available from other helpers) _locateFields (only available from other helpers) acceptPopup cancelPopup dragAndDrop grabBrowserLogs grabCssPropertyFrom grabHTMLFrom grabNumberOfVisibleElements grabPageScrollPosition (new) rightClick scrollPageToBottom scrollPageToTop scrollTo seeAttributesOnElements seeCssPropertiesOnElements seeInPopup seeNumberOfVisibleElements switchTo waitForEnabled waitForValue waitInUrl waitNumberOfVisibleElements waitToHide waitUntil waitUrlEquals

Functions added by : [Nightmare] added: grabPageScrollPosition (new) seeNumberOfVisibleElements waitToHide

added: [Puppeteer] added: grabPageScrollPosition (new)

added: [WebDriverIO] added" grabPageScrollPosition (new)

added" [Puppeteer] Fixed running wait* functions without setting sec parameter.

Fixed running wait* functions without setting parameter. [Puppeteer][Protractor] Fixed bug with I.click when using an object selector with the xpath property. By reubenmiller

[WebDriverIO][Protractor][Nightmare][Puppeteer] Fixed I.switchTo(0) and I.scrollTo(100, 100) api inconsistencies between helpers.

[Protractor] Fixing bug when seeAttributesOnElements and seeCssPropertiesOnElement were incorrectly passing when the attributes/properties did not match by reubenmiller

Fixing bug when and were incorrectly passing when the attributes/properties did not match by [WebDriverIO] Use inbuilt dragAndDrop function (still doesn't work in Firefox). By reubenmiller

Use inbuilt dragAndDrop function (still doesn't work in Firefox). By Support for Nightmare 3.0

Enable glob patterns in config.test / Codecept.loadTests by sveneisenschmidt

/ by Enable overriding of config.tests for run-multiple by sveneisenschmidt

Added support for async I => functions syntax in Scenario by APshenkin

functions syntax in Scenario by [WebDriverIO][Protractor][Puppeteer][Nightmare] waitForInvisible waits for element to hide or to be removed from page. By reubenmiller

waits for element to hide or to be removed from page. By [Protractor][Puppeteer][Nightmare] Added grabCurrentUrl function. By reubenmiller

function. By [WebDriverIO] grabBrowserUrl deprecated in favor of grabCurrentUrl to unify the API.

deprecated in favor of to unify the API. [Nightmare] Improved element visibility detection by reubenmiller

Improved element visibility detection by [Puppeteer] Fixing function calls when clearing the cookies and localstorage. By reubenmiller

Fixing function calls when clearing the cookies and localstorage. By [Puppeteer] Added waitForEnabled , waitForValue and waitNumberOfVisibleElements methods by reubenmiller

Added , and methods by [WebDriverIO] Fixed grabNumberOfVisibleElements to return 0 when no visible elements are on page. By michaltrunek

Fixed to return 0 when no visible elements are on page. By Helpers API improvements (by reubenmiller ) _passed hook runs after a test passed successfully _failed hook runs on a failed test

) Hooks API. New events added by reubenmiller : event.all.before - executed before all tests event.all.after - executed after all tests event.multiple.before - executed before all processes in run-multiple event.multiple.after - executed after all processes in run-multiple

: Multiple execution

Allow AfterSuite and After test hooks to be defined after the first Scenario. By reubenmiller

and test hooks to be defined after the first Scenario. By [Nightmare] Prevent I.amOnpage navigation if the browser is already at the given url

Prevent navigation if the browser is already at the given url Multiple-Run: Added new bootstrapAll and teardownAll hooks to be executed before and after all processes

and hooks to be executed before and after all processes codeceptjs def command accepts --config option. By reubenmiller

[Puppeteer] Rerun steps failed due to "Cannot find context with specified id" Error.

Rerun steps failed due to "Cannot find context with specified id" Error. Added syntax to retry a single step:

I . retry ( ) . see ( 'Hello' ) ; I . retry ( 3 ) . see ( 'Hello' ) ; I . retry ( { retries : 3 , minTimeout : 100 } ) . see ( 'Hello' ) ; I . retry ( { retries : 3 , maxTimeout : 3000 } ) . see ( 'Hello' ) ; I . retry ( { retries : 2 , when : err => err . message === 'Node not visible' } ) . seeElement ( '#user' ) ;

Scenario().injectDependencies added to dynamically add objects into DI container by Apshenkin . See Dependency Injection section in PageObjects .

added to dynamically add objects into DI container by . See Dependency Injection section in PageObjects . Fixed using async/await functions inside within

[WebDriverIO][Protractor][Puppeteer][Nightmare] waitUntilExists deprecated in favor of waitForElement

in favor of [WebDriverIO][Protractor] waitForStalenessOf deprecated in favor of waitForDetached

in favor of [WebDriverIO][Protractor][Puppeteer][Nightmare] waitForDetached added

added [Nightmare] Added I.seeNumberOfElements() by pmoncadaisla

Added by [Nightmare] Load blank page when starting nightmare so that the .evaluate function will work if _failed/saveScreenshot is triggered by reubenmiller

Load blank page when starting nightmare so that the .evaluate function will work if _failed/saveScreenshot is triggered by Fixed using plain arrays for data driven tests by reubenmiller

[Puppeteer] Use default tab instead of opening a new tab when starting the browser by reubenmiller

Use default tab instead of opening a new tab when starting the browser by [Puppeteer] Added grabNumberOfTabs function by reubenmiller

Added function by [Puppeteer] Add ability to set user-agent by abidhahmed

Add ability to set user-agent by [Puppeteer] Add keepCookies and keepBrowserState abidhahmed

Add keepCookies and keepBrowserState [Puppeteer] Clear value attribute instead of innerhtml for TEXTAREA by reubenmiller

Clear value attribute instead of innerhtml for TEXTAREA by [REST] fixed sending string payload by michaltrunek

fixed sending string payload by Fixed unhandled rejection in async/await tests by APshenkin

Removed yarn call in package.json

call in package.json Fixed console.log in Puppeteer by othree

in Puppeteer by [Appium] runOnAndroid and runOnIOS can receive a function to check capabilities dynamically:

I . runOnAndroid ( caps => caps . platformVersion >= 7 , ( ) => { } ) ;

[Puppeteer] +25 Functions added by reubenmiller _locateCheckable _locateClickable _locateFields closeOtherTabs dragAndDrop grabBrowserLogs grabCssPropertyFrom grabHTMLFrom grabNumberOfVisibleElements grabSource rightClick scrollPageToBottom scrollPageToTop scrollTo seeAttributesOnElements seeCssPropertiesOnElements seeInField seeNumberOfElements seeNumberOfVisibleElements seeTextEquals seeTitleEquals switchTo waitForInvisible waitInUrl waitUrlEquals

+25 Functions added by [Protractor] +8 functions added by reubenmiller closeCurrentTab grabSource openNewTab seeNumberOfElements seeTextEquals seeTitleEquals switchToNextTab switchToPreviousTab

+8 functions added by [Nightmare] waitForInvisible added by reubenmiller

added by [Puppeteer] Printing console.log information in debug mode.

Printing console.log information in debug mode. [Nightmare] Integrated with nightmare-har-plugin by mingfang. Added enableHAR option. Added HAR functions: grabHAR saveHAR resetHAR

Integrated with by mingfang. Added option. Added HAR functions: [WebDriverIO] Fixed execution stability for parallel requests with Chromedriver

Fixed execution stability for parallel requests with Chromedriver [WebDriverIO] Fixed resizeWindow when resizing to 'maximize' by reubenmiller

Fixed resizeWindow when resizing to 'maximize' by [WebDriverIO] Fixing resizing window to full screen when taking a screenshot by reubenmiller

[Puppeteer] Upgraded to Puppeteer 1.0

Upgraded to Puppeteer 1.0 Added grep option to config to set default matching pattern for tests.

option to config to set default matching pattern for tests. [Puppeteer] Added acceptPopup , cancelPopup , seeInPopup and grabPopupText functions by reubenmiller

Added , , and functions by [Puppeteer] within iframe and nested iframe support added by reubenmiller

iframe and nested iframe support added by [REST] Added support for JSON objects since payload (as a JSON) was automatically converted into "URL query" type of parameter by Kalostrinho

Added support for JSON objects since payload (as a JSON) was automatically converted into "URL query" type of parameter by [REST] Added resetRequestHeaders method by Kalostrinho

Added method by [REST] Added followRedirect option and amFollowingRequestRedirects / amNotFollowingRequestRedirects methods by Kalostrinho

Added option and / methods by [WebDriverIO] uncheckOption implemented by brunobg

implemented by [WebDriverIO] Added grabBrowserUrl by Kalostrinho

Added by Add ability to require helpers from node_modules by APshenkin

Added --profile option to run-multiple command by jamie-beck

option to command by Custom output name for multiple browser run by tfiwm

Fixed passing data to scenarios by KennyRules

[WebDriverIO] fixed waitForInvisible by Kporal

Major update to CodeceptJS. NodeJS v 8.9.1 is now minimal Node version required. This brings native async-await support to CodeceptJS. It is recommended to start using await for tests instead of generators:

async ( ) => { I . amOnPage ( '/page' ) ; const url = await I . grabTextFrom ( '.nextPage' ) ; I . amOnPage ( url ) ; }

Thanks to @Apshenkin for implementation. Also, most helpers were refactored to use async-await. This made our code simpler. We hope that this encourages more users to send pull requests!

We also introduced strict ESLint policies for our codebase. Thanks to @Galkin for that.

[Puppeteer] Helper introduced . Learn how to run tests headlessly with Google Chrome's Puppeteer .

. Learn how to run tests headlessly with Google Chrome's Puppeteer . [SeleniumWebdriver] Helper is deprecated, it is recommended to use Protractor with config option angular: false instead.

Helper is deprecated, it is recommended to use Protractor with config option instead. [WebDriverIO] nested iframe support in the within block by reubenmiller . Example:

within ( { frame : [ '#wrapperId' , '[name=content]' ] } , ( ) => { I . click ( 'Sign in!' ) ; I . see ( 'Email Address' ) ; } ) ; I . see ( 'Nested Iframe test' ) ; I . dontSee ( 'Email Address' ) ; } ) ;

[WebDriverIO] Support for ~ locator to find elements by aria-label . This behavior is similar as it is in Appium and helps testing cross-platform React apps. Example:

< Text accessibilityLabel = " foobar " > CodeceptJS is awesome </ Text >

↑ This element can be located with ~foobar in WebDriverIO and Appium helpers. Thanks to flyskywhy

Allow providing arbitrary objects in config includes by rlewan

[REST] Prevent from mutating default headers by alexashley . See #789

Prevent from mutating default headers by . See #789 [REST] Fixed sending empty helpers with haveRequestHeaders in sendPostRequest . By petrisorionel

Fixed sending empty helpers with in . By Fixed displaying undefined args in output by APshenkin

Fixed NaN instead of seconds in output by APshenkin

Add browser name to report file for multiple-run by trollr

by Mocha updated to 4.x

[WebDriverIO][Protractor][Nightmare] method waitUntilExists implemented by sabau

implemented by Absolute path can be set for output dir by APshenkin . Fix #571 * Data table rows can be ignored by using xadd . By APhenkin

dir by . Fix #571 * Data table rows can be ignored by using . By Added Data(table).only.Scenario to give ability to launch only Data tests. By APhenkin

to give ability to launch only Data tests. By Implemented ElementNotFound error by BorisOsipov .

error by . Added TypeScript compiler / configs to check the JavaScript by KennyRules

[Nightmare] fix executeScript return value by jploskonka

fix executeScript return value by [Nightmare] fixed: err.indexOf not a function when waitForText times out in nightmare by joeypedicini92

fixed: err.indexOf not a function when waitForText times out in nightmare by Fixed: Retries not working when using .only. By APhenkin

Introduced generators support in scenario hooks for BeforeSuite / Before / AfterSuite / After

/ / / [ApiDataFactory] Fixed loading helper; requireg package included.

Fixed loading helper; package included. Fix #485 run-multiple : the first browser-resolution combination was be used in all configurations

: the first browser-resolution combination was be used in all configurations Fixed unique test names: Fixed #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 * Added output for steps in hooks when they fail

Reporters improvements: Allows to execute multiple reporters Added 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 * [Nightmare] Added refresh function by awhanks

improved click on context to match clickable element with a text inside. Fixes #647 * Added function by 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

[Nightmare] Fixed [Wrapped Error] "codeceptjs is not defined" ; Reinjectiing client scripts to a webpage on changes.

Fixed ; Reinjectiing client scripts to a webpage on changes. [Nightmare] Added more detailed error messages for Wait* methods

Added more detailed error messages for methods [Nightmare] Fixed adding screenshots to Mochawesome

Fixed adding screenshots to Mochawesome [Nightmare] Fix unique screenshots names in Nightmare

Fix unique screenshots names in Nightmare Fixed CodeceptJS work with hooks in helpers to finish codeceptJS correctly if errors appears in helpers hooks

Create a new session for next test If selenium grid error received

Create screenshots for failed hooks from a Feature file

Fixed retries option

CodeceptJS hits first stable release. CodeceptJS provides a unified API for web testing for Webdriverio , Protractor , and NightmareJS . Since 1.0 you can also test mobile applications in the similar manner with Appium.

Sample test:

I . seeAppIsInstalled ( "io.super.app" ) ; I . click ( '~startUserRegistrationCD' ) ; I . fillField ( '~email of the customer' , 'Nothing special' ) ) ; I . see ( [email protected]' , '~email of the customer' ) ) ; I . clearField ( '~email of the customer' ) ) ; I . dontSee ( 'Nothing special' , '~email of the customer' ) ) ;

We also introduced two new helpers for data management. Using them you can easily prepare and cleanup data for your tests using public REST API.

Sample test

I . have ( 'user' , { name : 'davert' , password : '123456' } ) ; I . amOnPage ( '/login' ) ; I . fillField ( 'login' , 'davert' ) ; I . fillField ( 'password' , '123456' ) ; I . click ( 'Login' ) ; I . see ( 'Hello, davert' ) ;

Next notable feature is SmartWait for WebDriverIO, Protractor, SeleniumWebdriver. When smartwait option is set, script will wait for extra milliseconds to locate an element before failing. This feature uses implicit waits of Selenium but turns them on only in applicable pieces. For instance, implicit waits are enabled for seeElement but disabled for dontSeeElement

Read more about SmartWait

Minimal NodeJS version is 6.11.1 LTS

Use within command with generators.

command with generators. Data Driven Tests introduced.

introduced. Print execution time per step in --debug mode. #591 by APshenkin

mode. #591 by [WebDriverIO][Protractor][Nightmare] Added disableScreenshots option to disable screenshots on fail by Apshenkin

option to disable screenshots on fail by [WebDriverIO][Protractor][Nightmare] Added uniqueScreenshotNames option to generate unique names for screenshots on failure by Apshenkin

option to generate unique names for screenshots on failure by [WebDriverIO][Nightmare] Fixed click on context; click('text', '#el') will throw exception if text is not found inside #el .

will throw exception if text is not found inside . [WebDriverIO][Protractor][SeleniumWebdriver] SmartWait introduced .

. [WebDriverIO][Protractor][Nightmare]Fixed saveScreenshot for PhantomJS, fullPageScreenshots option introduced by HughZurname #549

for PhantomJS, option introduced by #549 [Appium] helper introduced by APshenkin

helper introduced by [REST] helper introduced by atrevino in #504

helper introduced by in #504 [WebDriverIO][SeleniumWebdriver] Fixed "windowSize": "maximize" for Chrome 59+ version #560 by APshenkin

by [Nightmare] Fixed restarting by APshenkin #581

Fixed restarting by #581 [WebDriverIO] Methods added by APshenkin : grabCssPropertyFrom seeTitleEquals seeTextEquals seeCssPropertiesOnElements seeAttributesOnElements grabNumberOfVisibleElements waitInUrl waitUrlEquals waitForValue waitNumberOfVisibleElements switchToNextTab switchToPreviousTab closeCurrentTab openNewTab refreshPage scrollPageToBottom scrollPageToTop grabBrowserLogs

Methods added by : Use mkdirp to create output directory. #592 by vkramskikh

by [WebDriverIO] Fixed seeNumberOfVisibleElements by BorisOsipov #574

Fixed by #574 Lots of fixes for promise chain by APshenkin #568 Fix #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 [WebDriverIO][Protractor] if restart option is false - close all tabs expect one in _after . 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

#568 Fix TypeError when using babel-node or ts-node on node.js 7+ #586 by vkramskikh

by [Nightmare] fixed usage of _locate

Special thanks to Andrey Pshenkin for his work on this release and the major improvements.

Errors are printed in non-verbose mode. Shows "Selenium not started" and other important errors.

Allowed to set custom test options:

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.

directory to a package. [WebDriverIO][Protractor][SeleniumWebdriver] Bugfix: cleaning session when restart: false by tfiwm #519

by #519 [WebDriverIO][Protractor][Nightmare] Added second parameter to saveScreenshot to allow a full page screenshot. By HughZurname

to allow a full page screenshot. By Added suite object to suite.before and suite.after events by implico . #496

Added config object to public API

object to public API Extended index.js to include actor and helpers , so they could be required:

const actor = require ( 'codeceptjs' ) . actor ;

Added example for creating custom runner with public API.

with public API. run command to create output directory if it doesn't exist

directory if it doesn't exist [Protractor] fixed loading globally installed Protractor

fixed loading globally installed Protractor run-multiple command improvements: create output directories for each process print process ids in output



Fixed loading hooks

Major release with extension API and parallel execution.

Breaking Removed path argument from run . To specify path other than current directory use --config or -c option:

Instead of: codeceptjs run tests use:

# load config and run from tests directory codeceptjs run -c tests/ # or load codecept.json from tests directory codeceptjs run -c tests/codecept.json # run users_test.js inside tests directory codeceptjs run users_test.js -c tests

Polish translation added by limes .

added by . Update process exit code so that mocha saves reports before exit by romanovma .

. [Nightmare] fixed getAttributeFrom for custom attributes by robrkerr

fixed for custom attributes by [Nightmare] Fixed UnhandledPromiseRejectionWarning error when selecting the dropdown using selectOption by robrkerr . [Se PR.

Fixed UnhandledPromiseRejectionWarning error when selecting the dropdown using by . [Se PR. [Protractor] fixed pressKey method by romanovma

Protractor ^5.0.0 support (while keeping ^4.0.9 compatibility)

Fix 'fullTitle() is not a function' in exit.js by hubidu . See #388 .

. See #388 . [Nightmare] Fix for waitTimeout by HughZurname . See #391 . Resolves #236 * Dockerized CodeceptJS setup by artiomnist . See reference

Fixed steps output synchronization (regression since 0.4.14).

[WebDriverIO][Protractor][SeleniumWebdriver][Nightmare] added keepCookies option to keep cookies between tests with restart: false .

option to keep cookies between tests with . [Protractor] added waitForTimeout config option to set default waiting time for all wait* functions.

added config option to set default waiting time for all wait* functions. Fixed _test hook for helpers by cjhille .

Fixed regression in recorder sessions: oldpromise is not defined .

_beforeStep and _afterStep hooks in helpers are synchronized. Allows to perform additional actions between steps.

Example: fail if JS error occur in custom helper using WebdriverIO:

_before ( ) { this . err = null ; this . helpers [ 'WebDriverIO' ] . browser . on ( 'error' , ( e ) => this . err = e ) ; } _afterStep ( ) { if ( this . err ) throw new Error ( 'Browser JS error ' + this . err ) ; }

Example: fail if JS error occur in custom helper using Nightmare:

_before ( ) { this . err = null ; this . helpers [ 'Nightmare' ] . browser . on ( 'page' , ( type , message , stack ) => { this . err = ` ${ message } ${ stack } ` ; } ) ; } _afterStep ( ) { if ( this . err ) throw new Error ( 'Browser JS error ' + this . err ) ; }

Fixed codecept list and codecept def commands.

and commands. Added I.say method to print arbitrary comments.

I . say ( 'I am going to publish post' ) ; I . say ( 'I enter title and body' ) ; I . say ( 'I expect post is visible on site' ) ;

[Nightmare] restart option added. restart: false allows to run all tests in a single window, disabled by default. By nairvijays99

option added. allows to run all tests in a single window, disabled by default. By [Nightmare] Fixed resizeWindow command.

Fixed command. [Protractor][SeleniumWebdriver] added windowSize config option to resize window on start.

config option to resize window on start. Fixed "Scenario.skip causes 'Cannot read property retries of undefined'" by MasterOfPoppets

Fixed providing absolute paths for tests in config by lennym

Added retries option Feature and Scenario to rerun fragile tests:

Feature ( 'Complex JS Stuff' , { retries : 3 } ) ; Scenario ( 'Not that complex' , { retries : 1 } , ( I ) => { } ) ;

Added timeout option Feature and Scenario to specify timeout.

Feature ( 'Complex JS Stuff' , { timeout : 5000 } ) ; Scenario ( 'Not that complex' , { timeout : 1000 } , ( I ) => { } ) ;

[WebDriverIO] Added uniqueScreenshotNames option to set unique screenshot names for failed tests. By APshenkin . See #299

Added option to set unique screenshot names for failed tests. By . See #299 [WebDriverIO] clearField method improved to accept name/label locators and throw errors.

method improved to accept name/label locators and throw errors. [Nightmare][SeleniumWebdriver][Protractor] clearField method added.

method added. [Nightmare] Fixed waitForElement , and waitForVisible methods.

Fixed , and methods. [Nightmare] Fixed resizeWindow by norisk-it

Fixed by Added italian translation .

Bootstrap / Teardown improved with Hooks . Various options for setup/teardown provided.

. Various options for setup/teardown provided. Added --override or -o option for runner to dynamically override configs. Valid JSON should be passed:

codeceptjs run -o '{ "bootstrap": "bootstrap.js"}' codeceptjs run -o '{ "helpers": {"WebDriverIO": {"browser": "chrome"}}}'

Added regression tests for codeceptjs tests runner.

Fixed regression in 0.4.10

Added bootstrap / teardown config options to accept functions as parameters by pscanf . See updated config reference #319

[Protractor] Protrctor 4.0.12+ support.

Protrctor 4.0.12+ support. Enabled async bootstrap file by abachar . Use inside bootstrap.js :

module . exports = function ( done ) { }

Changed 'pending' to 'skipped' in reports by timja-kainos . See #315

[SeleniumWebdriver][Protractor][WebDriverIO][Nightmare] fixed executeScript , executeAsyncScript to work and return values.

, to work and return values. [Protractor][SeleniumWebdriver][WebDriverIO] Added waitForInvisible and waitForStalenessOf methods by Nighthawk14 .

and methods by . Added --config option to codeceptjs run to manually specify config file by cnworks

option to to manually specify config file by [Protractor] Simplified behavior of amOutsideAngularApp by using ignoreSynchronization . Fixes #278

Simplified behavior of by using . Fixes #278 Set exit code to 1 when test fails at Before / After hooks. Fixes #279

[Protractor][SeleniumWebdriver][Nightmare] added moveCursorTo method.

method. [Protractor][SeleniumWebdriver][WebDriverIO] Added manualStart option to start browser manually in the beginning of test. By cnworks . [PR#250

option to start browser manually in the beginning of test. By . [PR#250 Fixed codeceptjs init to work with nested directories and file masks.

to work with nested directories and file masks. Fixed codeceptjs gt to generate test with proper file name suffix. By Zougi .

to generate test with proper file name suffix. By . [Nightmare] Fixed: Error is thrown when clicking on element which can't be locate. By davetmik

Fixed: Error is thrown when clicking on element which can't be locate. By [WebDriverIO] Fixed attachFile for file upload. By giuband and davetmik

Fixed for file upload. By and [WebDriverIO] Add support for timeouts in config and with defineTimeouts method. By easternbloc #258 and #267 by davetmik

Add support for timeouts in config and with method. By #258 and #267 by Fixed hanging of CodeceptJS when error is thrown by event dispatcher. Fix by Zougi and davetmik

Improved docs for BeforeSuite ; fixed its usage with restart: false option by APshenkin .

; fixed its usage with option by . Added Nightmare to list of available helpers on init .

to list of available helpers on . [Nightmare] Removed double resizeWindow implementation.

Added BeforeSuite and AfterSuite hooks to scenario by APshenkin . See updated documentation

Fixed running codecept def command by jankaspar

command by [Protractor][SeleniumWebdriver] Added support for special keys in pressKey method. Fixes #216

Interactive shell fixed. Start it by running codeceptjs shell

Added --profile option to shell command to use dynamic configuration.

option to command to use dynamic configuration. Added --verbose option to shell command for most complete output.

[Protractor] Regression fixed to ^4.0.0 support

Regression fixed to ^4.0.0 support Translations included into package.

teardown option added to config (opposite to bootstrap ), expects a JS file to be executed after tests stop.

option added to config (opposite to ), expects a JS file to be executed after tests stop. Configuration can be set via JavaScript file codecept.conf.js instead of codecept.json . It should export config object:

exports . config = { }

Added --profile option to pass its value to codecept.conf.js as process.profile for dynamic configuration .

option to pass its value to as for dynamic configuration . Documentation for StepObjects, PageFragments updated.

updated. Documentation for Configuration added.

Added ability to localize tests with translation #189 . Thanks to abner [Translation] ru-RU translation added. [Translation] pt-BR translation added.

. Thanks to [Protractor] Protractor 4.0.4 compatibility.

Protractor 4.0.4 compatibility. [WebDriverIO][SeleniumWebdriver][Protractor] Fixed single browser session mode for restart: false

Fixed using of 3rd party reporters (xunit, mocha-junit-reporter, mochawesome). Added guide.

Documentation for Translation added.

added. Documentation for Reports added.

Added custom steps to step definition list. See #174 by jayS-de

by [WebDriverIO] Fixed using waitForTimeout option by stephane-ruhlmann . See #178

Nightmare Helper added for faster web testing.

added for faster web testing. [Protractor][SeleniumWebdriver][WebDriverIO] added restart: false option to reuse one browser between tests (improves speed).

option to reuse one browser between tests (improves speed). Protractor 4.0 compatibility. Please upgrade Protractor library.

compatibility. Please upgrade Protractor library. Added --verbose option for run command to log and print global promise and events.

option for command to log and print global promise and events. Fixed errors with shutting down and cleanup.

Fixed starting interactive shell with codeceptjs shell .

. Fixed handling of failures inside within block

Introduced IDE autocompletion support for Visual Studio Code and others. Added command for generating TypeScript definitions for I object. Use it as

codeceptjs def

to generate steps definition file and include it into tests by reference. By kaflan

[Protractor] version 3.3.0 comptaibility, NPM 3 compatibility. Please update Protractor!

version 3.3.0 comptaibility, NPM 3 compatibility. Please update Protractor! allows using absolute path for helpers, output, in config and in command line. By denis-sokolov

Fixes 'Cannot read property '1' of null in generate.js:44' by seethislight

Fixed global installation. CodeceptJS can now locate globally located modules. CodeceptJS is also recommended for local installation. Depending on installation type additional modules (webdriverio, protractor, ...) will be loaded either from local or from global path.

Added codeceptjs list command which shows all available methods of I object.

command which shows all available methods of object. [Protractor][SeleniumWebdriver] fixed closing browser instances

[Protractor][SeleniumWebdriver] doubleClick method added

method added [WebDriverIO][Protractor][SeleniumWebdriver] doubleClick method to locate clickable elements by text, context option added.

method to locate clickable elements by text, option added. Fixed using assert in generator without yields #89

Fixed init command

Breaking Change: webdriverio package removed from dependencies list. You will need to install it manually after the upgrade. Starting from 0.3.0 webdriverio is not the only backend for running selenium tests, so you are free to choose between Protractor, SeleniumWebdriver, and webdriverio and install them.

[Protractor] helper added . Now you can test AngularJS applications by using its official library within the unigied CodeceptJS API!

. Now you can test AngularJS applications by using its official library within the unigied CodeceptJS API! [SeleniumWebdriver] helper added . You can switch to official JS bindings for Selenium.

. You can switch to official JS bindings for Selenium. [WebDriverIO] updated to webdriverio v 4.0

[WebDriverIO] clearField method added by fabioel

method added by [WebDriverIO] added dragAndDrop by fabioel

added by [WebDriverIO] fixed scrollTo method by sensone

fixed method by [WebDriverIO] fixed windowSize: maximize option in config

fixed option in config [WebDriverIO] seeElement and dontSeeElement check element for visibility by fabioel and davertmik

and check element for visibility by and [WebDriverIO] seeElementInDOM , dontSeeElementInDOM added to check element exists on page.

, added to check element exists on page. [WebDriverIO] fixed saving screenshots on failure. Fixes #70

fixed saving screenshots on failure. Fixes #70 fixed within block doesn't end in output not #79

[WebDriverIO] added seeNumberOfElements by fabioel

process ends with exit code 1 on error or failure #49

fixed registereing global Helper #57

fixed handling error in within block #50

Fixed done() was called multiple times

[WebDriverIO] added waitToHide method by fabioel

added method by Added global Helper (alias codecept_helper) , object use for writing custom Helpers. Generator updated. Changes to #48

Fixed issues with using yield inside a test #45 #47 #43

#47 #43 Fixed generating a custom helper. Helper class is now accessible with codecept_helper var. Fixes #48

Fixed accessing helpers from custom helper by pim .

[WebDriverIO] fixed seeInField to work with single value elements like: input[type=text], textareas, and multiple: select, input[type=radio], input[type=checkbox]

fixed to work with single value elements like: input[type=text], textareas, and multiple: select, input[type=radio], input[type=checkbox] [WebDriverIO] fixed pressKey , key modifeiers (Control, Command, Alt, Shift) are released after the action

Fixed generation of custom steps file and page objects. Please replace require('codeceptjs/actor') to actor in your custom_steps.js . Whenever you need to create I object (in page objects, custom steps, but not in tests) just call actor() ;