How we change this code to PageObjectModel and action classes.
1 2 3 | driver.findElement(By.id("userEmail")).sendKeys("testA1@gmail.com"); driver.findElement(By.id("userPassword")).sendKeys("testA1#"); driver.findElement(By.id("login")).click(); |
Page Objects
We can convert the locators to Page Objects this way
/* Page Objects Model*/ @FindBy(id="userEmail") WebElement useremail; @FindBy(id="userPassword") WebElement userpass; @FindBy (id="login") WebElement login;
How do we do it
1- Use @FindBy from org.openqa.selenium.By in Selenium. Consider this is replacing "driver.findElement(By" in our standard way of locating elements.
2- Next put the locator type; id, css, xpath, classname etc
3- Add the relative value next to the locator type. For an example, if you choose 'id' as the locator type, you should get the 'id' of the element. In my case the id of the element that I chose is 'userEmail'. So I build my line like this; @FindBy(id="userEmail")
4- That's not all; We need to let Selenium know what the web element is. So add this.
WebElement <element>. In my case WebElement username;
5- So it makes up our page objects this way;
@FindBy(id="userEmail")
WebElement userName;
Action Classes
As action we input username, pass and press login button. I will show you how these can be segmented out to an action class;
public void Login(String email, String pass){ useremail.sendKeys(email); userpass.sendKeys(pass); login.click(); }
I think you can easily see how we have used each of the above page objects to action.
eeasy ha !! wait for more cool stuffs peeps :)
No comments:
Post a Comment