Course Highlights
  • Create a Selenium Webdriver framework from scratch using C#
  • Master C# for Software Automation Engineers
  • Understand how to do parallel test execution with NUnit: a must for all automation engineers
  • Master how to use Selenium Webdriver
  • Learn how to use any identification mechanism to find an object on a web page
  • Be desired by every employer as you create extremely reliable and stable automation tests
  • Automation testing best practices like DRY and SRP: fundamental knowledge for all automation enineers
  • Use the Page Object Pattern to develop high quality tests
  • Learn the automation testing best practices so that you can do Automation Testing with any tool
  • Understand what to automate and when
  • Learn what an Automation Engineer does at their job in the Agile lifecycle every day
  • Learn how to create HTML reports
  • Create log files so that you can debug your automation
Curriculum

29 Topics
Course Overview
Prerequisites and FAQs
Facebook Group- Get Access to our Test Automation Masters secret group!
Syllabus for Selenium section
Help I have a Selenium Error
Surprise!
Intro to Dr Tiffany and Visual Studio installation
How to update VS Community subscription after expiration
MacOS Only: Installation of Visual Studio on Mac
MacOS Only: Visual Studio options for Mac
MacOS Only: How to use Parallels for Mac
How to download the code
Source Code URL
Visual Studio Errors
Need your help
Creating your first project
Important menus in Visual Studio
Proper Communication
Solution overview
Solution architecture
Coding conventions
The best resource for learning good coding principles
Surprise 2! Download the Most Popular Automation Interview Questions Ebook
End of section quiz
About the quizzes
Quiz
Live instructor led training?
Where are the course notes?
Ultimate Cheat Sheet for Selenium C#

9 Topics
Class library project
Important note about next lecture
Unit test project
Code Lens
Debugging Quiz
Debugging basics
Common shortcuts in Visual Studio
End of section quiz
Common Visual Studio errors

12 Topics
How to create a Console Project
Intro to variables
Declaring variables of simple types
Formatting text using concatenation
Framework Reviews - Survey
Using string interpolation
Formatting text for output
Verbatim strings and escape sequences
End of section quiz
What are your thoughts so far?
An Important Note
Why are we not using NUnit in this course?

15 Topics
Section intro
TestMethod TestClass Description
Assertions
ExpectedException attribute
Use cases for ExpectedException
Quiz on assertions and attributes
Quiz answer
TestInitialize
Quiz on before and after hooks
TestContext
Quick fix to TestContext
Quiz
Quiz
CodeLens
Which topic would you like to learn next?

15 Topics
Math with integers
Mistake in the Assert.AreEqual(sum15)
Math with floating point numbers
Math with decimals
Coding quiz
Equality and relationship operators
If statements
If else statements
Warning! Where you see StringAssert.Equals use Assert.AreEqual instead!
Section exam
Leap year
Quiz
Quiz
Coding exercise
Did you enjoy coding?

21 Topics
Introduction to classes and objects
Writing a class
Get and set accessors
Writing constructors
Methods in classes
Instantiating a class object
Section quiz
The string class
Value vs reference types
Car class example
Employee class example
Scope of declarations
ToString method
End of section exam specifications
Exam trip class solution
Trip class test methods
End of section exam
Quiz
Quiz
Midterm exam
Midterm Exam

3 Topics
Midterm exam specifications
Midterm project solution
Midterm - Retail store

16 Topics
Please give me feedback on my course by writing a review!
While loops
Increment-decrement operators
Counter and sentinel controlled repetition
Nested loops
Coding quiz
For loops
Do while loops
Switch statement
Break statement
Continue statement
End of section exam instructions
End of section exam solution
End of section exam
Quiz
Quiz

13 Topics
Method call stack
Static methods
Method overloading
Method overriding
Coding quiz
Optional and named parameters
Clarification on optional params
Out and ref keywords
Tuples
End of section exam specifications
End of section exam solution
Clarification on calculation of CalculateNewAssessedValue()
End of Section Exam

15 Topics
Declaring and creating arrays
The ForEach loop
Passing arrays to methods
Passing array elements to methods
The array class
Coding quiz part 1
Coding quiz part 2
Arrays vs collections
List collection
List example
End of section exam
End of section exam
Quiz
Coding quiz
Did you enjoy the coding exercise from Hacker Rank?

18 Topics
Programming with inheritance
Inheritance example p1
Inheritance example p2
Abstract classes
Abstract methods
Composition
Protected keyword
Coding quiz instructions
Coding quiz solution
Introduction to polymorphism
Polymorphism example
Virtual keyword
Sealed classes and methods
End of section exam specifications
End of section exam solution
End of section exam
OO programming exam
OO programming exam

