- global changes:
- docs improvements (#2006, #2001, #2010, #2011, #2013, #2016, #2017, #2032)
- make API compliant to Webdriver candidate recommendation
- bug fixes (#2024)
- make url act like url.resolve (#1946)
- more generic error when failing to connect to Selenium server
- add deprecation warnings to all commands that aren't part of the Webdriver spec and will be removed with the next major version update
- global changes:
- fix bug where isExisting fails when calling it on a lazy loaded element (#2003)
- global changes:
- added Code of Conduct
- bugfixes (#1855, #1869, #1931)
- docs improvements (#1979, #1977, #1905, #1975, #1971, #1972, #1952, #1952, #1948, #1943, #1905, #1940, #1936, #1934, #1930, #1920, #1926, #1919, #1916, #1915, #1904, #1899, #1897, #1887, #1889, #1876, #1850, #1845)
- better error messages when element was not found (#1862)
- added timestamp to getCommandHistory results (#1873)
- added toggleTouchIdEnrollment command (#1951)
- don't trim string results anymore (#1885)
- (internal) replaced grunt task runner with npm scripts
- (internal) updated all dependencies
- wdio changes:
- added the ability to send your own events for runner's reporters (#1893)
- resolved memory leak in reporter - thanks @jankcat 👏 (#1993)
- make session hooks to respect promises (#1958)
- exit launcher when no spec was found (#1998)
- global changes:
- docs improvements
- update dependencies
- wdio changes:
- fixed wording for log in watch mode
- added more supported services to cli
- global changes:
- docs improvements
- bug fixes
- wdio changes:
- add watch mode (accessible via
--watch
argument) to wdio testrunner
- add watch mode (accessible via
- global changes:
- docs improvements
- minor improvements to REPL interface
- wdio changes:
- bugfixes (#1460)
- global changes:
- bug fixes
- docs improvements
- global changes:
- bugfixes (standalone & wdio testrunner)
- docs improvements
- fix
removeApp
command - introduce REPL interface
- wdio changes:
- enable
--reporters
cli parameter - improved Mocha timeout error messages
- introduce beforeSession / afterSession hooks
- identify tests by uid and not just by title (fixes couple of bug reports) - thx @wvankuipers
- enable
- global changes / WDIO changes:
- introduced
$
and$$
API commands as shortcuts to fetch elements
- introduced
- global changes:
- docs improvements (removed all async examples, wdio ftw!)
- global changes:
- fixed stale element reference error in standalone (#1614) - thx @Templum
- improved stale element catch - now works after reusing elements after reloading the page
- removed compatibility checks for mobile commands (#1633)
- run Sauce Labs test over secured SSL connection only
- bug fixes (#1628, #1649, #1344, #1670)
- add
touchAction
command for easier touch actions with Appium
- WDIO changes:
- improved mechanism of killing child processes when ctrl+c was triggered
- global changes:
- docs improvements
- WDIO changes:
- display proper selector in waitForXXX error messages (#1596)
- fixed broken chaining behavior
- WDIO changes:
- enhanced payload of start and end event
- global changes:
- bugfix (#1589)
- global changes:
- docs improvements
- selector improvements
- WDIO changes:
- allow multiple files in spec cli argument (#1579)
- fixed broken v4.2.10
- global changes:
- keep command files in package to be able to generate docs
- global changes:
- docs improvements
- bug fixes
- WDIO changes:
- Split hooks into their own collection instead of grouping with tests (#1561)
- global changes:
- allow to specify selector strategies directly when using the format: ":"
- fixes broken v4.2.6
- global changes:
- restrict files uploaded to NPM
- added screenshot event to internal events
- WDIO changes
- allow spec as wdio argument
- global changes:
- docs improvements
- updated request package dependency
- fixed moveTo bug always sitting at (0, 0)
- improved screenshot capturing after command errors
- id selector regex fix
- multiremote:
- ensure onComplete to run after test
- global changes:
- updated dependencies
- make sure waitUntil conditions get executed at least once
- implemented first polyfills for safaridriver interaction API
- fixed refresh/reload renaming bugs (#1445, #1446)
- WDIO changes:
- allow to run single specs using
--spec
cli argument - throw an error if suite was not found
- allow to run single specs using
- global changes:
- docs improvements
- WDIO changes:
- fixed bug in reporting
- global changes
- docs improvements
- better autocompletion with WebStorm IDE (#1399)
- added snyk dependency check
- WDIO changes:
- fixed config wizard (#1428)
- improve reporting of failed tests (#1361)
- allow launcher services to overwrite host/config (#1421)
- API changes:
- added new command
reload
to clear browser session
- added new command
- multiremote:
- fixed bug that spawned additional instance (#1434)
- WDIO changes:
- expose the process number to the child processes
- improved waitForXXX usage when used with element as first citizen
-
global changes:
- several bug fixes and documentation improvements
- new command: hasFocus (#1369)
- waitUntil improvements
- don't fail if element command can't find element
-
WDIO changes:
- allow to specify multiple suites at once
- WDIO changes:
- enabled debugging by passing argv to child process (thanks @kurtharriger #1345)
- global changes:
- introduced new error type for waitForXXX timeouts (#1281)
- doc improvements (wording/content)
- don't set firefox as default browser if mobile capabilities are detected
- add offset coords to left/middle/rightclick (#1335)
- WDIO changes:
- export Launcher API to Webdriver object (#1311)
-
global changes:
- docs improvements
- removed shrinkwrap file
-
WDIO changes:
- fixed bug where onPrepare was called twice and onComplete none (#1197)
- allow to set services without having them on NPM (#1198)
- enable custom command chaining (#1218)
- fixed waitForXXX commands not able to interpret reverse argument (#1209)
- better support for element as first citizen
- allow modification of capabilities through services
- fixed
Unrecognised test [XXX] for suite [YYY]
issue (#1195) - better support for log file names in windows (#1226)
- added testingbot service to cli configurator (#1263)
- fixed bug where applying user and key as cli argument didn't work (#1264)
-
global changes:
- added class name selector for ios and android
- docs improvements
-
multiremote:
- fixed capability issue (#1220)
- added helper method
getInstances
to get instance names
-
global changes:
- minimum required node version: v0.12.x
- complete code rewrite into ES2016 conform JavaScript (compiled using Babel)
- moved 3rd party integrations (reporters, services, framework) into own NPM packages
- introduced concept of services for the WDIO testrunner (e.g. wdio-sauce-service)
- commands in WDIO are getting executed in a synchronous way using Fibers
- added Grunt as project task manager
-
WDIO changes:
- retry mechanism for failing requests to the Selenium server as well as for stale element reference errors
- commands are running synchronous (can be disabled by setting
sync: false
in wdio.conf.js) - better support for page objects with WebdriverIO
- runs multiple specs per capability at a time (in v3 it was one spec per capability)
- elements can now be treated as first citizen (no need for selector parameter if element(s) command) was called before
- limit number of running instances with
maxInstances
- no support for callbacks in commands anymore (as last parameter)
- no support generators anymore (commands are sync anyway through Fibers)
- added new hooks: beforeSuite, beforeHook, beforeTest, beforeCommand, afterCommand, afterTest, afterHook, afterSuite, onError and beforeFeature, beforeScenario, beforeStep, afterFeature, afterScenario, afterStep (Cucumber framework only)
- implemented small API for launcher package for better integration in 3rd party packages like grunt/gulp-webdriver
- new Allure reporter: wdio-allure-reporter, no spec reporter anymore (but in the making: wdio-spec-reporter)
- TypeScript support (#1060)
-
mobile changes:
- added uiautomator/uiautomation and accessibility id location strategy
- update Appium commands for mobile testing
-
API changes:
- added
waitUntil
interval option (#844) - added
getUrl
command (#877) - better support for unicode characters in setValue/addValue/keys
- several improvements and bugfixes
- added
getGridNodeDetails
,gridProxyDetails
andgridTestSession
to get information about the Selenium grid and their nodes - added
selectByAttribute
to select options by any attribute field
- added
-
Multibrowser changes:
- modified then arguments from having one argument per browser to having one argument as an object with browser names and their results as properties
- documentation improvements (#910, #925, #939, #947, #949, #943, #964, #966)
- added selectByName command (#917)
- bugfix: emit test:end in jasmine (#918)
- added Unicode support (#850)
- enable passing cli args to runner processes (#851)
- docs improvements (#854, #853, #861, #871)
- elminate Seleniums staleElement errors (#857)
- fixed screenshot file names for Windows user (#868)
- added new command
getUrl
(#877) - fixed isVisibleWithinViewport helper (#885, #886, #887)
- update Sauce Labs job even when using Sauce Connect (#881)
- fixed switchTab command (#898)
- expose sessionId and capabilities to after() hook
- Adds a configuration: option.waitforInterval and a parameter to waitUntil for setting the polling interval for waitUntil.
- support for mocha's 'qunit' interface
- make sure edge driver follows standards for querying elements (#762)
- fixed xunit reporter bug (#797, #801)
- fixed indention bug in spec reporter (#800)
- Preserve mocha
this
in testrunner-wrapped generators (#813) - better Babel support (##816)
- bugfixes in xunit reporter
- removed undefined first argument in after hook
- improved error handling in waitFor commands
- some minor bugfixes
- fixed bug where cli args didn't overwrite config properties
- fixed bug where browser extensions throw E2BIG error
- allow test files with .coffee extension
- better error message if command gets executed w/o session id
- allow usage of custom reporter
- command response with null value will be logged again (#738)
- added documentation
- support w3c webdriver draft keys (#744)
- enable multiremote test in wdio test runner (#741)
- kill Selenium session properly when canceling the wdio process (#746)
- improved error handling (no error propagation) (#629)
- wdio test runner cli improvements (#704)
- added protocol bindings for contexts (#703)
- make selenium path customizable (#690)
- enable compilers and require in Mocha framework (#660)
- new command
getCommandHistory
(#618) - allow to ignore undefined steps (#635)
- bugfixes (#631, #637, #669, #684, #699)
- better error messages if waitForXXX commands fail
- improved error handling
- set default logging prefs
- allow to intercept jasmine assertions
- check logging types before requesting logs
- minor bugfixes and doc improvements
- mocha framework: allow inclusive and exclusive tests
- fixed bug where feature files got filtered out in config parser
- show also title of pending test (refs #606)
- if specFn is undefined we are dealing with a pending function (fixes #606)
- lowercase framework string (fixes #601)
- make v3 work with PhantomJS < 2.0 (fixes #594)
- rewritten WebdriverIO core to a Monad
- removed ChainIt dependency
- implemented test runner with different reporter and support for Mocha, Jasmine and Cucumber
- added multiremote feature to control multiple instances at the same time
- enable selector chaining
- removed waitFor command (please replace it with waitForExist as it works the same way)
- new commands: debug
- return promise result if responseMethod is not a function (see #401)
- make PromiseHandler to handle Q promises (see #399)
saveScreenshot
doesn't require a file path anymore if only the base64 data is required (see #393)- don't throw an error if error handler is registered (see #385)
- fixed bug in PromiseHandler when execute command just got a single function parameter (closes #383)
- make colored logs optional (closes #298)
- fixed bug in
selectByValue
andselectByVisibleText
in which the absolute xPath queried value/text of different select element - allow more xpath expressions
- support for promises A+ (yeah!)
- introduced
waitforTimeout
option so set default timout time for all waitForXXX commands (see #345) - let selectByValue accept number values (see #369)
- added selectByIndex, selectByValue and selectByVisibleText for super easy selecting of options in select elements
- support for all selector strategies in getHTML command (closes #302)
- consider parent elements in waitForVisible command (closes #293)
- added library User-Agent string to header for statistical reporting (closes #296)
- updated examples
- fixed bug in isVisible helper, thanks @fufnf
- new commands:
- improved waitfor commands - now with support if all selector strategries (thanks to selectorExecuteAsync and @nickyout)
- Fix: log command expecting an object and not a string
- skip close test (still to flaky)
- took saveScreenshot functionality back to basic
- removed gm dependency since it causes too many errors when installing
- new commands:
- make ErrorHandler easy accessible
- renamed project lib constructor
- fixed isMobile detection in
chooseFile
command
- initial release (for older releases check out the WebdriverJS changelog)