Saltar al contenido

Cómo usar Selenium obtener texto de un elemento sin incluir sus subelementos

Solución:

He visto esta pregunta aparecer varias veces en el último año y quería intentar escribir esta función … así que aquí tienes. Toma el elemento padre y elimina el textContent de cada hijo hasta que lo que queda es el textNode. Probé esto en tu HTML y funciona.

/**
 * Takes a parent element and strips out the textContent of all child elements and returns textNode content only
 * 
 * @param e
 *            the parent element
 * @return the text from the child textNodes
 */
public static String getTextNode(WebElement e)
{
    String text = e.getText().trim();
    List<WebElement> children = e.findElements(By.xpath("./*"));
    for (WebElement child : children)
    {
        text = text.replaceFirst(child.getText(), "").trim();
    }
    return text;
}

y tu lo llamas

System.out.println(getTextNode(driver.findElement(By.id("one"))));
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *