Junior
Ako organizujete štruktúru za hlavičku?
sobes.tech AI
Odpoveď od AI
Header môže byť predstavený ako Page Object, obsahujúci lokátory a metódy na interakciu s prvkami headeru (logo, položky menu, tlačidlá vyhľadávania, košík atď.).
Lokátory je možné uložiť v triede alebo samostatnom konfiguračnom súbore.
Štruktúra triedy bude približne takáto:
public class HeaderPage {
// Lokátory prvkov headeru
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']");
// Metódy na interakciu s prvkami
public void clickLogo() {
driver.findElement(logo).click();
}
public void enterSearchTerm(String term) {
driver.findElement(searchBar).sendKeys(term);
}
public void clickCartIcon() {
driver.findElement(cartIcon).click();
}
// Metódy na prácu s prvkami vnútri headeru, napríklad menu
public MenuItem clickMenuItem(String itemName) {
// Logika na vyhľadanie a kliknutie na položku menu
return new MenuItem(/*...*/); // Vraciame objekt položky menu
}
}
Pre zložitejšie hlavičky s rozbaľovacími menu alebo podmenu môže byť potrebné vytvoriť samostatné Page Objects pre tieto prvky, ku ktorým bude prístup cez metódy headeru.
Príklad štruktúry priečinkov projektu:
src/
├── main/
│ └── java/
│ └── com/
│ └── example/
│ └── project/
│ └── pages/
│ ├── HeaderPage.java
│ └── components/
│ ├── MenuItem.java
│ └── SearchBar.java
└── test/
└── java/
└── com/
└── example/
└── project/
└── tests/
└── HeaderTests.java
V testoch budeme používať metódy z HeaderPage na vykonávanie akcií a kontrol, súvisiacich s hlavičkou.
public class HeaderTests extends BaseTest { // Základná trieda pre inicializáciu ovládača
@Test
public void testLogoClickNavigatesToHomePage() {
HeaderPage header = new HeaderPage();
header.clickLogo();
// Kontrola, že došlo k prechodu na domovskú stránku
// Napríklad assert.assertEquals(driver.getCurrentUrl(), "https://example.com/");
}
@Test
public void testCanSearchFromHeader() {
HeaderPage header = new HeaderPage();
header.enterSearchTerm("test product");
header.clickSearchIcon(); // Predpokladá sa, že existuje metóda na kliknutie na ikonu vyhľadávania
// Kontrola, že sa zobrazujú výsledky vyhľadávania
}
}
Takýto prístup zabezpečuje čitateľnosť, udržiavateľnosť a opakovateľné použitie kódu pri práci s hlavičkou na rôznych stránkach aplikácie.