5 Topics
Intro to interfaces
Selenium interfaces
Implementing interfaces
Using polymorphism with interfaces
End of section exam

8 Topics
Intro to exception handling
Try catch block
The finally block
Throw keyword
Coding quiz
Exception handling best practices
User defined exceptions
End of section exam

6 Topics
Casting
Delegates
Lambda expressions
Regular expressions
Coding quiz
Coding quiz

8 Topics
Housing application exam
Housing application exam answer 1
Housing application exam answer 2
Final exam on inheritance
Final exam on inheritance solution
End of course exam
Final project housing app
Which topic would you like to learn next?

12 Topics
Please give me feedback on my course by writing a review!
Introduction to automation best practices
Test automation pyramid is key to success
Focus on reliablity before more automation
Don't rerun failed tests
Always use Page Objects
Correct synchronization strategy
Don't repeat yourself
Keep classes and methods small
Conclusions
Quiz
Quiz

5 Topics
Introduction to Selenium Webdriver
What are the benefits of using Selenium Webdriver
What are the negatives of using Selenium Webdriver
How does Selenium help us get the perfect framework
Conclusions regarding this section

8 Topics
Section syllabus
How to keep the software at the latest versions
How to download and install Selenium WebDriver
How to download ChromeDriver
How to get ChromeDriver path dynamically
How to download Github projects and open them
How to import using statements
IWebDriver interface

33 Topics
Element ID section overview
Introduction to Element Identification
Basic understanding of HTML
How to use Chrome for element location
HTML in the browser
How to get absolute XPath and CSS
Element location quiz
Selenium WebDriver location strategies
Quick note about WebDriverFactory
Highlighting all web elements using Selenium
FindElement and FindElements methods
Quiz on element identification
Quiz answer on element identification
Which locators are best to use
How to evaluate elements at run time
Introduction to XPath
Forward slash and double forward slash in XPath
Asterisk and @ in XPath
More about @ and .
XPath contains() function
XPath parent and compound class names
How to use multiple attributes in XPath
XPath exam
XPath exam answers
Let's practice!
XPath Exercise #1
XPath Exercise #1 Solution
XPath Exercise #2
XPath Exercise #2 Solution
XPath Exercise #3
XPath Exercise #3 Solution
XPath Exercise #4
XPath Exercise #4 Solution

16 Topics
Navigation with Selenium WebDriver
Navigation quiz
In the next lectures the Complicated Page url is broken
Navigation quiz answer
Element manipulation with WebDriver
How to fill out a form
Quiz on element manipulation
Answer to manipulation quiz
CurrentWindowHandle WindowHandes PageSource Title
WebDriver URL
Interrogating IWebElements
Learning all IWebElement properties
Element interrogation quiz
Element interrogation quiz answer
Conclusions
Where are the course notes?

