Skip to main content

Posts

Showing posts from January, 2017

SELENIUM: Test With Usage of Nested Class

In my previous post we learnt about nested classes. So, now this is the time to make use of that in our framework. This is how we should always progress, learn about something and then implement it otherwise there is no use of learning new things. So, let's now create a test where we can use nested class. About test In this test we will try to perform below steps: Navigate to login page Login to application Navigate to Posts->All Posts menu Confirm that we are on "All Posts" page We are already familiar with step 1 and 2. So, we will be only focusing on  steps 3 and 4.   From above code snippet you can see that I have used nested class created in previous post i.e. " LeftNavigation.Posts.AllPosts.Select(browser) ;" As mentioned in previous post, this code will make user navigate to Posts->All Posts page and actual code which makes this happen is in " Select(browser) " method. See that we are passing browser instance as parame...

SELENIUM: Using Nested Classes

In this post I will be using nested class pattern to make few things easier. e.g. If you see in our test application there is a navigation bar on left side containing various menus i.e. Posts, Pages etc. Further each main menu contains sub-menu e.g. Posts menu contains sub-menues as "All Posts", "Add New", "Categories" and "Tags". In this type of situations, it is good to use nested classes to make things more readable and easy to use. E.g. Suppose I want to access "All Posts" navigation then I would want this to be done like this. " LeftNavigation.Posts.AllPosts.Select(); " i.e. I would want that there would be a class called "LeftNavigation" and when I press '.' (dot) it shows all the main menues in this navigation e.g. "All Posts", "Pages" etc. then I choose " LeftNavigation.Posts " and again when press '.' it shows all the sub-menues inside this Posts menu...

SELENIUM: Adding Next Test With Proper Test Structure-2

In previous post we have now refactored our code in a way that now we are not using static objects any more. Also, we have now tests with all required methods in it. Let's add next test to our framework which will be in proper test structure. About test Let's add next test to check that our logout works successfully. In order to do this we need to perform below steps: Navigate to login page Login to application Logout from application Check if logout was successful We have already created code for step 1 and 2. So, we need to add code for steps 3 and 4 only. See the below code snippet first for this.  We have added two test steps here i.e. " homePage.Logout() ;" and " Assert.IsTrue(loginPage.IsCurrentPage() , " Logout unsuccessful") ;".  In first step we are calling logout function of homePage that opens once we login to application successfully. And finally using Assert method we can verify whether we are logged out successfu...

SELENIUM: Adding Next Test With Proper Test Structure-1

As I mentioned in my previous post that now its time to refactor our tests a little bit so that each test is written with proper test structure as required. After refactoring tests we will add one more test to our framework with proper test structure. So, lets do it now. Refactoring tests Till now we have added two tests to our framework i.e.         And Let's refactor these tests first before adding more tests to this framework.  In each method let's log some message so that we come to know how the execution was done. # AssemblyInitialize method:     In this method let's put code to initialize the log so that it can be used throughout the assembly. Before moving to next method let's talk about other refactoring made in this test project. #1: All static classes are made non-static so that we can created instances of page objects instead of directly using them. So, now on we cannot use class directly. Instead we will...