Skip to main content

SELENIUM: Page Object Model


As now we have created our first hello selenium test successfully, I think it is the good time to know something about architecture of framework that we are going to design. It is always good to know what actually happens when you do something as it gives you a better understanding of it and you can easily know what you need to do, how you need to do and where could be the fault if something wrong happens.

So, let's go through it in brief.


Page Object Model 


The basic idea of this page object model is that we have a class for each page or a logical part in our application and it contains methods in it which represents the functionality of this page. Further, tests interacts with the corresponding page class and access its methods as required. 




In above picture there is a login page that is there in our application and corresponding to this login page there is a LoginPage class having all the methods defined in it which corresponds to the various functionalities of this login page.

After this, there are few tests which are interacting with the login class to execute a particular scenario. 

In page object model, it is not necessarily true that there could be a class for each page in our application. We might create a page for each logical module too e.g. header and footer.

Further, methods in page class could be all the actions that user can perform on this page rather than creating one for each ui element on the page. 

In general, effectiveness of the framework depends upon how actually we manage different layers? How good our classes are? Have we covered all the functionalities that a page represents? Can user write all his test scenarios using this framework and how easily he/she can use this framework?

So, we should always keep these things in mind while creating a framework besides other important things.




In my next post I will be writing about some useful facts that you should keep in mind while developing a framework.


Thanks for reading this post and see you in next post. Cya!  





Comments

Popular posts from this blog

Logging in Selenium - To File

In my previous post I explained you how you can configure log4net in your project to do logging to console with example. Now, in this post I will be explaining how we can configure log4net to log to file instead of console. As we already have working logs to console from our TestFramework so logging to file doesn't take much efforts. You just need to follow below steps and you are done. Configuring log4net to log to file Step 1 : Add an " app.config " file in your UITests project with content as shown below: Step 2:   Change configurator in Configure method of Log class That's it. Now, when you will run the test it will log to console as well as file named " Test.log ". This file can be found at \TestFramework\UITests\bin\Debug location in you project folder. As you saw, we just added app.config file and then changed the configurator in order to log to file. Earlier we used "BasicConfigurator.Configure()" which writes logs to cons...

Logging in Selenium

Any application is incomplete until it's activities are traceable. Here comes the use of logging. By logging important actions you can later on track anything you want especially when there are some error situations. It becomes easy to debug the issues if logs are generated properly. Similarly, it is very important that our automation framework generates logs so that whenever any test fails, we can track the issue by tracing it's logs. In this post, I will be explaining you how we can log using log4net in selenium. Before using methods of this library we need to configure this to our application. Let's do this first then. Configuring log4net in selenium: First of all you need to download this library so that this can be used. You can read about log4net and then download it from this link and save the dll file after extracting it to folder that is under your project folder. After downloading this library you need to add references of this in you project. To do ...

SELENIUM: Some Useful Facts

Before we start designing a framework, there are few facts that we should always remember. It is not important what you have designed, it is more important that how good your product is. Also, this kind of analysis should always be done in the beginning so that you don't have to devote extra time and efforts for it later. It is always good to fix something in beginning than worrying about it later when it has become a big issue and become difficult to locate the issue. It's not like that we won't be able to fix it, we will definitely fix it but with more cost and efforts. Let's go through few of these facts. Layers in Framework You should always keep in mind the layers that should be there in the framework you are designing. Layers to be created generally varies application to application that you are creating but most of the frameworks contains below layers often. In above picture, there is workflow layer at the top. Workflows can be think of as somet...