Sobes.tech
Junior

Чӣ тавр структураи сарлавҳаро ташкил мекунед?

sobes.tech AI

Ҷавоб аз AI

Гардер метавонад ҳамчун Object Page пешниҳод карда шавад, ки локаторҳо ва методҳоро барои муомила бо унсурҳои гардер (logo, нуктаҳои меню, тугмаҳои ҷустуҷӯ, сабад ва ғайра) дар бар мегирад.

Локаторҳоро метавон дар класа ё файли конфигуратсияи алоҳида нигоҳ дошт.

Структураи класа тақрибан чунин хоҳад буд:

public class HeaderPage {

    // Локаторҳои унсурҳои гардер
    private final By logo = By.cssSelector(".header__logo");
    private final By searchBar = By.id("search-input");
    private final By cartIcon = By.xpath("//a[@class='header__cart']");

    // Методҳо барои муомила бо унсурҳо
    public void clickLogo() {
        driver.findElement(logo).click();
    }

    public void enterSearchTerm(String term) {
        driver.findElement(searchBar).sendKeys(term);
    }

    public void clickCartIcon() {
        driver.findElement(cartIcon).click();
    }

    // Методҳо барои кор бо унсурҳо дар дохили гардер, масалан, меню
    public MenuItem clickMenuItem(String itemName) {
        // Логикаи ҷустуҷӯ ва клик дар нуктаи меню
        return new MenuItem(/*...*/); // Варақгардонии объекти нуктаи меню
    }
}

Барои гардерҳои мураккаб бо менюи поён ё менюи зер, эҳтимолан зарур аст, ки Object Page ҷудогона барои ин унсурҳо созед, ки ба воситаи методҳои гардер дастрасӣ пайдо мекунанд.

Масалан, структураи папкаҳои лоиҳа:

src/
├── main/
│   └── java/
│       └── com/
│           └── example/
│               └── project/
│                   └── pages/
│                       ├── HeaderPage.java
│                       └── components/
│                           ├── MenuItem.java
│                           └── SearchBar.java
└── test/
    └── java/
        └── com/
            └── example/
                └── project/
                    └── tests/
                        └── HeaderTests.java

Дар тестҳо мо методҳоро аз HeaderPage барои иҷрои амалҳо ва санҷишҳо, ки бо гардер алоқаманданд, истифода мебарем.

public class HeaderTests extends BaseTest { // Класси асосӣ барои оғоз кардани драйвер

    @Test
    public void testLogoClickNavigatesToHomePage() {
        HeaderPage header = new HeaderPage();
        header.clickLogo();
        // Санҷиш, ки гузариш ба саҳифаи асосӣ рух додааст
        // Масалан, assert.assertEquals(driver.getCurrentUrl(), "https://example.com/");
    }

    @Test
    public void testCanSearchFromHeader() {
        HeaderPage header = new HeaderPage();
        header.enterSearchTerm("test product");
        header.clickSearchIcon(); // Пешбинӣ шудааст, ки метод барои клик кардани иконаи ҷустуҷӯ вуҷуд дорад
        // Санҷиш, ки натиҷаҳои ҷустуҷӯ намоён мешаванд
    }
}

Ин роҳ ба хондан, нигоҳдоштан ва такрор истифодаи коди дар кор бо гардер дар саҳифаҳои гуногуни барнома кӯмак мекунад.