Selenium Webdriver Complete Course - Build A Framework
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
- 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
# | 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 |