WebdriverIO is a progressive automation framework built to automate modern web and mobile applications. It simplifies the interaction with your app and provides a set of plugins that help you create a scalable, robust and flakiness test suite.
It is designed to be:
- Extendable - Adding helper functions, or more complicated sets and combinations of existing commands is simple and really useful
- Compatible - WebdriverIO can be run on the WebDriver Protocol for true cross-browser testing as well as Chrome DevTools Protocol for Chromium based automation using Puppeteer.
- Feature Rich - The huge variety of built-in and community plugins allows you to easily integrate and extend your setup to fulfill your requirements.
You can use WebdriverIO to automate:
- 🌐 modern web applications written in React, Vue, Angular, Svelte or other frontend frameworks
- 📱 hybrid or native mobile applications running in an emulator/simulator or on a real device
- 💻 native desktop applications (e.g. written with Electron.js)
During the development of this automation standard the web has changed a lot and many of the requirements that developers have today to test their web application can not be fulfilled using WebDriver anymore. While some of the core contributor of this project help support the next generation of the WebDriver protocol, WebdriverIO provides an alternative automation solution based on the Chrome DevTools protocol. This allows the user to seamlessly switch between conventional commands based on WebDriver and powerful browser interactions through Puppeteer.
Read more about the differences of these automation standards in the section on Automation Protocols.
As oppose to many automation tools in the ecosystem WebdriverIO is one of the last truly open source projects that is run by an open governance and owned by a non-profit entity called OpenJS Foundation. This legally binds the project to grow and be directed in the interest of all participants. The project team values openness and collaboration and is not driven by monetary interests.
This makes the project very independent in how it is being developed and where it is suppose to go. It allows us to provide a free 24/7 support in our community channel as we build a sustainable community that supports and learns from each other. Lastly it gives a lot of opportunities to the people that contribute and engage with the project due to its open governance.