Lokalizowanie elementu za pomocą tagu

Link do strony testowej: Testing Playground for Selectors

Elementy lokalizowane przez By.tagName

Lokalizuje elementy po ich nazwie tagu HTML:

  • Używaj razem z findElements() do zbiorów.
  • Idealny do tabel, list, formularzy.
  • Unikaj w dynamicznych strukturach DOM.
ElementtagNameJak lokalizowaćPrzykład kodu
Nagłówek stronyh1By.tagName("h1")getText()
Wszystkie przyciskibuttonfindElements(By.tagName("button")).click(), .getText()
Wszystkie pola inputinputfindElements(By.tagName("input")).getAttribute("type"), .sendKeys()
TabelatableBy.tagName("table") lub .findElements("tr").getText() z komórek
LinkiafindElements(By.tagName("a")).getText(), .getAttribute("href")
Lista z elementamiliBy.tagName("li").getText()
IframeiframeBy.tagName("iframe")driver.switchTo().frame(...)

Nagłówek strony

WebElement header = driver.findElement(By.tagName("h1"));
System.out.println(header.getText());

Przycisk

List<WebElement> buttons = driver.findElements(By.tagName("button"));
System.out.println("Ilość przycisków: " + buttons.size());

Pola formularza <input>

List<WebElement> inputs = driver.findElements(By.tagName("input"));
for (WebElement input : inputs) {
    System.out.println("Typ pola: " + input.getAttribute("type"));
}

Tabela <table>, wiersze <tr>, komórki <td>

WebElement table = driver.findElement(By.id("dataTable"));
List<WebElement> rows = table.findElements(By.tagName("tr"));

for (WebElement row : rows) {
    List<WebElement> cells = row.findElements(By.tagName("td"));
    for (WebElement cell : cells) {
        System.out.println("Komórka: " + cell.getText());
    }
}

Link <a>

List<WebElement> links = driver.findElements(By.tagName("a"));
for (WebElement link : links) {
    System.out.println(link.getText() + " → " + link.getAttribute("href"));
}

Listy <ul> i <li>

List<WebElement> links = driver.findElements(By.tagName("a"));
for (WebElement link : links) {
    System.out.println(link.getText() + " → " + link.getAttribute("href"));
}

Iframe <iframe>

WebElement iframe = driver.findElement(By.tagName("iframe"));
driver.switchTo().frame(iframe);