Основной принцип в объектной модели страницы состоит в том, что все, что связано со страницей, содержится в классе для этого объекта страницы.Вы не должны хранить локаторы и т. Д. Вне этого файла класса.
Сказав это, если у вас есть несколько общих вспомогательных методов, например, clickOnElement()
и т. Д., Вы бы сохранили их в Utils
и затем вызовите их из вашего объекта страницы.
Ваш объект страницы будет содержать
private final By usernameLocator = By.id("username");
private final By passwordLocator = By.id("password");
private final By signInButtonLocator = By.id("signin");
...
public void login(string username, string password)
{
Utils.findElement(usernameLocator).sendKeys(username);
Utils.findElement(passwordLocator).sendKeys(password);
Utils.clickElement(signInButtonLocator);
}
Ваш класс Utils
будет содержать вспомогательные методы, такие как
public WebElement findElement(By locator)
{
return driver.findElement(locator);
}
public void clickElement(By locator)
{
findElement(locator).click();
}
В качестве альтернативыкаждый объект вашей страницы может наследоваться от BasePage
класса, который содержит эти вспомогательные методы.Это изменит Utils.findElement()
на findElement()
.В любом случае, это вопрос предпочтений.