Подтвердить что ты не робот

Получить видимый текст страницы с помощью selenium webdriver

Как получить видимую часть текста веб-страницы с помощью selenium webdriver без тэгов html?

Мне нужно что-то, что эквивалентно функции HtmlPage.asText() из Htmlunit.

Недостаточно взять текст с помощью функции WebDriver.getSource и проанализировать его с помощью jsoup, потому что в скрытых элементах страницы (по внешнему css) может быть что-то не интересное.

Спасибо, Дэвид

4b9b3361

Ответ 1

Выполняя By.tagName("body") (или какой-либо другой селектор, чтобы выбрать верхний элемент), тогда выполнение getText() в этом элементе вернет весь видимый текст.

Ответ 2

Я не уверен, какой язык вы используете, но на С#, объект IWebElement имеет метод .Text, который вы можете вызвать. Этот метод показывает весь текст, который отображается между элементом open и close. Я бы создал IWebElement, используя XPath, чтобы захватить всю страницу. Другими словами, вы захватываете тег элемента body и смотрите на текст в нем.

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

это не работает для селена, используйте

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

Ответ 3

Я могу помочь вам с С# Selenium. С помощью этого вы можете выбрать весь текст на этой конкретной странице и сохранить его в текстовом файле в предпочтительном месте.

//Убедитесь, что вы используете эти материалы.

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

//После достижения конкретной страницы попробуйте этот код.

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

//расположение папки

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

//если он не существует, создайте

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

//Создает файл copiedtext.txt со всем содержимым на странице.

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