Başlık için yapıyı nasıl organize ediyorsunuz?
sobes.tech yapay zeka
AI'dan gelen yanıt
Başlık, başlık öğeleriyle etkileşim kurmak için konumlayıcılar ve yöntemler içeren Page Object olarak temsil edilebilir (logo, menü öğeleri, arama düğmeleri, sepet vb.).
Konumlayıcılar, bir sınıfta veya ayrı bir yapılandırma dosyasında saklanabilir.
Sınıf yapısı yaklaşık olarak şu şekilde olacaktır:
public class HeaderPage {
// Başlık öğelerinin konumlayıcıları
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']");
// Öğelerle etkileşim yöntemleri
public void clickLogo() {
driver.findElement(logo).click();
}
public void enterSearchTerm(String term) {
driver.findElement(searchBar).sendKeys(term);
}
public void clickCartIcon() {
driver.findElement(cartIcon).click();
}
// Menü gibi başlık içi öğelerle çalışma yöntemleri
public MenuItem clickMenuItem(String itemName) {
// Menü öğesini bulma ve tıklama mantığı
return new MenuItem(/*...*/); // Menü öğesi nesnesini döndürür
}
}
Açılır menüler veya alt menüler içeren daha karmaşık başlıklar için, bu öğeler için ayrı Page Object'ler oluşturmak gerekebilir ve bunlara başlık yöntemleri aracılığıyla erişilebilir.
Proje klasör yapısı örneği:
src/
├── main/
│ └── java/
│ └── com/
│ └── example/
│ └── project/
│ └── pages/
│ ├── HeaderPage.java
│ └── components/
│ ├── MenuItem.java
│ └── SearchBar.java
└── test/
└── java/
└── com/
└── example/
└── project/
└── tests/
└── HeaderTests.java
Testlerde, HeaderPage'den alınan yöntemler kullanılarak başlıkla ilgili işlemler ve kontroller yapılacaktır.
public class HeaderTests extends BaseTest { // Driver'ın başlatılmasını sağlayan temel sınıf
@Test
public void testLogoClickNavigatesToHomePage() {
HeaderPage header = new HeaderPage();
header.clickLogo();
// Ana sayfaya geçişin gerçekleştiğinin doğrulanması
// Örneğin, assert.assertEquals(driver.getCurrentUrl(), "https://example.com/");
}
@Test
public void testCanSearchFromHeader() {
HeaderPage header = new HeaderPage();
header.enterSearchTerm("test product");
header.clickSearchIcon(); // Arama ikonuna tıklama yöntemi varsayılır
// Arama sonuçlarının gösterildiğinin doğrulanması
}
}
Bu yaklaşım, başlıkla ilgili kodun okunabilirliğini, sürdürülebilirliğini ve tekrar kullanılabilirliğini sağlar.