-
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)