Sobes.tech
Junior

Sarlavha uchun tuzilmani qanday tashkil qilasiz?

sobes.tech AI

AIdan javob

Sarlavha Page Object sifatida taqdim etilishi mumkin bo'lib, unda sarlavha elementlari bilan o'zaro ta'sir qilish uchun lokalizatorlar va metodlar mavjud (logotip, menyu elementlari, qidiruv tugmalari, savat va boshqalar).

Lokalizatorlar klassda yoki alohida konfiguratsiya faylida saqlanishi mumkin.

Klass tuzilishi taxminan quyidagicha bo'ladi:

public class HeaderPage {

    // Sarlavha elementlarining lokalizatorlari
    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']");

    // Elementlar bilan o'zaro ta'sir qilish uchun metodlar
    public void clickLogo() {
        driver.findElement(logo).click();
    }

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

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

    // Sarlavha ichidagi elementlar bilan ishlash uchun metodlar, masalan, menyu
    public MenuItem clickMenuItem(String itemName) {
        // Menyu elementini topish va bosish logikasi
        return new MenuItem(/*...*/); // Menyu element ob'ekti qaytariladi
    }
}

Yopishadigan menyular yoki submenyular bilan ishlash uchun, bu elementlar uchun alohida Page Object'lar yaratish va ular orqali sarlavha metodlari bilan kirish mumkin.

Loyihaning papka tuzilishi misoli:

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

Testlarda, HeaderPage metodlaridan foydalanib, sarlavha bilan bog'liq harakatlar va tekshiruvlar amalga oshiriladi.

public class HeaderTests extends BaseTest { // Driverni boshlash uchun asosiy sinf

    @Test
    public void testLogoClickNavigatesToHomePage() {
        HeaderPage header = new HeaderPage();
        header.clickLogo();
        // Bosh sahifaga o'tishni tekshirish
        // Masalan, assert.assertEquals(driver.getCurrentUrl(), "https://example.com/");
    }

    @Test
    public void testCanSearchFromHeader() {
        HeaderPage header = new HeaderPage();
        header.enterSearchTerm("test product");
        header.clickSearchIcon(); // Qidiruv ikonkasiga bosish uchun metod mavjud deb faraz qilamiz
        // Qidiruv natijalari ko'rsatilishini tekshirish
    }
}

Ushbu yondashuv, sarlavha bilan ishlashda kodning o'qilishi, saqlanishi va takroran ishlatilishini ta'minlaydi.