
Learn to automate keyboards and mouse in puppeteer, using the keyboard API for typing and pressing keys, and hovering to reveal menus. Viewport settings affect interactions and mouse movement.
Learn to identify and interact with UI elements on a page using different locators in Puppeteer, including CSS selectors and XPath, and handle promises to type username and password.
Learn to automate app navigation by locating and clicking all hyperlinks and menu items with Puppeteer, Playwright, and CodeceptJS, printing the resulting links and demonstrating navigation across pages.
Discover page-level and browser-level waiting mechanisms in Puppeteer, including waitForNavigation, waitForSelector, waitForRequest, waitForResponse, and network idle options, to synchronize tests with page loads.
Explore Puppeteer's core coverage feature and the Istanbul plugin to generate consumable coverage reports with NYC, including setup, execution, and producing the coverage folder.
Discover puppeteer extended with Apify SDK, a scalable web crawling and scraping library that enhances puppeteer for web automation, site map, and screenshotting.
Explore cross browser testing with puppeteer by running the same tests on Chrome and Firefox, install puppeteer Firefox, and extend code to support multiple browsers.
CucumberJS enables behavior-driven development with puppeteer by writing tests in plain language using feature files, steps, hooks, and world contexts.
Explore sharing the page context across login step definitions, diagnose the page is not defined error, and apply S word to preserve context across files.
Learn to share context across CucumberJS World step definitions by reusing a single browser and page objects, and simplify stub definitions for robust automation tests.
Learn to implement cucumber hooks for setup and teardown, opening browser before each scenario and closing it after, with before hooks running in order and after hooks in reverse order.
Configure a cucumber html report by adding a js reporter under a cucumber folder, specifying bootstrap options, json and history paths, and generating the report after running tests.
Learn advanced coding practices for automation testing with puppeteer, focusing on modular libraries, class-based page objects, and using babel to transpile modern JavaScript for compatibility.
Install and configure the babel js compiler by adding babel cli, babel plugins for class properties, and polyfill; create a babelrc and register babel to run the code.
Demonstrates creating a page object model with class properties and a custom Puppeteer helper library. Refactors login and home page interactions, updates selectors, and runs tests that pass.
Enhance the page object model by introducing class properties with a custom puppeteer helper, making element access clearer and more maintainable while replacing legacy browser library code.
learn to use XPath with puppeteer, identify elements via $x, resolve promises with async/await, avoid common asynchronous mistakes, and use XPath with puppeteer as shown.
Perform accessibility testing with puppeteer by generating a page snapshot and inspecting roles and names. Ensure DOM elements have accessible identifiers so assistive technologies can operate the UI.
Learn how to emulate devices in Puppeteer to test page rendering on real devices like iPhone X and iPad Pro, ensuring responsive behavior.
Explore CodeceptJS, a modern testing framework with a readable bdd-style syntax that unifies Puppeteer, Playwright, and other helpers. Learn installation, configuration, and switching helpers for the same API across tools.
Explore installing and getting started with CodeceptJS, configuring a Puppeteer helper, and running scenario-driven tests with driver-agnostic support, interactive debugging, and parallel, multi-session testing.
Learn to write CodeceptJS scenarios using the Puppeteer helper, including login flows for a demo site, form filling, waits, and assertions, with automatic tool switching and screenshot support.
Learn to generate a mocha awesome report in CodeceptJS by adding mocha awesome to package.json, running tests with the mocha awesome reporter, and viewing the generated report.
Learn behavior-driven development with CodeceptJS, writing BDD scenarios and step definitions, using cucumber-js style tables for data-driven login tests in puppeteer and playwright contexts.
Learn how CodeceptJS enables parallel test execution using run workers and run multiplier to split scenarios into groups and run tests across multiple browsers in parallel.
[Updated to new course name]
In this course Automation testing with Puppeteer, Playwright and CodeceptJS we will learn a lot more details, not just about Puppeteer tool, but also the tools and techniques which can make puppeteer, even more, better for testing larger application.
We will start our discussion from a basic topic to more advanced concepts of the Puppeteer, Playwright, and CodeceptJS tools. So, basically, this course is updated to supported three tools in parallel such as
Puppeteer
Playwright
CodeceptJS
The reason for adding Playwright and CodeceptJS in the original Puppeteer course being, Playwright is an incarnation of Puppeteer tool and CodeceptJS act as a framework for both Puppeteer and Playwright, hence having knowledge in all these tools are a good combination for automating an application.
Puppeteer
Introduction and Basics of Puppeteer
Distinguished features of Puppeteer
Extending Puppeteer
Jest with Puppeteer
Cucumber with Puppeteer
Puppeteer with Firefox
Cucumber HTML Reporting with Puppeteer
Page Object Model with Puppeteer
Migrating project from ES5 to ES6
Advanced concepts of Puppeteer
Playwright
Introduction and what is Playwright
Installation
Writing super simple code and understand how Playwright is similar to Puppeteer
Cross-browser testing
CodeceptJS support
Playwright CLI
Playwright Test Runner
Folio - Custom Test runner framework
CodeceptJS
Understanding the framework
How to make use of CodeceptJS helpers
CodeceptJS helper for Puppeteer
CodeceptJS syntax
Reporting
The course covers topics that are not covered elsewhere on the internet and that makes the course more distinguished by itself.
As that said, at the end of this course, the source code repository in the course will act as a clear guideline of how to extend the course based on your requirements at your work.