Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Mastering End-to-End Testing with WebdriverIO
Introduction to End-to-End Testing
Course Overview and its Goals
Understanding the Basics of End-to-End Testing
Introduction to WebdriverIO and its Features
Introduction to the terminal
What is the Terminal and CLI
Using the Terminal and Common CLI Commands
Setting Up Your Development Environment
Install Node and VSCode
Install Common VSCode Extensions
Install WebdriverIO
Run a WebdriverIO Test
Javascript Fundamentals
Introduction To Javascript
Your First Javascript Program - Hello World
Variables: const, let, var
Data Types: strings, numbers, booleans, null
Arithmetic operators: +, -, *, /, %
If/Else Statements
Ternary Operators For Simple Conditionals
Introduction to Arrays
Looping Through Arrays
Manipulating Arrays
Built In Array Methods
Introduction to Objects
Looping Through Objects
Loop Through an Array of Objects
While Loops
Introduction To Functions
Understanding Function Parameters and Return Values
Arrow Functions
Introduction To Classes
Class Inheritance
Asynchronous JavaScript: Promises with async/await
Asynchronous JavaScript: Promises with .then()
Writing End-to-End Tests with WebdriverIO
Creating Your First Test Case
WebdriverIO Selectors
Selecting Elements on a Page Using the $ and $$ Methods
Types of selectors: Text based, CSS, XPath, aria
React Application Selectors
Best Practices For Choosing Stable Selectors In Tests
Auto Waiting
Perform Different Actions with Built-in Methods
click, getText, setValue, getValue, clearValue, getAttribute
isDisplayed, isExisting, isEnabled, isSelected
Working With Inputs, Forms and Buttons
Fill in Text Fields, Checkboxes, Radio Buttons, Dropdowns
Getting Values From Form Fields
Submitting Forms and Buttons
Forms In React Applications
Browser Object
url(), pause()
waitUntil - Create Your Own Wait Scenario
execute - Execute Client Side Javascript
addCommand - Create Your Own Command
overwriteCommand - Overwrite An Existing Command
Assertions
Overview of Assertions and expect-webdriverio
Common Jest Matchers
Browser Matchers
Element Matchers
Adding Your Own Matchers
Mocha Test Hooks - Understanding the Test Lifecycle
describe, it
beforeEach, afterEach, beforeAll, afterAll
"it" methods - only, skip, fail
Debugging
Using browser.debug
VSCode Debugging With Breakpoints
CLI, Configuration and Cross Browser Testing
Available CLI Options
Exploring the WebdriverIO Configuration File
Defining Suites
Cross Browser Testing
WebdriverIO Hooks
Retries and Parallel Testing
Mocha Retires
Spec File Retries
Running Multiple Tests At The Same Time In Parallel
Reporters
Common Reporters Used In WebdriverIO and Community Driven Reporters
Video Reporter
Allure Reporter
Currents.dev - Store Historical Test Runs
Using Reporters to Deal With Flaky Tests
Create Your Own Custom Reporter
Services
Overview of Services
Create Your Own Custom Service
Implementing Page Object Model for Maintainable Tests
Overview of Page Objects
Creating Page Objects
Using a Base Page Class
Page Manager Class
Organizing Tests and Classes
File Uploads and Iframes
Working With File Uploads
Working With iframes
Action Method
Drag and Drop
Best Practices
Authentication
Setup Data For Tests
New Lesson
Running Tests Using Cloud Environments
Overview Of Running Tests Locally Vs. In The Cloud
Running With Browserstack
Other Cloud Services - Selenium Grid and SauceLabs
Running Tests in CI/CD Pipelines
Overview Of CI/CD
Github Actions
Sharding - Run Tests On Multiple Machines Simultaneously
Final Projects and Certification
Working on Capstone Projects
Reviewing and Refining Test Suites
Final Exam and Certification Process
Loop Through an Array of Objects
Complete and Continue