
Navigate the WebdriverIO community through the official website, GitHub discussions, a community channel, and Stack Overflow, joining 1.5 million people across 100k+ communities for support.
Install Node.js, the JavaScript runtime WebdriverIO relies on, selecting the LTC version for your OS. Complete the installer, then verify with node -v in a terminal or command prompt.
Install and configure Visual Studio Code, then enhance it with extensions like prettier, material icons, and JavaScript code snippets. Customize settings, colorize brackets, and reload the window to apply changes.
Install and verify Google Chrome and Firefox, then keep them up to date by checking for updates via Help about Google Chrome and Help about Firefox.
Install gates to enable the gates command shell in Visual Studio Code, enabling bash terminals alongside PowerShell on Windows, and learn to push and pull code to a GitHub repository.
Create and configure the project folder, then initialize a package.json to serve as the heart of the WebdriverIO automation framework, enabling dependencies from the web.
Discover an easy method to keep your dev dependencies up to date for WebdriverIO projects, using npm-check-updates to check and apply updates to package.json.
Configure the wdio testrunner with its unique config file, map test specs, and enable parallel execution across chrome and firefox. Use moca, spec reporter, and hooks to enhance automation.
Create automated tests for the system under test at the webdriveruniversity site, navigate multiple links, and validate the contact us page and login area to practice automation testing.
Learn how to extend a WebdriverIO test by filling a contact form—set first name, last name, email, and message, click submit, and validate the resulting message using dynamic selectors.
Tackle a negative test scenario with web driver IO by filling first name, last name, and message, submitting without an email, and running the test with only this scenario.
Implement the contact us test flow in WebdriverIO: fill first name, last name, and comment, submit, and assert the no-email submission message is shown, using before hooks and async.
This recap reviews positive and negative automation tests that validate messages after form submission, and shows how the dry principle and before each hook prevent code duplication.
Understand the difference between synchronous and asynchronous JavaScript in web driver io, and why async/await matters as sync mode is deprecated in node.js with npm and package.json.
Explore a synchronous JavaScript example showing one-at-a-time execution, with two functions, console logs, and an alert that blocks until the user clicks, illustrating the bottleneck of synchronous code.
Demonstrate the difference between sync and async in webdriverio with a mocha test that navigates to webdriveruniversity.com, asserts the url, and shows why async/await is required as sync mode is deprecated.
Explore locating web elements with selectors using CSS and XPath, through practical examples and DOM concepts. Identify elements by id, class, attributes, and text to build robust automation tests.
Learn how to use WebDriverIO's locate element command to fetch a single element with CSS selectors or XPath, build tests, and handle dynamic pages by simulating clicks, navigation, and pauses.
Learn to locate multiple elements with WebdriverIO's findElements using a table header selector, collect titles into an array, and validate them against an expected array with expect to equal.
Explore the WebDriverIO pause command and waiting strategies, using beforeEach hooks and selectors to pause execution, handle element visibility, avoid fixed timeouts, and improve test reliability.
Leverage webdriverio waitForClickable to wait for an element to be clickable instead of fixed timeouts, explore per-command timeouts and default max timeout, and reference elements before clicking.
Learn how to use waitForDisplayed in WebdriverIO to wait for elements to appear, customize timeouts, and validate element visibility in tests.
Learn how to use the waitForExist command to verify an element is present in the html dom even when not yet visible, alongside wait for display and wait for clickable.
Debug WebdriverIO by using the debug command to inspect elements, adjust timeouts, and run targeted tests via the terminal, ensuring valid selectors and accurate post requests.
Learn to use the repl to spin up a browser instance for debugging webdriverio tests, issuing browser commands and stepping through actions.
Explore interacting with inputs on a contact page using webdriverio, comparing add value, set value, and clear value for the first name input, and learn css selectors for the input.
Master three dropdown interactions in WebDriverIO by selecting options by attribute value, by index, and by visible text, with assertions to verify selections.
Explore webdriverio state commands to verify inputs, checkboxes, and radios are displayed, enabled, and clickable. Craft assertions with expect and css selectors to validate element states and interactions.
Master actions by performing drag and drop, double-click, and mouse over interactions, using precise selectors and waits to drive automated tests.
Master handling multiple windows in webdrivio by opening new tabs, switching between windows, asserting titles and URLs, and closing tabs with practical examples.
Master iframe handling in webdriver context by switching into an iframe, interacting with elements inside it, and switching back to the parent to continue testing.
Master handling javascript alerts in webdriverio, learn to navigate to pages, click alert triggers, accept or cancel alerts, validate alert text, and set alerts within tests.
Upload a file in a WebdriverIO test by using the file input, selecting a dummy text file from the data folder, submitting, and validating the alert text.
Learn to inject JavaScript into a web page using the WebDriverIO execute command, manipulate the DOM to reveal hidden elements, and modify styles like background color.
OVER 5000 STUDENTS ENROLLED ON THIS COURSE TO DATE
What is WebdriverIO?
WebdriverIO is an open-source testing automation framework written in JavaScript and running on NodeJS. It is particularly useful for testing web applications. It supports both Behavior Driven Development (BDD) and Test Driven Development (TDD), making it a highly preferred choice for automation testers.
Why this course?
This course is designed to be effective, efficient and easy to follow. I have been teaching for several years on Udemy with over 6 highly successful courses to date. I have refined this course using proven teaching techniques. This course is carefully structured from start to finish and I provide downloadable code examples after each coding lecture.
What has been updated?
Everything! I have rebuilt this course from scratch using one of the latest versions of WebdriverIO. This means the material covered is relevant, making use of WebdriverIO's latest features.
What does this course cover?
All major topics are covered in detail using the below structure:
Introduction
WebdriverIO setup
WDIO TestRunner
Simple real world scenarios
Synchronous vs Asynchronous - (Understanding Asynchronous JS)
Locating Elements
Waits and Timeouts
Assertions
Debugging
Advanced Element Interactions
Reporting
Advanced Real World Example
Advanced Concepts
Jenkins CI and More!
What to expect by the end of this course?
You will be completely confident building automation frameworks using WebdriverIO and a whole host of complementing technologies. This is the only course you need to learn Automation Testing using the WebdriverIO framework.