Selenium Webdriver Complete Course - Build A Framework

42h 27m 57s
English
Paid
November 21, 2023

Are you confused and frustrated with your Selenium WebDriver testing?? Do your tests break often for no apparent reason?? Can you run 500 tests per day with the click of a button? If you are struggling with these issues, then you are not alone. I was there many years ago as well and struggled to figure out the proper way to do test automation with Selenium WebDriver. 

More

Here's the kicker:

You need to build a framework!

Since nobody teaches QA Engineers how to build an amazing test automation framework using Selenium WebDriver, I decided to do so.

The Complete Selenium WebDriver with C# course is crafted carefully by professionals to turn a complete beginner into the greatest Automation Test Engineers. With this course, you will be able to write Selenium WebDriver tests within minutes! 

Your Selenium tests will be easy to read and understand. Writing tests will withstand the test of time.

Everything is carefully planned and executed in high quality video tutorials. The tutorials are full of exercises on real applications to ensure higher retention rates.

WHAT WILL YOU LEARN?

What is automation testing?

  • Learn a bit about test automation and how to do it well, regardless of tools.

What is Selenium WebDriver?

  • Understand what Selenium WebDriver is and why use it

How to install the correct tools for the course?

  • Learn proper installation of tools for the course

Element Identification with Selenium

  • Master critical skills required to identify elements on any web page

Mouse and Keyboard Interactions

  • Understand the importance of using mouse and keyboard interactions to do things like drag and drop

Implicit and Explicit Waits

  • Learn when to use one over the other

Automation Testing Best Practices

Regardless of the tool that you use, you need to know automation best practices that will make any of your tests extremely stable. Master four critical rules and principles:

  • Single Responsibility Principle

  • Don't Repeat Yourself

  • Page Object Pattern

  • Acceptance Test Driven Automation

Selenium WebDriver Automation Frameworks for Two Web Apps

  • Use one app to practice WebDriver automation framework evolution - Practice on one web application that will teach you how to maintain your test automation code over time as things change. Your code will remain rock solid.

  • Use second app to practice Selenium WebDriver framework organization - Perform test automation on a second web application where you will learn how to create different features and tests for your framework. Your test architecture and organization will be flawless.

Creating logs and reports

  • Just plug and play - Take your framework to the next level as you learn how to easily and quickly create beautiful HTML reports and logs. 

C#

  • The only C# tutorial on the web designed specifically for test automation engineers using Selenium WebDriver. Master everything that you need for phenomenal test automation. Don't waste your time on lessons that you don't need to learn.

Other course features

  • Utilizing Selenium WebDriver 3.0+

  • Utilizing the latest automation testing frameworks

Bonus:

  • The only Complete Sauce Labs course in the world that will teach you advanced test automation

    • Learn cross browser test automation that's required by all employers today

    • Understand how to do parallel test execution so that you can actually scale your test automation

Requirements:
  • You should have a PC running Windows 10 Professional
  • You can also use the Mac OS

Who this course is for:

  • Any individual that simply doesn't know how to create a framework
  • Any manual tester that wants to get a better job
  • Any manual tester that wants to secure their future
  • Any person interested in learning Quality Assurance and Automation
  • Any Test Engineer that want to have stable test automation

What you'll learn:

  • 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

Watch Online Selenium Webdriver Complete Course - Build A Framework

