Selenium - Получить элементы html скорее Текстовое значение
Через этот код я извлек весь текст из html-документа
private void RunThroughSearch(string url)
{
private IWebDriver driver;
driver = new FirefoxDriver();
INavigation nav = driver.Navigate();
nav.GoToUrl(url);
var div = driver.FindElement(By.Id("results"));
var element = driver.FindElements(By.ClassName("sa_wr"));
}
хотя мне нужно уточнить результаты извлеченного документа
Container
HEADER -> Title of a given block
Url -> Link to the relevant block
text -> body of a given block
/Container
как вы можете видеть в моем коде, я могу получить значение текстовой части
как текстовое значение, это было хорошо, но что, если я хочу иметь
значение контейнера как HTML, а не извлеченный текст?
<div class="container">
<div class="Header"> Title...</div>
<div class="Url"> www.example.co.il</div>
<div class="ResConent"> bla.. </div>
</div>
поэтому контейнер составляет около 10 раз на странице
Мне нужно извлечь его innerHtml.
любые идеи? (с использованием селена)
Ответы
Ответ 1
Сначала найдите элемент, затем используйте IJavaScriptExecutor, чтобы получить внутренний HTML.
var element = driver.FindElements(By.ClassName("sa_wr"));
IJavaScriptExecutor js = driver as IJavaScriptExecutor;
if (js != null) {
string innerHtml = (string)js.ExecuteScript("return arguments[0].innerHTML;", element);
}
Ответ 2
Казалось, это сработало для меня и меньше кода:
var element = driver.FindElement(By.ClassName("sa_wr"));
var innerHtml = element.GetAttribute("innerHTML");