Q. Is it true that it is only used when you need to enter different sets of data into the same edit field multiple times?
A. No. That is the advantage that most programmers point to first. The other reason for using a page object is to have tests written fully in plain english, including the element selectors and for me that is actually the main reason. With today's editors I can globally search and replace easily, but adding meaning by describing the element in plain English is something that requires a human brain.
Q. Is it true that in fact there are more applications that don't use POM than applications that do?
A. This is really unknowable without surveying hundreds or thousands of companies. All I can really say is that for small new companies it may not be used but for larger companies with more complex applications it quickly becomes a common pattern to aid in maintainability.
Q. Do I understand it right that POM can be implemented without Page Factory and if so, when is it worth using Page Factory?
A. Yes, you don't need a Page Factory. You use one when there is a lot of functionality that can be broken down and shared and you want to avoid repetition.
I have implemented the Page Object pattern in many different ways, including
- Simple variables, defined in one file
- A class with a method for each element that need to be identified and used
- A yaml file that contains key-values pairs, key=name_description, value=element_identifier
so as you can see, the concept that this is a specific object pattern is not really true as it now exists in many forms.