WebdriverIO was created to allow users to automate any application written with modern web frameworks, as well as native mobile applications for Android and iOS. WebdriverIO is a Project hosted at the OpenJS Foundation.
Members of the WebdriverIO team recently joined the OpenJS Foundation for a live Q and A on YouTube. This aimed to give insight into how WebdriverIO works as well as where it expects to go in the future. This was moderated by Christian Bromann, and included insights from Kevin Lamping, Erwin Heitzman, and Wim Selles. Users were able to ask questions via Twitter and live YouTube chat.
Questions ranged from how users can participate in the WebdriverIO project with no technical background to best practices for storing credentials and variables.
Today, the WebdriverIO team has released v7! Webdriver is a hosted project at the OpenJS Foundation. To further grow the project, this new release brings with it an almost complete rewrite to the code base. With the v5 update, the project moved from a multi-repository setup to a mono-repo. This time, the rewrite of the code base is just as important and impactful but comes with almost no implications for the end user.
This major update will have the biggest impact on TypeScript users as types in all places have been updated and the way they are distributed has also been changed. As part of the rewrite, WebDriver has upgraded to Cucumber v7, which also moved its codebase to TypeScript.
Hear from Christian Bromann, software engineer and core contributor of the Webdriver Project, as he explains some key updates:
Several updates include:
Webdriver has rewritten the complete code base and almost touched all files to add type safety and to fix a lot of bugs on the way. This was a true community effort and would have taken much longer if they didn’t have so many people helping with code contributions. Bog thanks to the community for that ❤️! Before, WebdriverIO auto-generated all type definitions, which caused the creation of a lot of duplicate types and inconsistency. With this overhaul, all types are directly taken from the code itself and centralised in a single new helper package called @wdio/types. If you have been using TypeScript, you will now have much better type support for various commands and the configuration file.
Improved Google Lighthouse Integration
Since v6 WebdriverIO can run on the WebDriver protocol for true cross browser automation, but also automate specific browsers using browser APIs such as Chrome DevTools. This allows for interesting integrations into tools that allow broader testing capabilities such as Google Lighthouse. With the `@wdio/devtools-service`, WebdriverIO users were able to access these capabilities using Google Lighthouse to run performance tests. In this release we’ve also updated Google Lighthouse to the latest version to enable new performance metrics such as Cumulative Layout Shifts or First Input Delay.
New PWA Check Command
In addition, Webdriver has deepened its integration to the tool and added audits for capturing the quality of your progressive web apps (PWA). These applications are built with modern web APIs to deliver enhanced capabilities, reliability, and installability while reaching anyone, anywhere, on any device with a single codebase.
Webdriver will continue to add more integrations into tools like Google Lighthouse to provide more testing capabilities, e.g. accessibility, best practices and SEO.
As you might already have seen, Webdriver has updated their docs to give this new release a brand new face. They have upgraded their Docusaurus setup to v2 and gave the whole design a new touch. Big shout out to Anton Meier for helping out and making the robot on the front page so lively.
Drop Node v10 Support
Webdriver has dropped support for Node v10, which was moved into a maintenance LTS phase by the Node.js team in May 2020. While this version still receives important security updates until April 2021, it is recommended to update your Node.js version to v14 or higher.
Drop Node v8 Support WebDriver has dropped support for Node v8, which was deprecated by the Node.js team at the start of 2020. It is not recommended to run any systems using that version anymore. It is strongly advised to switch to Node v12 which will be supported until April 2022.
Automation Protocol is now Default Because of the great success of automation tools like Puppeteer and Cypress.io it became obvious that the WebDriver protocol in its current shape and form doesn’t meet the requirements of today’s developer and automation engineers. Members of the WebdriverIO project are part of the W3C Working Group that defines the WebDriver specification and they work together with browser vendors on solutions to improve the current state of the art. Thanks to folks from Microsoft there already proposals about a new bidirectional connection similar to other automation protocols like Chrome Devtools.
Performance Improvements A big goal with the new release was to make WebdriverIO more performant and faster. Running tests on Puppeteer can already speed up local execution. Additionally, v6 has replaced the heavy dependency to request which has been fully depreciated as of February 11th 2020. With that, the bundle size of the webdriver and webdriverio package has been decreased by 4x.
These are only a few things that the v6 release brings. Read the full blog on the WebdriverIO site.