What framework is Page Object Model
? I would argue that it is data-driven, since, even though many actions are wrapped in user created methods, it is not totally reliant on keywords. Thus it is not Hybrid, but Data Driven because you always need to extract data from a file. Am I right?
-
POM is a system to name web page elements. What's all the stuff about data-driven, keyword driven, Hybrid, Files, etc? Lots of fun words but Page Objects are about naming page locators and just that.– Michael DurrantCommented Mar 15, 2017 at 12:31
-
I've since learned that Page Objects are also about actions and even multiple actions as services– Michael DurrantCommented May 18, 2017 at 11:37
-
Possible duplicate of Is page object a framework or design pattern?– dzieciouCommented Jul 20, 2017 at 8:54
4 Answers
The PageObject Model is not a framework. A framework is:
a basic structure underlying a system
The Page Object Model is:
Using the POM might result in a personal testing framework as it creates a part of the underlying structure for your tests.
but Data Driven because you always need to extract data from a file.
POM itself does not extract data from a file unless you would call classes a file. The PageObject should not contain test-data, just element locators, and actions. It only describes the model of the objects you want to interact with. Any data is implemented using another framework or pattern.
As others have said, the Page Object Model is a design pattern which helps to avoid repeated code.
A Framework is a code platform providing a base set of generic functionality and guidelines for implementation.
You implement design patterns within frameworks - so you might use a keyword-driven framework with the Page Object Model, for example. Or a hybrid framework with a repository pattern.
In short, the Page Object Model is framework-agnostic because it can be used with many different frameworks.
We often call POM a framework but its mostly is a design pattern/class style to create object repository.
You can make it Hybrid by adding even other testing process... like- adding cucumber-jvm to partially do some behavioral driven testing. And also data driven with Apache POI or using DataProvider.
I can see you are getting little confuse between Page Object Model and Data driven/Hybrid. Below small info might help to understand basic -
What framework is Page Object Model?
Simply its one of the design pattern type
It helps to create Object Repository for UI elements
In POM, for each web page in the application there should be corresponding page class.
Page Object Model is just a way to make your code more readable, maintainable, and reusable.
Is it data-driven?
Data driven, Hybrid or Keyword driven all those are types of functional automation testing framework
In data-driven testing the input and output values for the test are fetched from data files & In keyword driven framework we need to create a set of keywords & data tables, which are not dependent
All these nothing suggest anything about how to make code readable, maintainable & reusable but it helps to write your flow of test to be executed
Describe, How tests should get executed?
Source - Visit