In This Course
Did you know that a recent poll revealed that 80% of QA Automation Engineers cannot run more than 100 functional tests daily, with 95% reliability? Furthermore, over 50% of these Automation Engineers struggle to run between 0 – 50 automated functional tests per day!
Functional test automation is a hard job. However, you can make your job much easier by learning a pattern known as the Page Object Pattern. The Page Object Pattern helps to resolve a lot of the problems that other automation techniques cannot. Making your test automation more stable as a result.
This course is designed to teach you how to properly code the Page Object Pattern using Selenium Webdriver with C#.
However, all of the information here is equally applicable to any other functional testing tool because the Page Object Pattern is a universal principle that makes test automation more robust. Similar to other universal concepts such as Don’t Repeat Yourself or Single Responsibility Principle.
Therefore, if you know Object Oriented programming and a different functional automation tool, you can still comfortably follow along with all of the principles and patterns that I lay out in this course.
In this course, you will learn:
– Why other methods such as Record & Replay or Keyword Driven do not work when it comes to test automation
– What the Page Object Pattern is in automation
– Advantages and disadvantages of the Page Objects
– Amazing tips and tricks on how to:
- Implement the Page Objects using Selenium Webdriver
- Improve your Page Objects to follow DRY Principle
- Improve Page Objects to follow SRP Principle
- Create amazing Page Objects for gigantic web pages
In This Lecture
In this video, we are going through the process of wiring up the 2nd test in code.
Selenium Tutorial – Wiring up the 2nd test in code.
So here I am back in Visual Studio. And of course, remember you can do. You can use the techniques for any kind of selenium web drive a binding the Towanda or any kind of automation tool that you want. All these techniques are applicable to any language that you want to use. But again my flavor of choices. So anyway the driver with the C-sharp. So I’m going to go ahead and wire up a test here.
Let me add the test attribute.
The way I like to write my test is I like to use test driven development in order to drive the creation of my automation framework. The reason that I like to use it has driven development is because it allows you to write that test first in English language and then you can implement the code for that actual test. It makes the tests much more readable and allows you to lay out your page object as you need them. Also, it follows the Yagami principle that says you ain’t going to need it because it allows you to only code whatever you need at the time which makes your automation very fast and very efficient.
So we can actually copy over a bunch of this actually all of this because it does the login and Dan and we validate that we are at the dashboard page which is fantastic. And then we need to add a few extra steps of clicking the log in clicking the link that’s going to take us to the course and then validating that the Course is actually opened.
So using the student dashboard page.
I’m going to resume the user interaction course. Does that make sense?
And then, of course, that’s going to return a page for me that is going to be called.
User interactions course page so of course the compiler is complaining because these methods are not yet implemented. But we’re going to implement them. So when we click the resume user interaction, of course, that’s going to return and so user interaction of course page.
Let’s go ahead and take a look at that again.
We’re so we’re here the student dashboard resume course. OK. So that’s that. Then we pull up the page and then we need to validate that the Course is opened appropriately.
And so that’s just an assertion.
So that just an assertion that we’re on the right page. And then there’s an error message just in case this fails. So now we kind of wrote We wired out our test. Now we just need to implement the methods