Ինչպե՞ս եք կազմակերպում հեդերի կառուցվածքը:
sobes.tech AI
Պատասխան AI-ից
Հեդերը կարող է ներկայացվել որպես Page Object, որը պարունակում է локատորներ և մեթոդներ հեդերի տարրերի հետ փոխազդեցության համար (լոգո, մենյուի կետեր, որոնման կոճակներ, զամբյուղ և այլն):
Լոկատորները կարելի է պահել դասի կամ առանձին կոնֆիգուրացիոն ֆայլի մեջ:
public class HeaderPage {
// Հեդերի տարրերի локատորներ
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']");
// Մեթոդներ տարրերի հետ փոխազդեցության համար
public void clickLogo() {
driver.findElement(logo).click();
}
public void enterSearchTerm(String term) {
driver.findElement(searchBar).sendKeys(term);
}
public void clickCartIcon() {
driver.findElement(cartIcon).click();
}
// Մեթոդներ հեդերի ներսում տարրերի հետ աշխատելու համար, օրինակ, մենյու
public MenuItem clickMenuItem(String itemName) {
// Փնտրելու և մենյուի կոճակին սեղմելու լոգիկա
return new MenuItem(/*...*/); // Վերադարձնում ենք մենյուի տարրի օբյեկտ
}
}
Ավելին, ավելի բարդ հեդերների համար, որոնք ունեն թափվող մենյու կամ ենթամենյու, անհրաժեշտ կարող է լինել առանձին Page Object-ներ ստեղծել այդ տարրերի համար, որոնց հասանելիությունը կկատարվի հեդերի մեթոդների միջոցով:
Ձևաչափի օրինակ՝
src/
├── main/
│ └── java/
│ └── com/
│ └── example/
│ └── project/
│ └── pages/
│ ├── HeaderPage.java
│ └── components/
│ ├── MenuItem.java
│ └── SearchBar.java
└── test/
└── java/
└── com/
└── example/
└── project/
└── tests/
└── HeaderTests.java
Տեստերում մենք օգտագործելու ենք HeaderPage-ի մեթոդները՝ գործողություններ կատարելու և ստուգումներ իրականացնելու համար, որոնք կապված են հեդերի հետ:
public class HeaderTests extends BaseTest { // Բազային դաս՝ վարորդի ինիցիալիզացիայի համար
@Test
public void testLogoClickNavigatesToHomePage() {
HeaderPage header = new HeaderPage();
header.clickLogo();
// Ստուգում, որ տեղի է ունեցել վերամուտ գլխավոր էջ
// Օրինակ, assert.assertEquals(driver.getCurrentUrl(), "https://example.com/");
}
@Test
public void testCanSearchFromHeader() {
HeaderPage header = new HeaderPage();
header.enterSearchTerm("test product");
header.clickSearchIcon(); // Կան մեթոդներ որոնման պատկերակի վրա սեղմելու համար
// Ստուգում, որ ցուցադրվում են որոնման արդյունքները
}
}
Այս մոտեցումը ապահովում է կարդալելիություն, պահպանելիություն և կրկնվող օգտագործում՝ հեդերի հետ աշխատելու ժամանակ տարբեր էջերում։