
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Introduction to this class with quick overview
Review of Cypress framework limitations
This lecture covers the installation of all required components to prepare your environment for writing Cypress tests
Test applications overview that will be used in this course
Overview of what will be covered in the module JavaScript fundamentals
The first run of JavaScript code "Hello World"
How to create variables and constants, what are the differences between those and data types in JavaScript
Two ways how to combine several values together into a new desired value
How to create objects and arrays. What is the difference between those. Syntax rules. How to read data from an object or array. How to update/replace data in an object or array.
Introduction to different types of relational (comparison) and equality operators. How do they work.
These operators are often used in building the logic of the execution flow
Logical "AND", "OR" and "NOT" operators. How to use them in the execution flow with examples.
The flow control of the code execution with if/else conditional statement
How to repeat the code execution based on the desired condition. This is what the "loops" are for.
Create reusable components of your code using functions. Declarative functions, anonymous functions, and arrow functions. How to parametrize functions and pass an argument into a function. How to return the result of the function. How to export/import functions.
An alternative way of abstraction (code reusability) using classes and methods in JavaScript
Installation of the Cypress framework
Overview of the Cypress Framework and folder structure
Cypress framework configuration
Overview of the Cypress runner interface
How to execute tests with the command line interface
How tests are organized in Cypress
A detailed explanation of DOM terminology. Required basics which need to clearly understand before moving forward
Explanation of the different types of locators in Cypress
Variety of technics how to find web elements on the web page using Cypress.
What Cypress methods are used to find web elements on the page
How to find child elements and what are the syntax rules around it.
How to find a parent web element and the syntax rules around it
How the Cypress chaining interface works. It's unique and important to understand.
How to store locators in Cypress and use it later in the script.
Different examples of how to use Cypress "invoke()" command to get values of attributes, text valuaes and browser properties
How Cypress assertions work and their retry-ability mechanism
How to configure the timeout in Cypress and how it works.
How to interact with Input Fields in Cypress and make assertions of input fields values
How to interact with Radio Buttons in Cypress.
How to interact with checkboxes in Cypress. The difference between click() and check() commands
How to work with Lists and Dropdowns. Looping through the list of web elements.
How to automate the tooltips
How to interact with Dialog boxes in Cypress
Different methods of how conveniently interact with Web Tables. Get table rows by text and by index value.
How too loop through the table rows to validate table cells information in each row
Automation of Web Datepicker. How to select date in the calendar dynamically using JavaScript Date() object
Implementation of the logic flow, how based on the desired month, automatically flip the month selector for the desired date.
How to automate sliders.
How to automate Drag and Drops
Automating iFrames in Cypress. The workaround to work with this type of web element.
What is page objects and why do we need it?
Definition of Page Object. Creation of first Page Object for navigation across the application.
Creation of the helper function that will help to manage the conditional behavior of UI element
Adding more Page Objects, refactoring existing code base and reorganizing the end-to-end flow re-using page objects
How to make page object methods more meaningful and descriptive
Explanation of the Cypress Custom Commands. Creation of Login Custom Command.
Explanation of what is API (Application Programming Interface) and how does it work.
Review of the test project and setting up the new Cypress framework
How to intercept browser API request using Cypress Server and provide a mock response on that
How to intercept API response, modify, and send back tothe application
What is a router matcher, and how to use properties of the router matcher object
How to dynamically wait for API response to make UI tests more stable
How to use Postman for exploratory testing of APIs
How to set up test data for the UI test using APIs
Interaction with API using Cypress. Running end-to-end test using just APIs.
How to make headless user authorization bypassing the login page with a user credentials.
Writing custom NPM scripts to build the application and run tests with a single command
Review of the few different options how to work with environment variables in Cypress
Configuration or Test Retries in "runMode", "openMode", and on the spec level.
How to easily generate a lot of random test data.
How run the same test with a different test data in the loop
Adding JUnit XML reporter and Mochawesome HTML report. Both reports generated at the same time.
Configuring Dockerfile and Docker-Compose files to run Cypress tests in Docker container and getting test results back to the host machine
How to use cy.session() method to reuse logged in state across multiple tests.
How to use tags to target execution of different tests across spec files.
Just a few final words from me :) Thank you!
This comprehensive course provides complete mastery of the Cypress testing framework, a modern JavaScript-based automation tool that includes everything you need out of the box: Test Runner, assertion libraries, reporters, and seamless integration capabilities. Cypress executes tests in the same run loop as your application, delivering exceptional performance and speed.
Who This Course Is For
Beginners welcome - No prior JavaScript experience required
Testing professionals seeking modern automation skills
Developers looking to integrate testing into their workflow
Note: For programming newcomers, we include a dedicated JavaScript fundamentals section.
What You'll Learn
Foundation Skills
Build strong foundational concepts from zero
Master locator strategies for any web element
Develop skills transferable to any automation framework
Become proficient in element identification and interaction
Core Cypress Capabilities
Understand Cypress architecture and modern JavaScript-based approach
Learn the sequence of Cypress commands for browser automation
Master the scripting approach that makes Cypress accessible to all skill levels
API Testing Integration
Learn API fundamentals from the ground up
Explore Cypress's API interaction capabilities
Understand practical use cases for API testing in end-to-end scenarios
Apply API testing effectively within E2E test suites
Code Organization and Maintainability
Implement Page Object patterns for scalable test architecture
Structure code for reusability and maintainability
Transition from small test suites (10-20 tests) to enterprise-scale frameworks (200-300 tests)
Eliminate code duplication through proper design patterns
Advanced Topics
Configure environment variables for different testing environments
Set up multiple reporters for comprehensive test reporting
Deploy and run tests in Docker containers
Course Methodology
This course follows a "From Zero to Hero" approach, ensuring every concept is thoroughly explained regardless of your starting point. The curriculum emphasizes practical application over theoretical knowledge, focusing on real-world scenarios and best practices.
By course completion, you will have developed comprehensive Cypress expertise, enabling you to:
Build robust, maintainable automation frameworks
Implement both UI and API testing strategies
Apply professional development practices to testing
Deploy tests in modern containerized environments