Our second issue is that, while we abstracted away our WebElement creation, we didn’t abstract away any of the heavy lifting performed by our test script. We are now using a page object, but we are still going to have lots of duplication in our code. Let’s illustrate this by looking at a script to perform a login and how we would do that using our new page objects.
Let's start with a basic login page object:
package com.masteringselenium.page_objects;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
public class LoginPage {
public static By usernameLocator = By.id("username");
public static By passwordLocator = By.id("password");
public static By loginButtonLocator = By.id("login");
}
Next, we need a test that uses this LoginPage object:
@Test
public void logInToTheWebsite...