Framework Development With Selenium Csharp Advanced
An End-to-End Selenium automation framework development course
Last updated 2022-01-10 | 4.3
- Understand what an automation framework is- Choosing right automation framework for your project
- Building more robust and hybrid automation framework
What you'll learn
* Requirements
* Good understanding of Selenium* Good understanding of C# basic and little advanced
* Good understanding on Specflow and BDD
Description
Automation framework development with Selenium C# is an advanced course designed to address the End-to-End framework development with tools such as
Season 1
Visual Studio 2015/2017
Specflow
Selenium
NUnit
Season 2 (2018 Upgrade)
Selenium latest breaking changes support
Extent Reporting Support
Cross platform support
Parallel Execution support
Season 2 (2019 Upgrade)
Extent Report parallel execution Support
Addressed Specflow 4.x breaking changes
Addressed Extent report breaking changes
****************************** The course is 2019 updated *************************************
The curriculum of this course is designed not just by randomly choosing some of the topics what I know, Rather the course has evolved over a period of time (10+ years) by giving training to more than 150,000+ professional (both online and corporate training) and working in automation testing field 13+ years now
Hence the course is much refined version, meaning the course won't deviate from the topics its meant to be.
The course includes all the source code which we will discuss in the course, hence one must have all the source code required at the end of every section.
Finally, the course is for those, who are very serious about automation testing framework development from complete ground up.
Who this course is for:
- Will be best suited for one who has good understanding on Selenium basics
- Who has good understanding on basic/advanced concepts of C#
- Best for developers and testers who are planning to build automation testing with ground up
Course content
21 sections • 138 lectures
Introduction Preview 06:08
Introduction to the complete course discussion in under 10 mins
Introduction to automation framework Preview 03:18
In this lecture we will discuss the introduction to automation framework and its importance.
Types of automation testing frameworks Preview 03:16
In this lecture we will discuss the different types of automation testing frameworks available like
- Data Driven
- Keyword driver
- Hybrid
Understanding automation model Preview 03:18
In this lecture we will discuss the different models of automation framework available such as
- Page object Model
- Behavioral Driven Development Model
Presentation on Framework Introduction Preview 6 pages
Presentation on Kinds of framework Preview 5 pages
Introduction to Selenium C# .NET Core 3.1 Preview 14:34
Referencing and running Selenium test with C# .NET Core Preview 12:15
Writing Simple Selenium C# .NET Core test with Visual Studio Preview 18:04
Working with Locators Preview 19:49
Writing Custom Controls for UI components Preview 16:20
Check-in and Check-out code in GitHub Repo Preview 08:16
Bonus: GitHub Codespaces Preview 21:11
Bonus: CI/CD with GitHub Actions for Selenium C#.NET code Preview 14:10
Page Object Model in Selenium C# (Part 1) Preview 17:39
Page Object Model in Selenium C# (Part 2) Preview 13:21
Specflow with .NET Core - Setup and Getting started Preview 15:19
Specflow with .NET Core - Discovering Testing and implementing Step Definitions Preview 15:58
Specflow with .NET Core - Hooks Preview 09:36
Complete source code until Hooks Preview 00:01
Specflow with .NET Core - Context/Dependency Injections Preview 13:35
Complete Source code along with Context Injection Preview 00:00
Introduction to Framework Design Preview 02:55
In this lecture we will learning an introduction to framework design and what we will be discussing in this course
Discussion on Framework Design Preview 04:59
In this lecture we will be discussion about the framework design which we will be building in this course in complete detail
Pre-requisite before designing framework Preview 01:31
In this lecture we will talk about the pre-requisite one must have in before starting to design our framework,
Creating framework structure with Visual studio 2015 (Part a) Preview 03:18
In this lecture we will start designing our framework using Visual Studio 2015
Creating framework structure with Visual studio 2015 (Part b) Preview 03:04
In this lecture we will continue designing our framework using Visual Studio 2015
Presentation on Framework Design Preview 8 pages
Attention - EAEmployee app is now available in hosted site as well Preview 00:11
Deployment of EmployeeApp v1.0 to IIS Preview 09:59
In this video we will discuss how to
1. Deploy EmployeeApp to IIS
2. How to create user in SQL server database
3. How deployment works
Introduction to Framework Development Preview 01:05
In this lecture we will talk about the introduction to framework development
Pre-requisite of Framework Development Preview 00:51
Writing a simple code with Selenium Preview 09:17
In this lecture we will write a very simple code with Selenium
Attention - Some of code in this section will be upgraded in Section 15 Preview 00:11
Page Object Models Preview 13:22
In this lecture we will understand what Page Object Model is and how to work with POM in Selenium C#
Page Object Model (Simplified) with an abstract class Preview 07:56
In this lecture we will start working with POM, but instead of initializing the page object in all the page classes, we will initialize in one class and inherit that class in all the page classes.
Handling Web Driver object with DriverContext Preview 06:50
Page Navigation in Page Object Model Preview 12:15
In this lecture we will understand and work with Page Navigation of POM
Page Navigation without Generics Preview 05:16
In this lecture we will achieve page navigation without Generics (by using boxing and unboxing of classes)
Page Navigation with Generics in C# Preview 12:10
In this lecture we will achieve page navigation using Generics in C# and overcome the problem we discussed in previous lecture.
Handling different browsers in framework Preview 08:06
In this lecture we will create a reusable method and a class which will address how to work with different browsers from within our framework.
Summary Preview 00:41
In this lecture we will talk about the summary of this section
Introduction Preview 01:34
In this lecture we will talk about the introduction to helper components in our framework
Excel Helper (Part a) Preview 11:32
In this lecture we start our discussion on Data Driven testing and how to pull data from external data source such as excel sheet.
We will write a very generic method to read data from excel sheet and store that data into C# in-memory collection
Excel Helper (Part b) Preview 10:52
We will continue our discussion by creating ReadData method to pull data from C# in-memory collection and perform data entry operation for our UI elements of web page.
ExcelDataReader v3.0 breaking changes Preview 10:12
This lecture talks about the breaking change happened in ExcelDataReader library in v3.0. It has the updated code snippets.
Log Helper (Part a) Preview 08:15
In this lecture we will discuss the purpose of log files in automation framework and start writing logging library.
Log Helper (Part b) Preview 06:35
In this lecture we will continue our discussion of creating log helper for our framework.
HTML Helper (Part a) Preview 15:10
In this lecture we will discuss how to create an HTML helper, which can be used to perform operation on numerous different HTML tables of web page.
HTML Helper (Part b) Preview 15:28
In this lecture we will continue our discussion on creating a generic helper library which will be used to perform operation on the HTML table of web pages.
Crash course on C# Extension methods Preview 07:49
This lecture is a short crash course on C# Extension methods which help one to understand what extension methods are and how are we going to empower our helper libraries using extension methods of C#.
Database Extension Helper (Part a) Preview 06:34
In this lecture we will start our discussion on Database Extension helpers required for our framework
Database Extension Helper (Part b) Preview 07:46
In this lecture we will continue our discussion on Database Extension helpers required for our framework
Summary Preview 01:24
In this lecture we will wrap up our section
Attention - Some of code in this section will be upgraded in Section 20 Preview 00:09
Introduction Preview 02:04
In this lecture we will discuss the complete introduction of this section and the purpose of configuration in our framework.
Configuration Development classical way Preview 08:09
In this lecture we will talk developing configurations for our framework in classical way using App.config
Configuration Development (Part a) Preview 07:59
In this lecture we will start our discuss on
- How our configuration we are about to develop looks like
- What are the different namespaces in C# we are going to use for developing our custom library for configuration
Configuration Development (Part b) Preview 02:47
We will continue our discussion on custom configuration development
Summary Preview 00:31
In this lecture we will wrap our discussion of this section
Introduction Preview 01:10
In this lecture we will discuss about the introduction to developing extension components for our framework
Web Element Extension Preview 08:07
In this lecture we will create different reusable extension methods for our IWebElement type which can be used for our Application layer
Web Element Extension (Contd) Preview 04:28
In this lecture we will create different reusable extension methods for our IWebElement type which can be used for our Application layer
Web Driver Extension Preview 09:45
In this lecture we will talk about the different methods we are going to create as an extension methods for our class such as
- WaitForCondition
- WaitForPageLoaded
Summary Preview 00:40
In this lecture we will wrap our discussion of this section
Introduction Preview 00:46
In this lecture we will talk about the importance of Refactoring in our framework before going any further
Lets Talk about it Preview 03:52
In this lecture we will talk about the refactoring areas for our framework we developed so far.
Initializing test using TestInitializeHook class Preview 06:52
In this lecture we will talk about TestInitialize class of Base library of our framework and its importance in our refactoring.
Initializing test using TestInitializeHook class (Contd) Preview 07:04
In this lecture we will talk about TestInitialize class of Base library of our framework and its importance in our refactoring.
Attention - BDD course in Paid Udemy available in YouTube for FREE Preview 00:03
Introduction to BDD and Specflow Preview 04:10
In this lecture we will talk about the introduction of BDD and the purpose of BDD in automation testing world.
What are we going to discuss Preview 02:16
In this lecture we will be talking about what we are going to discuss in this complete section
Specflow Installation and getting started Preview 08:18
In this lecture we will install specflow in our visual studio and add reference to our project and start working from there.
Adding Step definitions and creating BaseStep class Preview 11:39
In this lecture we will add step definitions and create basestep class required for all our step definitions within application test project.
Adding additional steps for step definitions Preview 08:57
In this lecture we will add additional steps for our step definitions.
Adding Specflow Hooks for our HookInitialize Class Preview 08:43
In this lecture we will add specflow hooks for our HookInitialize class, which will enable Scenario initialization before running our tests.
Adding additional Scenario and reusing existing step definitions Preview 08:14
In this lecture we will understand how to work with different scenarios and reusing the existing steps with step definitions.
Creating Extended Steps in step definitions to empower step reuse Preview 07:05
In this lecture we will continue our discussion on step definition creation and we will create a special class called Extended Steps, which will hold all the reusable step definitions which can be used across all scenarios.
Resolving the problem with CurrentPage property across different steps Preview 07:17
In this lecture we will discuss how to resolve the NullPointerException that we got in last lecture and whats are the different ways we can resolve the issues.
Database Testing with Specflow Preview 11:58
In this lecture we will discuss about database testing with Specflow and how to achieve this using our DatabaseHelperExtension.
FIxing issue with Specflow Breaking change happened in 2019 Preview 02:14
Summary Preview 01:30
In this lecture we will wrap up our discussion of this section
Update framework with support of multiple browser and Database helper update Preview 00:09
Attention - Breaking changes in Pickle will make the code look obsolete Preview 00:07
Pickles and living documentation for Specflow Preview 10:48
Pickles UI for Specflow feature files an alternative to commandline Preview 11:41
Attention - This is just additional section and may easily be ignored! Preview 00:02
Consuming ExecuteAutomation Reporting system web service Preview 08:38
Running test and generating report via EARS Preview 06:33
Attention - Some of code in this section will be upgraded in Section 20 Preview 00:11
Introduction Preview 06:41
Developing configuration with configuration manager (Configuration structure) Preview 07:23
Developing configuration with configuration manager (ConfigurationElement) Preview 07:59
Developing configuration with configuration manager (ConfigurationSection) Preview 07:08
Calling custom configuration in framework Preview 07:01
Conclusion Preview 05:15
Thank you !!! Preview 00:23
Introduction to Season 2 Preview 05:14
Selenium with C# 3.11 Breaking Changes - PageFactory class will be deprecated Preview 13:05
Upgrade everthing ! Preview 09:44
Page Object Model/Configuration and Hooks refactor (Part A) Preview 09:39
Page Object Model/Configuration and Hooks refactor (Part B) Preview 04:15
Run Complete test with latest changes from public Employee App URL Preview 04:38
Source code until Page Object Model refactor Preview 00:01
Extent Reporting with Specflow and Selenium C# - Understanding ExtentReport Preview 20:10
Extent Reporting with Specflow and Selenium C# - Generate report dynamically Preview 09:56
Extent Report with Specflow and Selenium C# - Generate report with Specflow Step Preview 13:24
Historical Extent Report using Klov for Specflow and Selenium C# Preview 14:28
Implementing Extent report for EAAutoFramework Preview 08:26
Implementing Cross platform support for EAAutoFramework and Test Project Preview 14:50
Complete source code Preview 00:01
Introduction Preview 04:48
Modify Base Namespace Preview 06:59
Modify Base Namespace (Contd) Preview 09:39
Modify Page Object Model class Preview 06:34
Modify Step classes Preview 04:17
Modify Hooks Preview 05:53
Complete Execution of Test with Parallel support Preview 06:18
Complete Source code with Parallel support Preview 00:02
FAQ - Handling Page object Model failure gracefully with Selenium POM changes Preview 13:35
Complete source Code Preview 00:00
Project upgrade with Specflow + Extent report breaking changes Preview 12:09
Project upgrade with Specflow + Extent report breaking changes [Contd] Preview 06:14
Extent Report 4 with Parallel execution support Preview 06:50
Complete Source code Preview 00:02
Complete source code until Specflow + Extent reporting breaking changes