Join premium to watch
Go to premium
# Title Duration
1 Course Overview 02:27
2 Prerequisites and FAQs 04:31
3 Syllabus for Selenium section 02:53
4 Help, I have a Selenium Error 07:59
5 Intro to Dr Tiffany and Visual Studio installation 06:05
6 How to update VS Community subscription after expiration 01:34
7 MacOS Only: Visual Studio options for Mac 10:06
8 MacOS Only: How to use Parallels for Mac 02:40
9 How to download the code 04:24
10 Creating your first project 04:48
11 Important menus in Visual Studio 05:05
12 Solution overview 04:11
13 Solution architecture 05:19
14 Coding conventions 05:17
15 End of section quiz 04:14
16 About the quizzes 02:30
17 Class library project 04:24
18 Unit test project 02:48
19 Debugging basics 05:02
20 Common shortcuts in Visual Studio 04:49
21 End of section quiz 03:53
22 Intro to variables 05:31
23 Declaring variables of simple types 06:03
24 Formatting text using concatenation 05:11
25 Using string interpolation 04:11
26 Formatting text for output 05:23
27 Verbatim strings and escape sequences 04:27
28 End of section quiz 03:31
29 Section intro 01:27
30 TestMethod TestClass Description 08:51
31 Assertions 06:27
32 ExpectedException attribute 01:55
33 Quiz on assertions and attributes 01:13
34 Quiz answer 02:28
35 TestInitialize 09:25
36 Quiz on before and after hooks 04:24
37 TestContext 10:04
38 Math with integers 05:38
39 Math with floating point numbers 05:00
40 Math with decimals 04:25
41 Coding quiz 05:27
42 Equality and relationship operators 05:08
43 If statements 05:48
44 If else statements 05:44
45 Section exam 06:57
46 Introduction to classes and objects 04:51
47 Writing a class 04:33
48 Get and set accessors 06:28
49 Writing constructors 05:28
50 Methods in classes 03:01
51 Instantiating a class object 04:38
52 Section quiz 06:04
53 The string class 05:11
54 Value vs reference types 03:38
55 Car class example 04:57
56 Employee class example 06:13
57 Scope of declarations 05:28
58 ToString method 05:45
59 End of section exam specifications 02:04
60 Exam trip class solution 04:58
61 Trip class test methods 04:31
62 Midterm exam specifications 03:58
63 Midterm project solution 06:05
64 While loops 04:17
65 Increment-decrement operators 03:29
66 Counter and sentinel controlled repetition 05:59
67 Nested loops 04:31
68 Coding quiz 04:56
69 For loops 06:01
70 Do while loops 05:13
71 Switch statement 05:29
72 Break statement 04:40
73 Continue statement 04:52
74 End of section exam instructions 02:25
75 End of section exam solution 05:27
76 Method call stack 05:17
77 Static methods 05:33
78 Method overloading 06:17
79 Method overriding 03:47
80 Coding quiz 05:59
81 Optional and named parameters 07:09
82 Out and ref keywords 06:05
83 Tuples 03:52
84 End of section exam specifications 03:09
85 End of section exam solution 06:42
86 Declaring and creating arrays 05:02
87 The ForEach loop 05:29
88 Passing arrays to methods 03:57
89 Passing array elements to methods 02:53
90 The array class 03:23
91 Coding quiz part 1 06:26
92 Coding quiz part 2 07:30
93 Arrays vs collections 03:53
94 List collection 05:51
95 List example 03:40
96 End of section exam 06:03
97 Programming with inheritance 04:38
98 Inheritance example p1 05:18
99 Inheritance example p2 04:48
100 Abstract classes 03:51
101 Abstract methods 05:34
102 Composition 05:09
103 Protected keyword 05:30
104 Coding quiz instructions 03:30
105 Coding quiz solution 06:31
106 Introduction to polymorphism 03:03
107 Polymorphism example 05:44
108 Virtual keyword 03:07
109 Sealed classes and methods 04:52
110 End of section exam specifications 04:06
111 End of section exam solution 06:51
112 Intro to interfaces 06:14
113 Selenium interfaces 05:55
114 Implementing interfaces 05:36
115 Using polymorphism with interfaces 05:27
116 End of section exam 04:16
117 Intro to exception handling 04:29
118 Try catch block 04:24
119 The finally block 02:42
120 Throw keyword 05:53
121 Coding quiz 04:02
122 Exception handling best practices 04:03
123 User defined exceptions 04:01
124 End of section exam 03:33
125 Casting 05:58
126 Delegates 06:03
127 Lambda expressions 05:33
128 Regular expressions 08:09
129 Coding quiz 07:31
130 Housing application exam 06:41
131 Housing application exam answer 1 05:04
132 Housing application exam answer 2 06:06
133 Final exam on inheritance 04:22
134 Final exam on inheritance solution 06:30
135 Introduction to automation best practices 01:22
136 Test automation pyramid is key to success 09:41
137 Focus on reliablity before more automation 04:26
138 Don't rerun failed tests 02:42
139 Always use Page Objects 06:05
140 Correct synchronization strategy 07:17
141 Don't repeat yourself 04:47
142 Keep classes and methods small 08:05
143 Conclusions 03:20
144 Introduction to selenium webdriver 00:52
145 What are the benefits of using Selenium Webdriver 04:54
146 What are the negatives of using Selenium Webdriver 03:04
147 How does Selenium help us get the perfect framework 02:34
148 Conclusions regarding this section 01:57
149 Section syllabus 03:45
150 How to keep the software at the latest versions 07:21
151 How to download and install Selenium WebDriver 05:05
152 How to download ChromeDriver 03:02
153 How to get ChromeDriver path dynamically 06:13
154 How to download Github projects and open them 04:17
155 How to import using statements 06:42
156 IWebDriver interface 04:37
157 Element ID section overview 01:32
158 Introduction to Element Identification 02:54
159 How to use Chrome for element location 05:04
160 How to get absolute XPath and CSS 04:32
161 Basic understanding of HTML 03:51
162 HTML in the browser 03:16
163 Selenium WebDriver location strategies 07:28
164 Highlighting all web elements using Selenium 04:17
165 FindElement and FindElements methods 03:32
166 Quiz on element identification 00:55
167 Quiz answer on element identification 08:38
168 Which locators are best to use 07:19
169 How to evaluate elements at run time 07:38
170 Introduction to XPath 02:51
171 Forward slash and double forward slash in XPath 05:11
172 Asterisk and @ in XPath 03:45
173 More about @ and . 03:01
174 XPath contains() function 02:44
175 XPath parent and compound class names 03:23
176 How to use multiple attributes in XPath 02:09
177 XPath exam 05:45
178 XPath exam answers 09:33
179 Navigation with Selenium WebDriver 02:04
180 Navigation quiz 02:50
181 Navigation quiz answer 03:50
182 Element manipulation with WebDriver 04:40
183 How to fill out a form 05:50
184 Quiz on element manipulation 01:49
185 Answer to manipulation quiz 09:43
186 CurrentWindowHandle, WindowHandes, PageSource, Title 05:38
187 WebDriver URL 00:57
188 Interrogating IWebElements 03:54
189 Learning all IWebElement properties 05:57
190 Element interrogation quiz 03:11
191 Element interrogation quiz answer 04:07
192 Conclusions 03:21
193 Section syllabus 02:19
194 Resources 01:06
195 Why did this test fail 04:19
196 Answer to why the test is flaky 02:45
197 What is an implicit wait in selenium 04:16
198 2nd example of an implicit wait 04:29
199 How to make implicit wait work 03:32
200 Quiz on implicit waits 05:16
201 Answer to quiz on implicit waits 02:00
202 What's next 01:21
203 What are explicit waits 03:01
204 2 types of explicit waits 03:48
205 WebDriverWait 04:17
206 ExpectedConditions 04:45
207 Customizing the WebDriverWait 07:24
208 What is the future of ExpectedConditions 11:56
209 Proper synchronization quiz 05:39
210 Synchronization quiz answer 07:38
211 What topics will be covered 01:18
212 What are user interactions in Selenium Webdriver 02:12
213 What are the different kind of user interactions 02:27
214 Don't use Firefox please 02:34
215 How to create an Actions class in Webdriver 03:21
216 Analyzing our application under test 03:43
217 Writing the drag and drop test 04:42
218 Finishing the first drag and drop test 03:16
219 Executing the first drag and drop test 03:33
220 Starting to write the 2nd drag and drop example 03:48
221 Writing a 2nd drag and drop example 02:58
222 Running a 2nd drag and drop example 02:05
223 Drag and drop quiz question 01:07
224 Drag and drop quiz answer 03:39
225 How to do a resize action with selenium webdriver 04:36
226 How to open developer tools with selenium webdriver 05:28
227 Running a test that opens a network tab in firefox 02:00
228 Drag and drop with html 5 quiz question 00:58
229 Drag and drop with html 5 answer part 1 04:32
230 Drag and drop with html 5 answer part 2 02:48
231 How to draw on a canvas with selenium quiz 00:33
232 How to draw on a canvas with selenium quiz answer 04:07
233 Conclusions 03:38
234 Overview of the rest of the course 02:04
235 Section intro and solution overview 03:17
236 Problems with record and replay 08:31
237 Problems with keyword driven testing 07:20
238 What does the code actually test? 00:58
239 Introduction to the Page Object Pattern 01:56
240 Advantages and Disadvantages of the Page Object Pattern 04:24
241 What is the DRY Principle 03:58
242 Quiz on coding page objects 01:41
243 How to start web application and run automation 06:25
244 Page Object anti-patterns 03:38
245 Automation quiz 02:26
246 Why did you struggle? 03:18
247 Examples of bad automation tests 06:03
248 Introduction to TDD 04:55
249 Check execution environment 04:34
250 Red and green phase 03:50
251 Opening complicated page 07:51
252 Finish green phase 02:43
253 Refactor 01:51
254 Red 01:44
255 Locating amazon search bar 03:19
256 Green 04:57
257 Green 2 01:46
258 Another refactor 02:56
259 Quiz on red and green 02:00
260 Quiz answer 07:48
261 Conclusions for TDD 03:53
262 Conclusions for the last several sections 02:20
263 Getting started with Selenium framework 02:11
264 Writing the test skeleton 06:12
265 Fixing compiler errors in test 06:52
266 Quiz-How to setup ChromeDriver 01:00
267 Answer to how to setup ChromeDriver 05:23
268 Getting ChromeDriver to run 04:22
269 Making GoTo and IsVisible work 05:12
270 FillOutFormAndSubmit method 07:09
271 Making 1st test pass 05:57
272 Refactor 05:45
273 Quiz on best practices 00:56
274 Answer on best practices 02:50
275 Creating a BasePage class 04:54
276 Making functional test fail 05:39
277 Summary 05:50
278 Introduction to sprint 2 05:07
279 Adding Lastname field 04:46
280 Fixing a possible problem 04:19
281 Refactor phase 02:23
282 Adding a TestCleanup 04:52
283 Quiz-how to remove more duplication? 02:52
284 Quiz answer on duplication 04:10
285 Answer on duplication 2 03:39
286 Answer on duplication 3 03:32
287 Red phase 06:34
288 Red phase 2 05:07
289 Red phase 3 04:49
290 Importance of Refactoring 05:19
291 Importance of Refactoring 2 02:47
292 Sprint 3 Quiz 01:28
293 Adding a Gender 03:25
294 Update FillOutFormAndSubmit 04:55
295 Refactoring 03:07
296 Red and Green phase 03:58
297 Quiz on Other gender 02:04
298 Quiz answer 02:25
299 Refactoring all 3 tests 03:21
300 Refactoring out Assertsion 05:02
301 Why we dont refactor the rest 01:38
302 Sprint 4 Requirements 01:52
303 FillOutEmergencyContactForm method 07:12
304 Refactoring all tests 1 04:20
305 SetGenderForEmergencyContact refactor 04:27
306 Red and green phases of sprint 4 02:39
307 Conclusions 03:41
308 Conclusions 2 03:09
309 How to organize your test cases and classes 04:04
310 Test organization in code 02:11
311 Quiz on test case 1 01:37
312 Skeleton of test case 03:07
313 Implementing the test 09:10
314 WebDriverFactory 10:43
315 Making test pass 03:38
316 Making test fail 04:03
317 Explaining WebDriverFactory 03:43
318 Quiz 2 02:15
319 Skeleton of test 01:45
320 Implementing the test 06:54
321 Running Test 2 02:30
322 A new problem 01:27
323 Creating BaseTest 05:15
324 Problems with large page objects 05:08
325 How to keep page objects small 04:02
326 Quiz on slider 01:35
327 Quiz answer on slider 07:47
328 How to organize the solution 05:52
329 How to encapsulate page locators 04:09
330 Course syllabus and prerequisites 03:56
331 Why is logging important 02:50
332 Introduction to NLog 07:08
333 How to install NLog 04:25
334 Starting to log 04:24
335 Why Info level is important 02:54
336 Understanding NLog 05:47
337 Layout in NLog 02:22
338 fileName and keepFileOpen in NLog 02:01
339 Creating the first log records 05:33
340 More information about Info logging 05:04
341 NLog Exam 05:36
342 NLog exam answer 05:20
343 NLog bug logger 02:29
344 What to focus on 01:34
345 Why do reporting in automation 01:46
346 Overview of Extent Reports 02:22
347 Overview of how to use Extent Reports 04:08
348 Solution layout and new classes 02:55
349 The Reporter class 04:10
350 The BaseTest class 04:08
351 The ScreenshotTaker class 02:33
352 Viewing test results 03:33
353 How to use the Reporter class 05:47
354 Quiz on Reporter.cs 02:04
355 Quiz answer for Reporter.cs usage 07:34
356 Conclusions about Logging and Reporting 05:26
357 Final exam 04:43
358 HTML Report and steps 04:13
359 TCID4 Answer 04:30
360 TCID5 Answer 04:34
361 TCID6 Answer part 1 06:45
362 TCID6 Answer part 2 07:04
363 TCID7 Answer 05:21
364 Prerequisites 04:14
365 Syllabus for Introduction to Sauce Labs section 01:35
366 Advantages of Sauce Labs 11:26
367 Disadvantages of Sauce Labs 13:15
368 How to sign up for Sauce Labs trial 00:52
369 Overview of Sauce Labs dashboard 01:33
370 Manual cross-browser testing 03:56
371 Tunnels, analytics, and archive tabs 03:06
372 Overview of solution 01:31
373 RemoteWebDriver 03:55
374 DesiredCapabilities 03:54
375 How to find Sauce Labs account info 03:00
376 How to run tests 02:02
377 How to analyze tests in Sauce Labs 04:00
378 How to do live debugging in Sauce 03:38
379 Sauce Labs Timeouts 02:45
380 Quiz on Sauce Labs concepts 03:45
381 Quiz answer on Sauce concepts 02:28
382 Sauce labs advanced topics course promo video 02:35
383 Overview of new project layout 05:27
384 How to run tests in parallel 03:55
385 How to set level of parallelism 05:11
386 Layout of data driven tests 04:22
387 How to do data driven cross browser testing in sauce labs 07:28
388 How to configure mobile automation in sauce labs 02:27
389 How to set test names, status, log steps in sauce labs 11:27
390 Sauce labs test insights 03:58
391 Sauce analytics trends 04:12
392 Exam on sauce concepts 04:02
393 Exam answer on sauce concepts 05:35
394 Course overview 00:57
395 Course syllabus 01:42
396 Create Applitools account and install Nuget packages 04:16
397 Why must we automate visual testing 09:07
398 Benefits of Applitools 09:57
399 What is a baseline in Applitools 07:43
400 Code overview 05:36
401 Baseline examples 08:42
402 1st comparison 05:16
403 Zooming, resizing and layers 05:32
404 Toggling and Floating region 03:44
405 Exact match level 05:05
406 Strict match level 02:41
407 Content match level 05:51
408 Layout match level 05:22
409 Introduction to Ignore regions 03:18
410 Ignore regions in code 10:54
411 Ignoring multiple regions 02:25
412 Floating region 03:15
413 Strict region 02:51
414 Content region 02:01
415 Layout region 01:12
416 Test Manager UI 11:04
417 Batches 10:42
418 Full page screenshots with CSS stitch 12:57
419 CSS stitching vs standard scroll 08:06
420 Bugs and test steps in UI 08:11
421 Test steps code 04:57
422 Fluent API 08:41
423 How programatic regions look 04:57
424 Conclusions 06:59
425 Introduction 02:49
426 Prerequisites before proceeding 02:42
427 Positives and negatives of the POM Framework 03:46
428 Downloading the POM Framework 03:36
429 Downloading Resharper 02:36
430 Opening visual studio and starting a new project 02:57
431 How to install Selenium WebDriver Nuget packages 02:35
432 How to create a unit test project and add a reference 02:15
433 How to rename a test 02:42
434 proper naming conventions of tests 01:12
435 How to code the first test 02:07
436 Understanding the first test 02:37
437 understanding the first test 2 02:38
438 understanding the first test 3 03:27
439 coding the second test 03:26
440 identifying elements of the second test 03:46
441 Fail, refactor, pass 03:16
442 fixing the tests 02:48
443 how to install chrome driver 02:31
444 Refactoring - All videos 25:08
445 Understanding a problem with these tests 04:50
446 Refactoring our test based on the DRY principle 04:22
447 Refactoring our test based on the DRY principle 2 01:47
448 Comparing the 2 tests before and after refactoring 02:25
449 Considering other problems with the current test 03:16
450 Doing a second refactoring of the test 03:30
451 Running the test and analyzing it one more time 01:45
452 Automation testing Exercise 03:18
453 Introduction to the Page Object Model 03:13
454 Introduction to the Page Object Model 2 02:22
455 Benefits of the Page Object Model 03:21
456 Benefits of the Page Object Model 2 03:19
457 Words of wisdom from Albert Einstein 04:01
458 How to start removing problems and creating a TestBase class 02:16
459 How to code an Initialize method for the TestBase class 02:20
460 How to create a static driver and the Initialize method 04:00
461 Moving the Browser class to its own file and cleaning up 02:22
462 Cleaning up the new test to inherit from TestBase 04:20
463 Comparing the new test with the older test 02:46
464 How to create a test cleanup method 02:33
465 Hermetic Test Design Pattern 04:47
466 More design patterns 02:13
467 Designing the test 03:08
468 How to create a Pages class 03:38
469 Coding the Pages class 02:33
470 Coding the Pages class 2 03:12
471 Coding the LoginPage 02:28
472 Adding a goto method to the Browser class 02:35
473 Writing the login method of the Login page 03:56
474 Running the test and checking the results 04:04
475 Creating a membership page object 02:15
476 Implementing the IsAt method 03:08
477 Rerunning the test 03:23
478 Seeing the test results of the test 01:13
479 Making sure that the test fails successfully and closing comments 03:01
480 comparing the 2 tests 05:10
481 writing the 3rd test 04:06
482 writing the 4th test 03:40
483 designing an explicit wait 3 04:19
484 designing an explicit wait 5 03:48
485 final run of the unit tests 05:08
486 Developing automation framework-all videos 53:35
487 Refactoring - all videos in one 25:08
488 Creating test automation - all videos 01:22:12
489 Analyzing the automation test-all videos 02:05:04
490 Framework-all videos 01:09:23
491 Recording automation test using selenium builder 03:18
492 Understanding the layout of the solution and the recorded test 04:39
493 Changing the remove webdriver to firefox 03:37
494 Undestandig why the test failed a 2nd time 01:46
495 Finally getting the recorded test to run 01:54
496 What are the problems with recorded functional tests 05:09
497 Conclusions regarding recorded tests 01:54
498 What can we do to fix problems with recorded functional tests? 01:27
499 Introduction to keyword driven testing 04:25
500 What can change about KDF 08:14
501 Advantages and Disadvantages of KDF tests 02:15
502 Transitioning into Page Object Pattern 01:14
503 First look at a functional test using the Page Object Model 03:29
504 Page objects look similar 01:03
505 Quiz - What about our page objects is WET 01:58
506 Quiz Answer to why our page objects are WET 01:21
507 How to add a BasePage class to our page objects 02:42

Similar courses to Selenium Webdriver Complete Course - Build A Framework

Automated Software Testing with WebdriverIO

Automated Software Testing with WebdriverIO

Duration 9 hours 47 minutes 21 seconds
Automated Software Testing with Python

Automated Software Testing with Python

Duration 13 hours 26 minutes 55 seconds
Selenium WebDriver and Design Patterns

Selenium WebDriver and Design Patterns

Duration 7 hours 42 minutes 56 seconds