Lokalizowanie elementu za pomocą nazwy klasy
Link do strony testowej: Testing Playground for Selectors
Elementy lokalizowane przez By.className
Lokalizowania elementów HTML na podstawie atrybutu class:
- Jeśli wiele elementów ma tę samą klasę – użyj findElements().
- Preferuj By.className w elementach o semanticznej nazwie klasy.
- Nie używaj do dynamicznych lub generycznych klas ("container", "row").
- Nie podawaj wielu klas naraz ("btn primary").
Element | className | Jak lokalizować |
---|---|---|
Przycisk (oba) | btn | By.className("btn") – findElements() |
Przycisk primary | primary | By.className("primary") |
Przycisk secondary | secondary | By.className("secondary") |
Pola formularza | input-field | By.className("input-field") |
Nagłówki tabeli | tableHeader | By.className("tableHeader") |
Elementy listy głównej | list-item | By.className("list-item") |
Elementy zagnieżdżone | nested | By.className("nested") |
Ukryty paragraf | topSecret | By.className("topSecret") |
Wrapper suwaka | slider-wrapper | By.className("slider-wrapper") |
Elementy scrollowane | scroll-item | switchTo().frame(...) → By.className(...) |
Przycisk "Accept" (iframe) | accept-btn | switchTo().frame(...) → By.className(...) |
Przyciski .btn primary i .btn secondary
// Kliknij pierwszy przycisk z klasą "btn"
WebElement button = driver.findElement(By.className("btn"));
button.click();
// Albo znajdź wszystkie przyciski z klasą "btn"
List<WebElement> buttons = driver.findElements(By.className("btn"));
System.out.println("Liczba przycisków z klasą btn: " + buttons.size());
Pola input – .input-field
// Wszystkie pola z klasą input-field
List<WebElement> inputs = driver.findElements(By.className("input-field"));
System.out.println("Liczba inputów z klasą input-field: " + inputs.size());
Tabela – nagłówki
List<WebElement> headers = driver.findElements(By.className("tableHeader"));
for (WebElement header : headers) {
System.out.println("Nagłówek: " + header.getText());
}
Lista zagnieżdżona
List<WebElement> listItems = driver.findElements(By.className("list-item"));
List<WebElement> nestedItems = driver.findElements(By.className("nested"));
Ukryty element
WebElement secret = driver.findElement(By.className("topSecret"));
Suwak wrapper
WebElement wrapper = driver.findElement(By.className("slider-wrapper"));
Iframe – nie dotyczy className, bo iframe ma tylko id, ale w jego srcdoc
driver.switchTo().frame("testFrame");
List<WebElement> scrollItems = driver.findElements(By.className("scroll-item"));
WebElement acceptBtn = driver.findElement(By.className("accept-btn"));
driver.switchTo().defaultContent();