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

Understand what an automation framework is
Choosing right automation framework for your project
Building more robust and hybrid automation framework
Leveraging the power of C# to build generic framework model
Extending the automation framework with Behavioral Driven Development with Specflow
Developing an Industry standard framework with complete modularity on framework as well as Application test code

* 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

  1. Visual Studio 2015/2017

  2. Specflow

  3. Selenium

  4. NUnit

Season 2 (2018 Upgrade)

  1. Selenium latest breaking changes support

  2. Extent Reporting Support

  3. Cross platform support

  4. Parallel Execution support

Season 2 (2019 Upgrade)

  1. Extent Report parallel execution Support

  2. Addressed Specflow 4.x breaking changes

  3. 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

  1. Data Driven
  2. Keyword driver
  3. Hybrid

Understanding automation model Preview 03:18

In this lecture we will discuss the different models of automation framework available such as

  1. Page object Model
  2. 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

  1. WaitForCondition
  2. 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

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

Introduction to .NET Core framework migration Preview 04:48

Migrating EAAutoFramework project to .NET Core 3.1 Framework Preview 11:46

Migrating CrossPlatformEATest project to .NET Core 3.1 Framework Preview 07:13

Fixing NUnit Test not shown in Test explorer with .NET Core 3 Preview 04:45

Introduction to .NET Core custom configuration Preview 04:33

Making new configuration changes with ConfigurationBuilder Preview 09:00

Making new configuration changes and running test with 100% migrated code Preview 06:40

Removing Selenium's deprecated DesiredCapabilities from EAAutoFramework Preview 08:42

Complete Source code Preview 00:03

Extent Report 4 with screenshot attachment Preview 17:20

Parallel test execution in .NET Core 3.1 Preview 03:51

Updating project to next version of Extent Reporting with .NET Standard Preview 03:29

Complete Source code Preview 00:02