Başlıq üçün strukturu necə təşkil edirsiniz?
sobes.tech Süni İntellekt
AI-dan cavab
Başlıq, başlıq elementləri ilə qarşılıqlı əlaqə üçün lokalizatorlar və metodlar ehtiva edən Page Object kimi təqdim oluna bilər (loqo, menyu elementləri, axtarış düymələri, səbət və s.).
Lokalizatorlar sinifdə və ya ayrıca konfiqurasiya faylında saxlanıla bilər.
Sinifin strukturu təxminən aşağıdakı kimi olacaq:
public class HeaderPage {
// Başlıq elementlərinin lokalizatorları
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']");
// Elementlərlə qarşılıqlı əlaqə üçün 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();
}
// Header daxilində elementlərlə işləmək üçün metodlar, məsələn, menyu
public MenuItem clickMenuItem(String itemName) {
// Menyu elementini tapmaq və klik etmək loqikası
return new MenuItem(/*...*/); // Menyu element obyektini qaytarır
}
}
Daha mürəkkəb başlıqlar üçün, açılan menyular və ya alt menyular üçün ayrıca Page Object-lər yaratmaq və bunlara header metodları vasitəsilə daxil olmaq lazım ola bilər.
Layihənin qovluq strukturu nümunəsi:
src/
├── main/
│ └── java/
│ └── com/
│ └── example/
│ └── project/
│ └── pages/
│ ├── HeaderPage.java
│ └── components/
│ ├── MenuItem.java
│ └── SearchBar.java
└── test/
└── java/
└── com/
└── example/
└── project/
└── tests/
└── HeaderTests.java
Testlərdə, HeaderPage metodlarından istifadə edərək, başlıqla əlaqəli əməliyyatlar və yoxlamalar həyata keçiriləcək.
public class HeaderTests extends BaseTest { // Driver-in başlanğıcı üçün əsas sinif
@Test
public void testLogoClickNavigatesToHomePage() {
HeaderPage header = new HeaderPage();
header.clickLogo();
// Ana səhifəyə keçidin baş verdiyini yoxlamaq
// Məsələn, assert.assertEquals(driver.getCurrentUrl(), "https://example.com/");
}
@Test
public void testCanSearchFromHeader() {
HeaderPage header = new HeaderPage();
header.enterSearchTerm("test product");
header.clickSearchIcon(); // Axtarış ikonuna klik etmək üçün metodun mövcud olduğu qəbul edilir
// Axtarış nəticələrinin göstərildiyini yoxlamaq
}
}
Bu yanaşma, başlıqla işləyərkən kodun oxunaqlılığını, saxlanmasını və təkrar istifadəsini təmin edir.