Hogyan szervezed a fejléc szerkezetét?
sobes.tech MI
Válasz az MI-től
A fejlécet úgy lehet bemutatni, mint egy Page Object-et, amely tartalmazza a lokalizátorokat és az elemekkel való interakcióhoz szükséges módszereket (logó, menüpontok, keresőgombok, kosár stb.).
A lokalizátorokat egy osztályban vagy külön konfigurációs fájlban lehet tárolni.
Az osztály felépítése nagyjából így néz ki:
public class HeaderPage {
// A fejléc elemeinek lokalizátorai
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']");
// Az elemekkel való interakciós módszerek
public void clickLogo() {
driver.findElement(logo).click();
}
public void enterSearchTerm(String term) {
driver.findElement(searchBar).sendKeys(term);
}
public void clickCartIcon() {
driver.findElement(cartIcon).click();
}
// Módszerek a fejlécen belüli elemekkel való munkához, például menü
public MenuItem clickMenuItem(String itemName) {
// Menüelem keresése és kattintás logikája
return new MenuItem(/*...*/); // Menüelem objektum visszaadása
}
}
Komplexebb fejléc esetén, például legördülő menükkel vagy almenükkel, szükség lehet külön Page Object-ek létrehozására ezekhez az elemekhez, amelyekhez a fejléc módszerein keresztül lehet hozzáférni.
A projekt mappaszerkezete például így néz ki:
src/
├── main/
│ └── java/
│ └── com/
│ └── example/
│ └── project/
│ └── pages/
│ ├── HeaderPage.java
│ └── components/
│ ├── MenuItem.java
│ └── SearchBar.java
└── test/
└── java/
└── com/
└── example/
└── project/
└── tests/
└── HeaderTests.java
A tesztekben a HeaderPage metódusait fogjuk használni a fejléchez kapcsolódó műveletek és ellenőrzések végrehajtására.
public class HeaderTests extends BaseTest { // Az alap osztály a driver inicializálásához
@Test
public void testLogoClickNavigatesToHomePage() {
HeaderPage header = new HeaderPage();
header.clickLogo();
// Ellenőrzés, hogy a főoldalra navigált
// Például: assert.assertEquals(driver.getCurrentUrl(), "https://example.com/");
}
@Test
public void testCanSearchFromHeader() {
HeaderPage header = new HeaderPage();
header.enterSearchTerm("test product");
header.clickSearchIcon(); // Feltételezzük, hogy van egy módszer a kereső ikonra kattintáshoz
// Ellenőrzés, hogy megjelennek a keresési eredmények
}
}
Ez a megközelítés biztosítja a kód olvashatóságát, karbantarthatóságát és újrahasznosíthatóságát, amikor a fejlécet különböző oldalakon kezeljük az alkalmazásban.