</>

Technology

Selenium

Difficulty

Beginner

Interview Question

How to get the text of a web element in Selenium?

Use element.getText() method to retrieve the visible text content of a web element in Selenium WebDriver.

Answer

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.

Follow AutomateQA

Related Topics