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:
So to use other locators like xpath, css etc, we required FindBy annotation.
If you have any doubt, feel free to comment below.
If you like my posts, please like, comment, share and subscribe.