type tag name find_element selenium-webdriver

selenium-webdriver - tag - selenium xpath



obtener texto visible de la página con Selenium webdriver (3)

¿Cómo obtengo la porción de texto visible de una página web con Selenium webdriver sin las etiquetas html?

Necesito algo equivalente a la función HtmlPage.asText () de Htmlunit.

No es suficiente tomar el texto con la función WebDriver.getSource y analizarlo con jsoup porque podría haber en la página elementos ocultos (por css externos) que no me interesan.

Gracias, David


No estoy seguro de qué idioma está utilizando, pero en C #, el objeto IWebElement tiene un método .Text al que puede llamar. Ese método muestra todo el texto que se muestra entre los elementos abrir y cerrar. Crearía un IWebElement usando XPath para captar toda la página. En otras palabras, está agarrando la etiqueta del elemento del cuerpo y mirando el texto que contiene.

string pageText = driver.FindElement(By.XPath("//html/body/")).Text;

esto no funciona para el selenio, use

String yourtext= driver.findElement(By.tagName("body")).getText() ;


Puedo ayudarte con c # Selenium. Al usar esto, puede seleccionar todo el texto en esa página en particular y guardarlo en un archivo de texto en su ubicación preferida.

// Asegúrate de usar estos productos.

using System.IO; using System.Text; using OpenQA.Selenium; using OpenQA.Selenium.Support.UI;

// Después de llegar a la página en particular prueba este código.

IWebElement body = driver.FindElement(By.TagName("body")); var result = driver.FindElement(By.TagName("body")).Text;

// ubicación de la carpeta

var dir = @"C:Textfile" + DateTime.Now.ToShortDateString();

// si no existe, crea

if (!Directory.Exists(dir)) Directory.CreateDirectory(dir);

// Crea un archivo copiedtext.txt con todos los contenidos en la página.

File.AppendAllText(Path.Combine(dir, "Copiedtext.txt"), result);


Hacer By.tagName("body") (o algún otro selector para seleccionar el elemento superior), y luego realizar getText() en ese elemento devolverá todo el texto visible.