Ответ 1
Выполняя By.tagName("body")
(или какой-либо другой селектор, чтобы выбрать верхний элемент), тогда выполнение getText()
в этом элементе вернет весь видимый текст.
Как получить видимую часть текста веб-страницы с помощью selenium webdriver без тэгов html?
Мне нужно что-то, что эквивалентно функции HtmlPage.asText() из Htmlunit.
Недостаточно взять текст с помощью функции WebDriver.getSource и проанализировать его с помощью jsoup, потому что в скрытых элементах страницы (по внешнему css) может быть что-то не интересное.
Спасибо, Дэвид
Выполняя By.tagName("body")
(или какой-либо другой селектор, чтобы выбрать верхний элемент), тогда выполнение getText()
в этом элементе вернет весь видимый текст.
Я не уверен, какой язык вы используете, но на С#, объект IWebElement имеет метод .Text, который вы можете вызвать. Этот метод показывает весь текст, который отображается между элементом open и close. Я бы создал IWebElement, используя XPath, чтобы захватить всю страницу. Другими словами, вы захватываете тег элемента body и смотрите на текст в нем.
string pageText = driver.FindElement(By.XPath("//html/body/")).Text;
это не работает для селена, используйте
String yourtext= driver.findElement(By.tagName("body")).getText() ;
Я могу помочь вам с С# 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);