
Learn AI fundamentals and automation concepts to generate web and mobile automation scripts with Playwright (TypeScript) and APM Python, guided by Surendra.
Artificial intelligence is a computer system that can think, learn, and decide like a human, trained on data to perform tasks such as writing emails and automation tests.
Access the complete course material, including the full folder structure and test scenarios used in TypeScript Playwright lectures, downloadable for immediate use.
Explore the python-based test automation material for android and ios using an APM framework, including source code, zip files, page factory and page object models, utilities, and test scenarios.
Explore how humans collaborate with ai to boost efficiency and reliability in software testing and development. Learn how human-in-the-loop practices mitigate ai risks with practical, real-world examples.
Understand how a large language model, a human-brain like AI trained on vast data, translates, summarizes, answers, and generates content; it differs from Google, powered by backend programs.
Explore retrieval augmented generation (rag) and how it augments LLMs with a vector database and embedded information from a knowledge base to produce accurate responses without full retraining.
Discover how generative ai creates new content beyond existing data, with examples like generating a selenium Java program, consolidating loan documents, and producing text, images, audio, or video.
Explore how AI memory stores, retains, and retrieves past interactions to enable meaningful conversations, distinguishing short-term memory within a session from long-term memory across sessions.
Discover how an ai agent, a software program, uses tools to achieve a goal, can interact with other agents, perceive the environment, reason, plan, act, and adjust based on results.
Explore LangChain, an open-source framework connecting LLMs to external data sources, and LangGraph, a line graph style graphical workflow with nodes, edges, states, and checkpoints for AI agents.
Learn how the model context protocol (MCP) standardizes interactions between AI models and external tools, enabling tool discovery, execution, and reuse across APIs, databases, and services.
Learn how human in the loop governs AI decisions, with approvals for budget-sensitive actions, and how guardrails and prompts prevent hallucination.
Explore how fine tuning tailors an AI agent's interactions for customers, branch staff, and officials, and distinguish it from rag that uses external knowledge.
Learn how providing precise context to language models and LMS improves output accuracy by guiding the model with defined information and rules.
Learn the fundamentals of prompt engineering by providing clear context and precise inputs to guide responses and reduce hallucinations with practical examples.
Learn to set an LLM context by defining a role, rules, and outputs, then pass it with a context file and UI mockups to generate manual or automation test cases.
Learn to use a manual context file to guide a generic login flow (positive and negative tests) with ChatGPT, noting no acceptance criteria for the demo app.
Explore zero-shot, one-shot, few-shot, and chain-of-thought prompts to craft clear instructions for automation testing and context files guiding LLMs in web and mobile automation.
Compare ChatGPT, Copilot, and Cursor for automation development, highlighting ChatGPT's general AI and Copilot/Cursor's code-aware support for Playwright and Appium.
OpenAI is a research and development company aiming to ensure artificial general intelligence benefits humanity. It develops principles and protocols for building AI, powering GPT models, ChatGPT, Copilot, and Dall-E.
AI models are algorithms trained on data to recognize patterns and generate outputs, with GPT for text and DALL-E for images; LLMs are specialized AI models focused on human-like text.
Explore n8n as a workflow automation platform that combines AI capabilities to build no-code AI agents, create trials, and design automated workflows like email reminders and data processing.
Sign up on platform.openai.com, create and copy a new secret API key, and use that key to connect OpenAI for building AI agents.
Build an AI powered workflow in n8n that connects Gmail and Google Drive, reads a test data sheet, and sends an email when Sam is found.
Build a dynamic email workflow in n8n that reads a Google sheet, checks for a user, and lets an AI agent decide the recipient before sending.
Build an n8n workflow that reads data from Google Sheets (sheet two), checks status values, and automatically emails users when status is S to initiate background verification.
Explore creating a Jira Cloud account, generating an API token, and integrating Zephyr test management to automate test case and defect creation from Excel-driven workflows.
Follow an n8n workflow to create Jira issues from an Excel data sheet in a scrum setup, configuring credentials (email, API token, domain) and troubleshooting connectivity.
Configure cloud credentials and pass the access key, email, and URL to establish a connection, then automatically create Jira bugs from new defects in an n8n workflow.
Publish a public chat in an n8n workflow with a url, connect to an ai model and memory, and use sheet three to create defects with status and defect columns.
Learn how OpenAI tokens define input cost and processing, with tokens as word parts, roughly four characters per token, and how to manage prompts and budgets on trial accounts.
Learn how Cursor AI helps you generate a Chrome extension that records and replays browser actions, producing Playwright or Selenium scripts, with a human in the loop workflow.
Use cursor AI to generate a Chrome extension for record and playback, producing Playwright TypeScript or Selenium scripts that can be downloaded and tested.
Develop an OTP shield mobile app that monitors text messages, calls, and WhatsApp for OTP requests, warns the user with a dismiss option, and blocks APK files.
Discover gpt4all, an open source ecosystem that runs LLMs privately on your computer with offline capability, a desktop app for Windows, macOS, and Linux, and zero cloud dependency.
Explore how to build local agents with agent.md and skills.md to generate manual test cases and automation scripts from story or test case IDs, integrating with Azure or Jira.
Create a custom manual test case generator agent that fetches Azure DevOps stories, generates test cases per defined rules, saves drafts, and optionally uploads to Azure DevOps user stories.
Build a python-based agent that fetches user story details from Azure Dev Apps, prints title, description, acceptance criteria, and saves UI mockups as screenshots to generate manual test cases.
Learn TypeScript based Playwright API testing and AI script generation to automate web and mobile tasks, and create web API tests with Playwright and GitHub Copilot.
Discover how TypeScript extends JavaScript with type annotations, interfaces, enums, and generics. Learn how to write .ts files, compile with the TypeScript compiler, and run JavaScript online or locally.
Configure TypeScript by installing Visual Studio Code and Node.js on any system, then install TypeScript globally with npm and verify with tsc --version.
Open the code base in Visual Studio Code, navigate to JS basics, and create a new file to prepare a TypeScript configuration for the next session.
Define TypeScript configuration part 2 by adding config.json and tsconfig.json in the project root to enable test script execution.
Install and authorize GitHub Copilot in Visual Studio, sign in to enable Copilot chat, and finish setup to start code suggestions that prompt you in real time.
Identify why the GitHub Copilot option may not appear in VS Code and learn where to locate it across different versions, using screenshots or a one-on-one session for help.
Learn how to install and configure the GitHub Copilot extension in Visual Studio Code, sign in to GitHub, and enable AI pair programming for code writing and error resolution.
Create and execute a simple TypeScript program by writing a print message with console.log, compiling with tsc, generating JavaScript, and running it with node to print hello student.
Address questions about folder structure and TypeScript configuration for the Playwright code base. Clarify that a dedicated code base folder is sufficient, and a playwright folder is optional.
Learn to run a TypeScript file by installing ts-node, navigating to your project directory, and executing the file to print output such as hello student.
Learn how to run TypeScript files directly with node, switch node versions, and configure the code runner extension to execute scripts with a simple play button.
Demonstrate how TypeScript primitive data types power variables, including numbers, strings, booleans, undefined, and null, with examples that show Infinity and NaN in console output.
Show how to use primitive datatypes in TypeScript, including string with quotes, boolean values, undefined, and null, demonstrated via console logs and string concatenation with the plus operator.
Explore constants: a value that cannot change, initialized at declaration (salary of 50,000), print it to confirm, and a reassign attempt causes a compile-time error; contrast with var and let.
Explore arithmetic operators in programming—addition, subtraction, multiplication, division, modulus, and increment/decrement—with practical TypeScript examples and console.log demonstrations.
Learn how the assignment operator updates a variable using equal to, plus equal to, minus equal to, star equal to, division equal to, and module equal to.
Explore common comparison operators, including equal to, not equal to, greater than, less than, and their strict counterparts (===, !==), with examples using null, undefined, and numeric values.
Learn how the logical operator evaluates boolean values to produce true or false outcomes. See how and, or, and not control results with login and admin conditions in practical code.
Explain the ternary (conditional) operator, its three parts; a condition, a true expression, and a false expression, with examples like checking age for adult status and movie access.
Master conditional statements in TypeScript with if, else if, and nested blocks through practical examples: age-based voting eligibility, salary-based loan eligibility, and login checks, covering syntax and true/false execution.
Learn how switch statements execute code blocks based on a value, using cases like Monday and Tuesday, with break and a default block guiding control flow.
Demonstrates for loops, while loops, and for-each loops to execute code multiple times, with examples printing 1 to 10 and showing even and odd numbers, plus break and continue.
Explore while loops by evaluating a condition, incrementing a counter, and printing sequences, including even and odd numbers, with break to terminate when needed.
Learn the do while loop and its difference from while, then apply the continue statement to skip iterations, using practical examples that print even and odd numbers with conditions.
Explore essential string methods, including length, concat, character method, replace, toLowerCase, toUpperCase, split, trim, startsWith, endsWith, and includes, with practical TypeScript examples.
Explore how single-dimensional arrays in TypeScript store data of the same type, access elements by zero-based indices, and perform push, unshift, pop, shift, and element modification.
Explore how to use common array methods such as concat, toString, indexOf, includes, sort, slice, splice, and find, and learn several ways to declare and initialize arrays.
Explore the for each loop that iterates every element in an array and prints it with console.log. See how it automatically handles values without manual initialization or increments.
Learn how to create reusable functions in TypeScript, including named and anonymous forms, with parameters, return values, and default values, illustrated by sum operations and dynamic inputs.
Explore anonymous functions in typescript, store outputs in a variable and call via that variable, and master optional parameters, question mark syntax, defaults, and undefined handling.
Explore function overloading in TypeScript by distinguishing multiple signatures for add with numbers and strings, using a single implementation, optional parameters, and compatibility checks.
Learn arrow functions, anonymous lambda expressions, and converting standard functions to arrow form with parameters and a return type. See single-line syntax, omitted braces, and console.log outputs.
Explore rest parameters in functions, enabling them to accept multiple arguments as an array using the three dots syntax. See how normal parameters precede rest parameters, with a sum example.
Explore tuples as fixed-length containers for mixed or same data types, using index-based access to store and update product details or student information, highlighting order matters.
Explore tuples by inserting values with push, removing with pop, and using optional parameters at the end, then iterate an array of tuples and print each entry.
Learn how a class acts as a blueprint for creating objects (instances) with properties, methods, and constructors, and how to instantiate and access data using the new keyword in TypeScript.
Learn how inheritance links a parent and child class using extends, enabling the child to access the parent’s methods and its own, while sharing assets and loans.
Explore overriding in TypeScript within a parent-child inheritance, where the child replaces the parent’s method or variable with the same name, illustrated by print data and on road price.
Learn when to use this vs super, including accessing the current class data and calling the parent constructor. See practical examples like show price methods and console outputs.
Learn how a constructor works within a class, how it differs from methods, and how creating an object with new automatically invokes the constructor to initialize variables.
Learn how to define a TypeScript class with a parameterized constructor, initialize properties using this, and print data via a method by creating and using a student info object.
Explore TypeScript access modifiers—public, private, and protected—and learn how they control visibility of class members (properties and methods), with examples of default public access and inheritance via extends.
Explore how TypeScript modules encapsulate code, export items like variables, functions, and classes, and import them in other files to prevent conflicts and enable reuse.
Learn how interfaces define a contract a class must follow, including properties and methods, and how multiple classes can implement the same interface, illustrated with a vehicle example.
Explore the basic differences between var and let in TypeScript, highlighting function scope versus block scope, redeclaration rules, and how each behaves inside and outside blocks.
Explore Playwright, an open source Microsoft framework for web automation. Test across desktop and mobile browsers in headless mode; write in JavaScript/TypeScript, Java, Python, or C#, with built-in reporting.
Install and configure Playwright via the terminal using npm init playwright, set up a TypeScript project in Visual Studio Code, and explore Playwright config, tests, and core commands.
Install and configure Playwright in a VSCode project using the Playwright test for VSCode extension, then run, create, and debug tests with watch mode and test recording.
Execute Playwright tests across browsers using the npx playwright test command, guided by the config file, with headless, headed, or UI modes, and interpret the multi-browser report.
Execute Playwright tests in headed mode across multiple browsers (WebKit, Firefox), using projects and file targets, test titles with -g, and rerun last failed tests for efficient debugging.
Learn to debug Playwright tests with the inspector, run targeted debugs for a single spec file or a specific line, configure Chromium, and review logs and locators to diagnose failures.
Configure the playwright config to set test dir and devices, use define config, and tune fully parallel, forbid only, retries, workers, and reporter for ci/cd and local runs.
Configure Playwright timeouts and assertions in the configuration file, with a default thirty second element wait and five second assertion wait, plus a base URL and trace options.
Configure per-project Playwright settings by defining a projects array and overriding global config. Run a single project, set devices like desktop edge, and enable headless, traces, and environment URLs.
Master configuring Playwright tests through package.json scripts by defining runner variables, storing commands, and running targeted specs with npm run for multiple test runners.
Explore how Playwright's configuration file controls the retry mechanism, including local versus CI retries, worker-based test execution, and optional test info logging for debugging.
Learn how to configure Playwright to launch browsers in maximized mode by setting viewport width and height in the configuration file, using viewportsize.com as reference.
Learn to run Playwright tests directly in VSCode using the extension, explore the test explorer, run and debug tests, and toggle show browser for visual execution.
Explore running Playwright tests in UI mode for enhanced debugging, with timeline, network traffic, and source code insights, plus watch mode for auto-replay on changes.
Learn to skip tests and run only selected tests using a skip keyword and execute-only options in Playwright, with hands-on examples and test reports.
Learn to enable and configure Playwright traces to analyze test execution, capturing timelines, screenshots, actions, logs, network, and metadata with on, off, on first retry, and retain on failure options.
Import the playwright test, define an async test, and await page.goto to open the application. Use the page fixture for interactions and run with npx playwright test.
Identify web elements with locators in Playwright, using id, tag name, class name, placeholder, and text. Apply to the username, password, and login button on the source demo app.
Build a Playwright test to log into the SauceDemo app by locating the username and password fields by ID, filling them, and clicking the login button, with Playwright inspector guidance.
Master Playwright locators with page.getByRole to identify elements by role and name, emphasizing user-facing attributes for reliable login flow tests.
Utilize page.getByLabel and page.getByPlaceholder to locate form fields and fill inputs, such as username and first name, in Playwright tests.
Learn to locate elements by text or title using Playwright's getByText and getByTitle, with exact, substring, and regex patterns, and handle multiple matches by selecting the first element.
Learn to locate elements using page.getByAltText and page.getByTestId, perform clicks, and handle cookies with real examples on bing.com and amritsar.com.
Learn how to use Playwright CSS locators, prioritizing visible locators, and apply options like has a text, text, and end with index to identify the correct element.
Learn how to locate web elements with XPath and filters in Playwright, including when to use XPath versus default locators and how to filter by text to handle multiple elements.
Explore identifying elements by parent and child relationships with locator chaining in Playwright, drilling down from a parent to child to target links, and reuse via constants.
Record tests in Playwright using a VSCode extension or codegen, generate and edit scripts, and inspect actions with the Playwright inspector, including device emulation like iPhone 13.
Explore Playwright built-in annotations, including skip, fail, fixme, and slow, with practical examples showing how each annotation affects test execution and timing.
Group tests into a single describe block to organize multiple login scenarios, including valid and invalid credentials, and run the entire user module test group with Playwright.
Tag tests in Playwright and Appium to group by user stories, regression, and smoke, then run or skip them with grep and invert.
Master hooks in test automation by using before and after to manage preconditions and postconditions for groups, applying before all, before each, after each, and after all with login scenarios.
Learn how to use Playwright's expect library to implement assertions, including generic and locator assertions, and distinguish hard versus soft assertions to validate login, title, or URL.
Explore soft assertions in web automation with Playwright, using expect.soft to continue tests after failures, verify urls and page titles, and practice launching and closing pages.
Verify element states in Playwright by using URL-based and title-based assertions, check visibility and presence, validate enabled or disabled status, and test attributes and text with locator-based assertions.
Explore Playwright's auto waiting mechanism, which checks visibility, stability, event receptivity, and enabled state within a default timeout. Learn how explicit waits and wait for selector control timing and errors.
Demonstrate using wait for URL after login in Playwright, showing success when the home URL matches and a 30-second timeout leads to failure for an incorrect URL.
Master configuring timeouts in playwright, including global, tester, action, and navigation timeouts, plus per-command and per-test settings via config and optional auto slow pacing.
Master handling text fields in Playwright by filling values, clearing fields, and retrieving text with input value. See practical examples on username fields and sign-up forms.
Learn to extract a button’s text with Playwright using text content and by role, and to retrieve text from all buttons with all text content for web automation.
Master handling checkboxes in Playwright by using get by label, get by role, and locator commands to check, uncheck, and verify checkbox state, with practical comparisons to radio buttons.
Explore handling radio buttons in Playwright using the check command, with get by label, get by role, and locator options, plus assertions to verify checked states.
Learn to handle multiple checkboxes with Playwright by selecting all checkboxes, converting to an array, and unchecking them in a loop. Explore alternatives with page.check and locator-based checks.
Master selecting a single option from dropdowns using the select option method across roles, labels, and locators, including index and value attributes, with examples from a country dropdown in Salesforce.
Learn to select multiple options from a multi select dropdown by passing an array of values, using role as a listbox, with by role and select option techniques.
Practice selecting dropdown values in Playwright by clicking the dropdown and choosing options from li tags, with or without a selector tag, using locators and XPath.
Master mouse interactions and keyboard input, including single and double clicks, right-clicks, hover over elements, click at precise positions, force clicks, and sequential typing with delays.
Learn to handle frames in Playwright by using frame locator and frame object, interact with elements inside iframes, switch between frames, and manage nested frames in web automation.
Learn to retrieve tooltip text by accessing the title attribute via frame contexts, extract the tooltip value with get attribute, and print it to the console.
Demonstrates handling drag and drop in frames using Playwright with draggable and droppable elements, employing drag to and mouse interactions, including hover, down, and up actions.
Learn to handle date pickers by switching to the frame, opening the calendar, and selecting a date—either a fixed day or the next day dynamically—using robust locators.
Extract data from a web table by locating the table and tbody, recognizing the header row, and retrieving the second row's first cell with inner text or text content.
Learn to read all values from a web table by looping through rows and printing company names, contact names, and countries using for and for-each loops and row locators.
Explore how to handle alerts in Playwright by registering a dialog handler before triggering actions, and use dialog.accept to process simple alerts, confirmations, and prompts.
Learn to handle confirmation alerts in automated web and mobile automation by using a JS confirm, accept and dismiss methods, including cancel behavior and assertions.
Learn how to handle JS prompt alerts in automated tests with Playwright and Appium, including entering values, validating results, and troubleshooting prompt text case issues.
Retrieve auto suggestions from a web input using Playwright and print them to the console. Use locators, id, role, and XPath to extract and loop through suggestions.
Explore automating file uploads with Playwright using set input files on input tags to handle single or multiple files, with deletion via empty arrays.
Learn how to capture screenshots with Playwright for entire pages, partial views, or specific elements using locators or get by role, saving to a path with timestamps.
Configure Playwright test videos by enabling video options in the configuration, choosing from on, retain on a failure, or on first retry, with videos saved in the test results folder.
Learn to execute Playwright tests on a mobile emulator by configuring devices, including Galaxy Note 3 and iPhone 13 Pro, and using test info for mobile locators.
Learn to handle multiple windows and pages in Playwright by creating new pages via context, waiting for new pages before clicks, and performing actions on the new pages.
Explore configuring parallel execution in Playwright, toggling fully parallel true/false, and setting workers to run independent tests simultaneously across spec files.
Automate an end-to-end scenario for a swag labs app with Playwright and Appium, covering login, add to cart, checkout, and logout in one test.
Learn about Playwright's built-in reports: line, dot, html, json, and junit, and how to generate them via a configuration file or the command line with default html output.
Learn how to configure a base URL in Playwright using a config file and environment-specific projects to run tests against dev, QA, and staging endpoints.
Learn how a dot env file stores configuration settings and sensitive information for a test automation framework, including url and username password via process.env and npm install dot env.
Learn how to use and customize test fixtures in Playwright Test, including before and after hooks, built-in fixers, and creating a reusable custom fixer to manage environment setup.
Create a login logout fixture and refactor tests to use it, importing the fixture as an alias and wiring login before and logout after the test to enable end-to-end flow.
Install the Allure Playwright package, configure reporters in the Playwright config, and run tests to generate a results folder; then generate and open the Allure report for detailed insights.
Explore the page object model as a design pattern for structuring test automation by organizing locators and actions per page, enabling reusable login, home, cart, and info pages.
Implement the page object model in Playwright by creating an exported login page class with read-only locators for username, password, and login button. Open and close the app to test.
Customize the login test by defining locator-based fields in a page object model, importing locators, and implementing a parameterized async login for an end-to-end scenario.
Build a page object model for the home, defining add to cart, cart logo, side menu, and logout locators in TypeScript, and run a login, add to cart, logout flow.
Explore a page object model workflow that logs in, adds a product to the cart, proceeds to checkout, and logs out using a Carter page class.
Organize instance creation at the start of the page object model, implement the info page with locators and a parameterized async method, and run login, cart, and checkout flows.
Explore the page object model to automate end-to-end web and mobile flows, building an overview page, finishing orders, navigating home, and verifying the order confirmation.
Explore the page object model approach to automate tasks with Playwright & Appium, using a page manager to manage login, home, cart, info, overview, and order confirmation pages.
Learn how Playwright performs visual comparisons by capturing a reference screenshot on the first run, then comparing future screenshots and updating snapshots with pixel-difference thresholds.
Explore the fundamentals of API design and usage, including API URL, get, post, put, and delete methods, headers, authorization, json bodies, and how Karate framework applies these concepts.
Explore representational state transfer (rest) and how restful web services use HTTP with requests and responses, supporting JSON or XML, client–server interactions, and common HTTP methods.
Learn api testing with playwright using the built-in request fixer to hit a get endpoint, log the json response, and assert the status code (200 vs 201).
Master get request examples by extracting values from JSON responses, retrieving fields such as name, year, price, and color from single objects and array data using response data indexing.
Learn to perform a post request with Playwright by configuring the endpoint URL, JSON body, and headers, and extract response fields—even those with spaces—using structured access.
Learn how to perform put requests to update data, handle responses and update ids, and implement delete requests to remove objects and read confirmation messages.
Read data from a CSV file using a CSV parser and read file sync; use the first row as keys to produce an array of objects from two rows.
Learn how to read CSV data into tests, iterate over records, and populate username and password fields in Playwright tests, including handling types with ini and validating multiple data sets.
Learn to read data from a csv file with a for each loop, using backticks and dollar variables for seamless multi-row test data and two tests.
Learn to read data from a JSON file in an automation test, import JSON data, access username and password, and iterate with for or for each loops.
Read data from a JSON array containing two objects using a for each loop, referencing data.username and data.password. The tests run across both data sets.
Learn to read data from a JSON file using a for loop, replace a for each loop, and run the program with two data sets.
Explore handling API authorization with basic authentication, using a username and token encoded in base64, setting authorization headers, and making a get request to a dashboard API via Playwright.
Explore the difference between git and GitHub, and how local commits push to a remote repository on GitHub. Learn branching, cloning, pushing, pulling, reviewing, and merging workflows.
Initialize a git repository, stage changes with git add, commit with git commit, and push to a GitHub remote by configuring origin and master while addressing authentication.
Explore how GitHub actions automate CI/CD for Playwright tests, using a Playwright.yaml workflow to trigger on push or PR, run on Ubuntu, and manage test reports.
Explore how GitHub actions run a Playwright workflow from the Playwright.yaml file, install dependencies, execute tests, and generate a downloadable Playwright report.
Create an Azure pipeline by selecting a release, using an empty job, and pulling code from a GitHub artifact; run on Windows latest Python, install requirements.txt, publish JUnit results.
Explore how large language models use prompts to generate code and draft outputs, and learn how the MCP bridges the LLM and Playwright to enable browser automation.
Install the Playwright MCP server in Visual Studio Code from the official site or extensions. Create a dot vscode folder and paste the official settings content, with GitHub Copilot installed.
Create and run a Playwright MCP powered TypeScript test that navigates to bing.com, verifies the page title, and closes the browser, using prompts to generate the code.
Learn to create and run a Playwright login test for a demo app by navigating to site, entering credentials, clicking login, and closing the browser, with prompts and context guidance.
Create a Playwright test context and generate a TypeScript test to navigate bing.com and select the strict radio button in safe search.
Automate multi-window flows with Playwright by navigating to hdfc.com, opening a blogs link in a new window, handling a disclaimer popup, and proceeding to depositor login and search.
Generate manual test cases from a web context, covering positive and negative login flows for demo.com, and save them as a csv file in the test folder.
Learn how playwright agents—planner, generator, and healer—work together to create markdown test plans and generate test scripts, with VSCode steps to initialize and repair tests.
Explore how the Playwright CLI uses AI agents to automate Playwright testing, comparing its approach with MCP and focusing on efficient token usage and element handling via YAML snapshots.
Install the Playwright CLI for a project with npm, choosing global or local install, set up in VS Code, and verify installation via package.json and the skills.md documentation.
Configure the Playwright CLI in VS Code with GitHub Copilot to automate the login flow on a demo site and create the first script, capturing aml files and element references.
Learn to generate a Playwright spec file from YAML using the Playwright CLI, define the login flow, handle multiple users, and switch between TypeScript and JavaScript.
Use the Playwright CLI to automate the Salesforce login flow by entering the username and password on login.salesforce.com and clicking login, generating a single spec file from YAML references.
Explore Playwright CLI commands from the VS Code terminal, open a web page in headed mode, fill fields by element references, and review the generated snapshot.
Learn to use playwright cli sessions to manage multiple browser profiles across projects, preserving login state with persistent sessions. Monitor, snapshot, and generate multi-session test scripts.
Use the playwright cli to record a full end-to-end video of the login flow on source demo, capturing username, password, login, and title verification, saved as a named video file.
Use Playwright CLI to capture a full application trace with snapshots and screenshots, generating trace files that you can view and open to review the automated login flow.
Master mobile automation with Python and Appium, covering Android and iOS testing, pytest fixtures, parameterization, parallel execution, and a page factory framework.
In the ai-powered web & mobile automation with Playwright & Appium course, the instructor invites questions via the question tab, commits 24-hour responses, and offers weekend one-on-one sessions.
Learn Python, a general-purpose, easy-to-learn, open source, cross-platform language with a large standard library, enabling data science, machine learning, web development, and game development.
Install Python on Windows by downloading the official installer, running it, and updating the PATH in environmental variables. Verify installation with python --version and confirm pip is installed.
Install python on Mac by downloading from python.org, running the installer, and verifying the installation with python3 --version and pip3 --version.
Explore editors and install PyCharm as your integrated development environment for Python, including downloading, installing on Mac or Windows, and launching the IDE to write and debug code.
Install PyDev in the eclipse editor via the marketplace, restart, and switch to the Python perspective. Create a Python demo project and configure the interpreter; optionally set up PyCharm.
Create a PyCharm project with a chosen Python version, add a Python file, and write code with single-line and multi-line comments. Run a demo printing hello world.
Learn how variables store values and how Python infers data types such as integers, floats, and strings. See naming, arithmetic, string concatenation, type checks, and GitHub Copilot suggestions.
Install GitHub Copilot in PyCharm by navigating to settings, plugins, marketplace, and installing the Copilot plugin; then sign into GitHub and authorize the AI pair programmer.
Overview on operators introduces arithmetic, assignment, comparison, and logical operators, including modulo. See practical examples using A and B and print statements.
Continue exploring logical operators (and, or, not) and Python's identity and membership operators (is, is not, in, not in) with practical examples on truth checks and memory location.
Explore defining and manipulating the string data type in Python, including indexing, immutability, concatenation with plus, length, comparisons, and common methods like upper, lower, and starts with.
Explore type conversion in Python, including implicit conversion by the interpreter and explicit casting with int, float, and str.
Learn how Python lists store multiple items of varying data types in a single variable, preserving order and mutability, and enabling append, insert, remove, and indexing.
Learn how to manipulate lists, using indexing (including negative indices), slicing, and membership tests with the in operator. Explore sorting, reversing, removing, popping, copying, and joining lists with practical examples.
Learn how sets store unique data with no duplicates and no fixed order, define them with curly braces and comma separated values, and modify them via add and discard.
Explore set operations in Python with practical examples: add for single values, update for multiple values, and discard versus remove. Learn pop, clear, membership tests, and unions and intersections.
Explore tuples as an immutable collection similar to lists, preserving insertion order and duplicates, with index-based access and a length to count values.
Learn how tuples are immutable, access elements by index and slices, and convert to a list for edits before converting back to a tuple with insertion and count examples.
Explore how to define and work with Python dictionaries, including key-value pairs, immutability of keys, accessing values, deleting entries, and using for loops to iterate over items.
Explore advanced dictionary operations in Python, including single-line and multi-line definitions, adding and removing keys with pop and clear, and retrieving items, keys, and values while preserving insertion order.
Explains how to use Python if statements to perform conditional checks, including indentation rules, else blocks, else if (elif), nested ifs, and single-line if syntax.
Learn how to use for loops to print values from a list and generate ranges in Python, including start and stop indices.
Explore while loop basics in Python, including defining a condition, avoiding infinity loops, and incrementing a to terminate at ten; compare with for loops and note WebDriver context.
Define a function as inputs, computations, and outputs that enable code reusability. Compare user defined and built in functions, pass parameters, return results, and import Python libraries.
Explain the difference between a function and a method, and implement a single add function with arbitrary arguments to sum multiple numbers using a for loop and a tuple.
Explore the scope of variables by distinguishing local and global variables, using the global keyword to modify globals inside functions, and understanding when a variable is accessible.
Explore how to define classes and instantiate objects in Python, understand attributes and behaviors, and use docstrings and the self parameter through practical examples.
Define static methods with a decorator, bind them to the class rather than an instance, and access them via class name or object, using an exam pattern example.
Explore how the constructor with the fixed name __init__ initializes class variables and runs automatically when creating objects, with hands-on examples of defining and using constructors.
Explore inheritance by establishing relationships between parent and child classes, and learn single, multi-level, hierarchical, and multiple inheritance concepts with practical examples.
Demonstrates method overriding in a parent and child class relationship, showing how the child replaces the parent's buy land logic with its own updated behavior.
Explore Python modules and reusability, including import, from, and star syntax, and apply these patterns to playwright scripting through practical examples.
Learn how to reuse a class defined in another Python file by importing the module or importing the class directly, create an object, and call its greeting method.
Delve into anonymous lambda functions in Python, a short, single-expression alternative to def that enables unnamed operations and facilitates use with high-order functions.
Explore how Python handles runtime exceptions, distinguish errors from exceptions, and review how to handle built-in exception types with examples such as division by zero and index out of range.
Explore how Python's try and except blocks handle exceptions, such as zero division, and differentiate generic versus specific exceptions to keep program execution flowing.
Explore how try, else, and finally blocks manage exceptions, showing when else executes only after a successful try and how finally runs regardless of errors.
Explore APM3 architecture, its updates from APM2, and how plugins enhance element detection and enable migration of code from APM2 to APM3 with plugin-driven commands.
Migrate from Appium 2 to Appium 3 by resetting the setup, uninstalling and deleting apm files, verifying node and npm versions, and reinstalling apm to version 3.2.2.
Install and manage apm drivers for Android and iOS, using the apm installer to select and install ui automator 2 and xui test drivers, plus inspector plugin for element identification.
Explore how to start the APM server with the inspector plugin, access the inspector interface, and use the session builder, capability builder, and saved capabilities to attach and manage sessions.
Establish an Appium inspector session on Android by configuring automation name UIAutomator2, platform name, version, and device name, then inspect elements and interact via tap and send keys.
Explore abm3 features, migration steps, driver installation, and the abm inspector plugin, then create a basic program after migration, with abm2 content superseded.
Install Homebrew, a macOS package manager, to streamline ABM dependencies and node components; learn why this Mac prerequisite is essential and how to run the official install command.
Learn the prerequisites for Appium Python configuration across Windows and Mac, including installing Node.js, Android Studio, PyCharm, and Xcode, and updating environment variables.
Install Android Studio and Xcode, log into Apple Developer, and configure Appium Python; update Android home and path with bash/zsh profiles and Windows environment variables for platform-tools, tools, and bin.
Explore Appium 2.x features and the shift to W3C standards. Learn removal of desired capabilities, migrate to z test options and UI Automator two options, and follow installation steps.
Install Appium 2.x on macOS or Windows using npm. Resolve permission issues, start the Appium server, and install Android and iOS drivers via the Appium installer.
Discover how the APM drivers—UI Automator 2 for Android and Z UI test driver for iOS—enable device automation and replace desired capabilities with UI Automator options and UI test options.
Explore the compatibility between Appium Python client and Selenium bindings, and learn to check the official compatibility matrix to avoid runtime class not found errors.
Build a simple Appium Python program to launch Android and iOS apps using UI Automator 2 or UI test options, with Appium server and desired capabilities.
Connect an Android phone to your laptop via usb, enable developer mode by tapping the build number ten times and usb debugging, then verify with adb and mirror using visor.
Explore Appium Inspector with overview, installation, and a practical example for mobile automation; identify element attributes for native and hybrid apps and set desired capabilities to establish a session.
In today’s rapidly evolving QA landscape, modern testers must go beyond traditional automation and embrace AI-powered testing workflows. This course is designed to help you master the next generation of automation by combining AI concepts, Playwright with TypeScript, Appium for mobile automation using Python, and intelligent automation workflows using tools like n8n, Cursor, and OpenAI.
Whether you’re a manual tester looking to transition into automation, an automation engineer aiming to integrate AI into your existing frameworks, or a developer who wants to accelerate testing with intelligent code generation—this course will take you end-to-end from AI fundamentals to hands-on automation implementation.
You will learn how AI works, how LLMs think, how prompts control model behaviour, how guardrails reduce hallucination, how RAG improves accuracy, and how AI agents automate tasks. Alongside these foundations, you’ll build AI-assisted automation workflows using Playwright and Appium, generate tests using OpenAI models, create workflows in n8n, and even build Chrome Extensions & Mobile Apps using AI tools like Cursor.
By the end of this course, you will be able to build smart, scalable, and AI-driven automation systems for web and mobile applications—making you a future-ready QA professional.
Complete Topics Covered in This Course
AI & LLM Foundations
Overview on AI
Overview on LLM
Overview on RAG
Overview on Generative AI
Overview on Memory
Overview on AI Agent
Overview on LangChain & LangGraph
Overview on MCP Server
Overview on Human-in-the-Loop, Hallucination & Guardrails
Overview on Fine-Tuning
Overview on Context
Overview on Prompts
ChatGPT vs Copilot vs Cursor
Overview on OpenAI
Overview on AI Models
n8n Automation + AI Workflows
Overview on n8n workflow
Generate API Key in OpenAI
Create workflow in n8n
Create Public Chat in n8n workflow
Overview on OpenAI Tokens
Cursor: AI-Enhanced Development
CURSOR – Create a Chrome Extension for Record & Playback
CURSOR – Create an OTP Shield Mobile App
Playwright Typescript content:
Introduction to Typescript & Configuration
Overview on GitHub Copilot & Configuration
TS - Hello world program
Primitive Datatypes with examples
Overview on Constants
Operators with examples
Arithmetic Operator
Assignment Operator
Comparison Operator
Logical Operator
Ternary Operator
Overview on Conditional Statements
Switch Statements with example
Overview on loops - for , while, do-while & for-each with examples
String methods with examples
Overview on Array
Overview on Function
Function Overloading & Arrow Function
Rest Parameters
Tuple with examples
Overview on Class
Inheritance with example
Method Overriding
Overview on This & Super keyword
Constructor with Example
Access Modifiers with Examples
Overview on Module
Interface with example
var vs let with example
Overview on Playwright & installation using terminal & VSCode Extension
Create & Execute Playwright test
Debug Playwright test
Overview on Playwright configuration file
Execute Playwright test using VSCode extension & UI mode
Skip a test & ExecuteOnly options
Overview on Trace
Create a Playwright test for opening an application
Overview on locators with examples
Program to login to SauceDemo application
Page.getByRole() with example
Page.getByLabel() & Page.getByPlaceholder() with example
Page.getByTitle() & Page.getByText() with example
Page.getByAltText() & Page.getByTestId() with example
Other locators - CSS locator with examples
Overview on XPATH & Filtering with examples
Record Test using VSCode Extension | Codegen | page.pause()
Playwright Builtin Annotations
Overview on Group tests
Tag tests with example
Overview on Hooks with examples
Assertions
Overview on Auto Waiting
Overview on timeouts
How to handle text fields
How to get text from a button
How to handle Radio Buttons
How to handle Checkboxes
How to handle multiple checkboxes
How to Select value from Dropdown
How to Select values from Multi Select Dropdown
Handling Mouse Click, Type characters & Keys
Handling Frames
Handling Tooltips
Handling Drag & Drop
Handling Date Picker
Handling Webtables
How to handle Alert
Handling Auto Suggestions
How to upload files
How to capture Screenshot
How to capture videos
Execute Playwright test on Mobile Emulator
Handling Multiple Windows
Playwright configuration file - Parallel execution
E2E Scenario automation
Overview on built-in Reports with examples
Custom Reports - Allure
Overview on Page Object Model & example
Visual comparisons with examples
Overview on API & REST
GET, POST, PUT & Delete Request with examples
Reading Data from CSV File & JSON File
Handling Basic Authorization
Overview on GIT & Push Code
Overview on GitHub Actions
Overview on LLM, Prompt & MCP
Install Playwright MCP to VSCode
Create & Execute a program to launch bing using Playwright MCP
Create & Execute a program to login to saucedemo using Playwright MCP
Create Context using which Create a program to select radio button in bing
Create & Execute a program to handle multiple windows using Playwright MCP
Generate Manual Test cases by creating context
Playwright Agents Overview with example
Appium Python content:
Introduction to Python
Install Python on Windows
Install Python on MAC
Overview on editors and install PyCharm
Configure Eclipse editor for python scripting
Creating a project and adding comments to PyCharm
Data types and examples
Examples on String data type
Overview on List with examples
If Statement and examples
For Loop statements with examples
While Loop statements with examples
overview on functions and import
Introduction to Class and Object
Importance of HOMEBREW
APPIUM Python Configuration
Overview on Appium 2.X
Install Appium 2.X , Install Drivers for Android & iOS executions
Overview on Drivers & Options
Appium Python Program to Launch Android & iOS App
Overview on USB Debugging Mode & Connect Real Android Phone
Appium Inspector - Overview , Installation, Example
Scenario : Launch app & Handle Button, Text field
Scenario : Handling Alerts, Text Fields , Buttons- Singup & Login flow
Scenario : Handling Switch, Dropdown & Alert Button
Scenario : Handling DropDown using FindElements, GetAttribute
Scenario : ScrollDown using latest actions
Scenario : TAP & LongPress using latest actions
Overview on Synchronisation with examples
Start APPIUM Server using a Program
Appium Inspector ==> Record & Identify Elements using Coordinates
Examples on Keyboard Handling
Handling Hybrid App ==> Switching Context
Handling SYSTEM Apps - Camera & Calculator
Scenario - WEB APP Handling
Screenshot & Video capturing
noReset with example
OPTIONAL - MAC CONFIGURATION OVERVIEW
Establish Inspector Session for UIKitCatalog app on simulator
Handling Buttons , Text Fields, Checkbox on Simulator
Handling of Switches
Handling Alerts
Handling Date Picker
Handling Picker View
Switch Context - From Native to Web View
Tap using coordinates
Perform Scroll down on the app
Configuring PyTest & Executing Basic functions
PyTest Fixtures & Decorators with examples
PyTest Marker, Parameterised Markers with examples
PyTest Hard Assertions, Soft Assertions
PyTest Launch App on iPhone Simulator
Pytest Parameters in Launching iOS App
PyTest Reports - HTML & ALLURE with examples
PyTest - Capture Screenshot & Screenshot on Failure
Parallel Execution on Simulators
Generate Logs
Reading Data from a Config File
Read Data From Excel & Write Data in Excel
Framework - Page Factory Model
Overview on GITHUB
Appium Framework Part - Jenkins Integration
Customised framework for Mobile & Web - Single framework that supports Mobile Apps & Web application
Appium-Dashboard Plugin with examples
Appium-Image Plugin with examples
find_image_occurrence command with example
appium-device-farm plugin configuration , implementation with example
Overview on ElementID
Appium-gestures-plugin