Sobes.tech
Junior — Middle

How would you implement the main page structure of Yandex using the Page Object pattern?

sobes.tech AI

Answer from AI

The Page Object pattern involves creating a class that encapsulates interactions with page elements and provides methods for actions and data retrieval.

For Yandex's main page, you can create a class YandexMainPage that contains locators for key elements: search input, search button, links to services, etc. Inside the class, methods are implemented, for example, enterSearchQuery(String query), clickSearchButton(), openMailService().

Here's an example in Java using Selenium:

public class YandexMainPage {
    private WebDriver driver;

    private By searchInput = By.id("text");
    private By searchButton = By.cssSelector("button[type='submit']");

    public YandexMainPage(WebDriver driver) {
        this.driver = driver;
    }

    public void enterSearchQuery(String query) {
        driver.findElement(searchInput).sendKeys(query);
    }

    public void clickSearchButton() {
        driver.findElement(searchButton).click();
    }

    // You can add methods for checking element visibility, navigating links, etc.
}

This approach simplifies test maintenance, as UI changes only require updates in the Page Object, not in all tests.