The Journey pattern - the successor to PageObject
“The Journey pattern” supplants PageObject as the go-to UI automation pattern. This post explains why you should care and how you can start upgrading your PageObjects tomorrow.
The home favourite: the PageObject pattern
The Page Object pattern has become the de-facto UI automation pattern - even the official Selenium docs include a description. The idea is to separate your test code into classes corresponding to each different screen (i.e. ‘Page’), with one method for each interaction with the page. To simplify the example from the docs, the following code
driver.findElement(By.cssSelector("username")).sendKeys("myUsername");
driver.findElement(By.cssSelector("password")).sendKeys("myPassword");
driver.findElement(By.cssSelector("loginButton")).click();
becomes
new LoginPage(driver).loginAs("myUsername", "myPassword");
// PageObject
public class LoginPage {
private WebDriver
...