Getting Text of a Web Element
Use the getText() method to retrieve the visible text content of a web element.
Basic usage:
Java
WebElement heading = driver.findElement(By.tagName("h1"));
String text = heading.getText();
System.out.println("Heading text: " + text);
Common examples:
Java
// Get paragraph text
String paraText = driver.findElement(By.id("description")).getText();
// Get link text
String linkText = driver.findElement(By.cssSelector("a.nav-link")).getText();
// Get button text
String buttonText = driver.findElement(By.id("submitBtn")).getText();
// Get table cell text
String cellText = driver.findElement(
By.xpath("//table//tr[2]//td[1]")
).getText();
Assertion with getText():
Java
@Test
public void verifyWelcomeMessage() {
driver.get("https://example.com/dashboard");
String welcomeText = driver.findElement(By.id("welcome-msg")).getText();
Assert.assertEquals(welcomeText, "Welcome, Admin!");
Assert.assertTrue(welcomeText.contains("Welcome"));
Assert.assertFalse(welcomeText.isEmpty());
}
getText() vs getAttribute("innerText") vs getAttribute("textContent"):
Java
WebElement el = driver.findElement(By.id("myElement"));
String text1 = el.getText();
// Returns visible text — excludes hidden text (display:none)
String text2 = (String) js.executeScript("return arguments[0].innerText;", el);
// Returns rendered text — same as getText() essentially
String text3 = (String) js.executeScript("return arguments[0].textContent;", el);
// Returns ALL text including hidden text in nested elements
Get text from multiple elements:
Java
List<WebElement> items = driver.findElements(By.cssSelector("ul.nav-list li"));
for (WebElement item : items) {
System.out.println(item.getText());
}
// Or collect to list
List<String> texts = items.stream()
.map(WebElement::getText)
.collect(Collectors.toList());
getText() on input fields:
getText() returns empty string for input fields — use getAttribute("value") instead:
Java
// For <input> elements
String inputValue = driver.findElement(By.id("username")).getAttribute("value");
Key answer: Use element.getText() method to get the visible text of a web element.
