Is It Possible To Use Page Factory Without FindBy In Selenium WebDriver?

Hello Folks,

We are learning about Page Object Model in selenium in previous posts. This is another part of that.

Selenium webdriver has inbuilt page object model which is called Page Factory where we write web elements(Page Objects) with it locators using annotation @FindBy. Does FindBy annotation mandatory for Page Factory?

Answer is NO.

We do not require to use FindBy annotation for a page object if it has id or name. Page Factory sets a lazy proxy for each of the WebElement and List<WebElement> fields that have been declared, assuming that the field name is also the HTML element’s “id” or “name”. This means that for the class:

public class Page
{
private WebElement submit;
}
there will be an element that can be located using the xpath expression “//*[@id=’submit’]” or “//*[@name=’submit’]”.

So below lines of code are same:

@FindBy(id=”SomeId”)
WebElement elementName;

AND

WebElement SomeId;

So to use other locators like xpath, css etc, we required FindBy annotation.
Example:

RegistrationPage.java:

Registration Script:

If you have any doubt, feel free to comment below.
If you like my posts, please like, comment, share and subscribe.
#ThanksForReading
#HappySelenium

Author: Amod Mahajan

My name is Amod Mahajan and I am an IT employee with 4+ years of experience in Software testing and staying in Bengaluru. My area of interest is Automation testing. I started from basics and went throw so many selenium tutorials. Thanks to Mukesh Otwani as his tutorials are easy and cover basics to advance. I have habit of exploring concepts by deep diving. I used to make notes. I thought of sharing my knowledge through posts and now I am here. #KeepLearning #ShareLearning