21 Topics
Section syllabus
Resources
Bad News :(
Why did this test fail
Answer to why the test is flaky
What is an implicit wait in selenium
2nd example of an implicit wait
How to make implicit wait work
Quiz on implicit waits
Answer to quiz on implicit waits
What's next
What are explicit waits
2 types of explicit waits
WebDriverWait
ExpectedConditions
ExpectedConditions deprecated
Customizing the WebDriverWait
What is the future of ExpectedConditions
Proper synchronization quiz
Synchronization quiz answer
Updated Implicit and Explicit Waits Examples

3 Topics
What topics will be covered
What are user interactions in Selenium Webdriver
What are the different kind of user interactions

12 Topics
Don't use Firefox please
How to create an Actions class in Webdriver
Analyzing our application under test
Working with NUnit
Writing the drag and drop test
Finishing the first drag and drop test
Executing the first drag and drop test
Starting to write the 2nd drag and drop example
Writing a 2nd drag and drop example
Running a 2nd drag and drop example
Drag and drop quiz question
Drag and drop quiz answer

12 Topics
How to do a resize action with selenium webdriver
Update about the next 2 videos
How to open developer tools with selenium webdriver
Running a test that opens a network tab in firefox
Drag and drop with html 5 quiz question
Drag and drop with html 5 answer part 1
Drag and drop with html 5 answer part 2
How to draw on a canvas with selenium quiz
How to draw on a canvas with selenium quiz answer
Conclusions
Exam on Mouse and Keyboard Actions
Exam on Mouse and Keyboard Actions

15 Topics
Overview of the rest of the course
Section intro and solution overview
Problems with record and replay
Problems with keyword driven testing
More on Keyword Driven Testing
What does the code actually test?
Introduction to the Page Object Pattern
Advantages and Disadvantages of the Page Object Pattern
What is the DRY Principle
Quiz on coding page objects
How to download and install the web application
How to start web application and run automation
Page Object anti-patterns
More thorough code example
Quiz on Page Objects

21 Topics
Automation quiz
Why did you struggle?
Examples of bad automation tests
Introduction to TDD
Check execution environment
Red and green phase
Opening complicated page
Finish green phase
Refactor
Red
Warning about following lectures
Locating amazon search bar
Green
Green 2
Another refactor
Quiz on red and green
Quiz answer
Conclusions for TDD
Quiz
Conclusions for the last several sections
TDD for automation frameworks survey

18 Topics
Getting started with Selenium framework
Writing the test skeleton
Fixing compiler errors in test
Quiz-How to setup ChromeDriver
Answer to how to setup ChromeDriver
Install the NuGet Package in the Project
Making GoTo and IsVisible work
Getting ChromeDriver to run
FillOutFormAndSubmit method
Making 1st test pass
Refactor
Adding explicit waits to make the tests pass
Quiz on best practices
Answer on best practices
Creating a BasePage class
Making functional test fail
Summary
Quiz on Page Objects

14 Topics
Introduction to sprint 2
Adding Lastname field
Fixing a possible problem
Refactor phase
Adding a TestCleanup
Quiz-how to remove more duplication?
Quiz answer on duplication
Answer on duplication 2
Answer on duplication 3
Red phase
Red phase 2
Red phase 3
Importance of Refactoring
Importance of Refactoring 2

18 Topics
Sprint 3 Quiz
Adding a Gender
Update FillOutFormAndSubmit
Refactoring
Red and Green phase
Quiz on Other gender
Quiz answer
Refactoring all 3 tests
Refactoring out Assertions
Why we dont refactor the rest
Sprint 4 Requirements
FillOutEmergencyContactForm method
SetGenderForEmergencyContact refactor
Refactoring all tests 1
Red and green phases of sprint 4
Conclusions
Conclusions 2
Exam on Test Creating and Refactoring

16 Topics
How to organize your test cases and classes
Test organization in code
Quiz on test case 1
Skeleton of test case
Implementing the test
WebDriverFactory
Making test pass
Making test fail
Explaining WebDriverFactory
Quiz 2
Skeleton of test
Implementing the test
Referencing Projects in Visual Studio
Running Test 2
A new problem
Creating BaseTest

7 Topics
Problems with large page objects
How to keep page objects small
Quiz on slider
Quiz answer on slider
How to organize the solution
How to encapsulate page locators
OOP Object Recognition

14 Topics
Course syllabus and prerequisites
Why is logging important
Introduction to NLog
How to install NLog
Starting to log
Why Info level is important
Understanding NLog
Layout in NLog
fileName and keepFileOpen in NLog
Creating the first log records
More information about Info logging
NLog Exam
NLog exam answer
NLog bug logger

15 Topics
Please give me feedback on my course by writing a review!
What to focus on
Why do reporting in automation
Important note about Extent Reports version
Overview of Extent Reports
Overview of how to use Extent Reports
Solution layout and new classes
The Reporter class
The BaseTest class
The ScreenshotTaker class
Viewing test results
How to use the Reporter class
Quiz on Reporter.cs
Quiz answer for Reporter.cs usage
Conclusions about Logging and Reporting

7 Topics
Final exam
HTML Report and steps
TCID4 Answer
TCID5 Answer
TCID6 Answer part 1
TCID6 Answer part 2
TCID7 Answer

1 Topic
Definitive Guide To Parallelization in C# [MsTestNUnitSpecFlow]

2 Topics
CI/CD with Azure DevOps aka VSTS aka TFS
Which topic would you like to learn next?

26 Topics
Warning! This section contains some outdated information.
Prerequisites
Prerequisites
FYI about the tools
Syllabus for Introduction to Sauce Labs section
Course resources
Advantages of Sauce Labs
Disadvantages of Sauce Labs
How to sign up for Sauce Labs trial
Overview of Sauce Labs dashboard
Manual cross-browser testing
Tunnels analytics and archive tabs
Overview of solution
RemoteWebDriver
DesiredCapabilities
How to find Sauce Labs account info
How to run tests
How to analyze tests in Sauce Labs
How to do live debugging in Sauce
Sauce Labs Timeouts
Quiz on Sauce Labs concepts
Quiz answer on Sauce concepts
Final Exam
Final Exam
Sauce labs advanced topics course promo video
Code

12 Topics
Warning! This section contains some outdated information.
Overview of new project layout
How to run tests in parallel
How to set level of parallelism
Layout of data driven tests
How to do data driven cross browser testing in sauce labs
How to configure mobile automation in sauce labs
How to set test names status log steps in sauce labs
Sauce labs test insights
Sauce analytics trends
Exam on sauce concepts
Exam answer on sauce concepts

17 Topics
TestProject Java SDK Tutorial
Introduction to TestProject Java SDK
TestProject Setup
Sign up for FREE here
TestProject dashboards
Recording a test
Setting TestProject API Key on Mac
What is a TestProject Agent?
First TestProject Test
TestProject Trends and Reports
Quiz 1
Add 2nd Test
Safari Tests
Custom Jobs and Projects
Using JUnit 5 with TestProject
Page Objects with TestProject
Quiz 2

6 Topics
Warning! Section will be REMOVED SOON
Course overview
Course syllabus
Create Applitools account and install Nuget packages
Why must we automate visual testing
Benefits of Applitools

7 Topics
Warning! Section will be REMOVED SOON
What is a baseline in Applitools
Code overview
Baseline examples
1st comparison
Zooming resizing and layers
Toggling and Floating region

13 Topics
Warning! Section will be REMOVED SOON
Exact match level
Strict match level
Content match level
Layout match level
Introduction to Ignore regions
Ignore regions in code
Ignoring multiple regions
Floating region
Strict region
Content region
Layout region
Where are the course notes?

10 Topics
Warning! Section will be REMOVED SOON
Test Manager UI
Batches
Full page screenshots with CSS stitch
CSS stitching vs standard scroll
Bugs and test steps in UI
Test steps code
Fluent API
How programatic regions look
Conclusions

28 Topics
Warning! Section will be REMOVED SOON
Course is finished - STOP DONT GOT FURTHER
Introduction
Getting weird Selenium Webdriver Errors?
Prerequisites before proceeding
Positives and negatives of the POM Framework
Downloading the POM Framework
Downloading Resharper
Opening visual studio and starting a new project
How to install Selenium WebDriver Nuget packages
How to rename a test
Add a reference to Selenium Webdriver for your QtpTests project
How to create a unit test project and add a reference
Important Updates to QTP Tutorial
proper naming conventions of tests
How to code the first test
Understanding the first test
understanding the first test 2
understanding the first test 3
coding the second test
identifying elements of the second test
Fail refactor pass
fixing the tests
how to install chrome driver
Refactoring - All videos
Understanding a problem with these tests
Refactoring our test based on the DRY principle
Refactoring our test based on the DRY principle 2

48 Topics
Warning! Section will be REMOVED SOON
Comparing the 2 tests before and after refactoring
Considering other problems with the current test
Doing a second refactoring of the test
Running the test and analyzing it one more time
Automation testing Exercise
What are your thoughts so far?
Make sure that you have the latest source code!
Introduction to the Page Object Model
Introduction to the Page Object Model 2
Benefits of the Page Object Model
Benefits of the Page Object Model 2
Words of wisdom from Albert Einstein
How to start removing problems and creating a TestBase class
Browser class fix
Fix to the TestBase class
How to code an Initialize method for the TestBase class
How to create a static driver and the Initialize method
Moving the Browser class to its own file and cleaning up
Cleaning up the new test to inherit from TestBase
Comparing the new test with the older test
How to create a test cleanup method
Hermetic Test Design Pattern
More design patterns
Designing the test
How to create a Pages class
Coding the Pages class
Coding the Pages class 2
Coding the LoginPage
Adding a goto method to the Browser class
Writing the login method of the Login page
Running the test and checking the results
Creating a membership page object
Implementing the IsAt method
Rerunning the test
Seeing the test results of the test
Making sure that the test fails successfully and closing comments
comparing the 2 tests
writing the 3rd test
writing the 4th test
designing an explicit wait 3
designing an explicit wait 5
final run of the unit tests
Developing automation framework-all videos
Refactoring - all videos in one
Creating test automation - all videos
Analyzing the automation test-all videos
Framework-all videos

10 Topics
Warning! Section will be REMOVED SOON
Recording automation test using selenium builder
Understanding the layout of the solution and the recorded test
Changing the remove webdriver to firefox
Undestandig why the test failed a 2nd time
Finally getting the recorded test to run
What are the problems with recorded functional tests
Conclusions regarding recorded tests
What can we do to fix problems with recorded functional tests?
Quiz

5 Topics
Warning! Section will be REMOVED SOON
Introduction to keyword driven testing
What can change about KDF
Advantages and Disadvantages of KDF tests
Transitioning into Page Object Pattern

3 Topics
Warning! Section will be REMOVED SOON
First look at a functional test using the Page Object Model
Page objects look similar

5 Topics
Warning! Section will be REMOVED SOON
Quiz - What about our page objects is WET
Quiz Answer to why our page objects are WET
How to add a BasePage class to our page objects
BONUS LECTURE!!!

  Write a Review

Selenium WebDriver Masterclass with C#

Go to Paid Course