Junior
Kā organizējat galvenes struktūru?
sobes.tech AI
Atbilde no AI
Virsbilde var tikt prezentēt kā Page Object, kas satur lokalizatorus un metodes virsmas elementiem (logotips, izvēlnes punkti, meklēšanas pogas, grozs utt.).
Lokalizatorus var glabāt klasē vai atsevišķā konfigurācijas failā.
Klases struktūra būs aptuveni šāda:
public class HeaderPage {
// Virsmas elementu lokalizatori
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']");
// Metodes ar elementiem
public void clickLogo() {
driver.findElement(logo).click();
}
public void enterSearchTerm(String term) {
driver.findElement(searchBar).sendKeys(term);
}
public void clickCartIcon() {
driver.findElement(cartIcon).click();
}
// Metodes darbam ar elementiem virsmas iekšpusē, piemēram, izvēlni
public MenuItem clickMenuItem(String itemName) {
// Meklēšanas un klikšķa loģika izvēlnes punktam
return new MenuItem(/*...*/); // Atgriež izvēlnes punkta objektu
}
}
Sarežģītākiem virsmas ar izkrītošām izvēlnēm vai apakšizvēlnēm var būt nepieciešams izveidot atsevišķus Page Object elementiem, piekļuvei caur virsmas metodēm.
Projekta mapju struktūras piemērs:
src/
├── main/
│ └── java/
│ └── com/
│ └── example/
│ └── project/
│ └── pages/
│ ├── HeaderPage.java
│ └── components/
│ ├── MenuItem.java
│ └── SearchBar.java
└── test/
└── java/
└── com/
└── example/
└── project/
└── tests/
└── HeaderTests.java
Testos naudosim HeaderPage metodus veiksmams atlikti ir patikrinimams, kas saistīti ar virsmas elementiem:
public class HeaderTests extends BaseTest { // Bāzes klase inicilizācijai
@Test
public void testLogoClickNavigatesToHomePage() {
HeaderPage header = new HeaderPage();
header.clickLogo();
// Pārbaude, vai notika pāreja uz sākumlapu
// Piemēram, assert.assertEquals(driver.getCurrentUrl(), "https://example.com/");
}
@Test
public void testCanSearchFromHeader() {
HeaderPage header = new HeaderPage();
header.enterSearchTerm("test product");
header.clickSearchIcon(); // Pieņem, ka ir metode meklēšanas ikonas klikšķim
// Pārbaude, vai parādās meklēšanas rezultāti
}
}
Šī pieeja nodrošina koda lasāmību, uzturēšanu un atkārtotu izmantošanu, strādājot ar virsmas elementiem dažādās lapās.