Как извлечь текст из дочерних текстовых узлов - Selenium - PullRequest
0 голосов
/ 26 апреля 2018

Из приведенного ниже кода я хотел бы извлечь: «Я даю вам 0,00 евро».

С помощью следующего xpath я могу выбрать его из инструментов разработчика:

// * [@ ид = "WindowID"] / текст () [2]

Но с помощью Selenium я могу искать только этот элемент с driver.findElement(By.Xpath(""))

Проблема в том, что он говорит, что результатом выражения xpath является не элемент, а [текст объекта]

Если я нацеливаюсь только на div предка (windowID), то весь текст получен. Я только хочу, чтобы упомянутая часть была сохранена в строку.

<div id="windowID" class="windowClass">"Your are awesome."<br>"I give you €0.00."<br>"But you should give me €0.00."<br>"Would you like to do that?"</div>

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

Чтобы извлечь текст Я даю вам 0,00 евро. Вы можете использовать следующую строку кода:

IWebElement elem = driver.FindElement(By.XPath("//div[@class='windowClass' and @id='windowID']"));
string text = (string)((IJavaScriptExecutor)driver).ExecuteScript("return arguments[0].childNodes[3].textContent;", elem);
0 голосов
/ 26 апреля 2018

Здесь я получаю весь текст и делю текст на <br>, и мы можем напечатать текст, отделяя.

 String mytext=driver.findElement(By.xpath("//div[@id='windowID'].getAttribute("innerHTML");
    String[] separatestring= mytext.split(Pattern.quote("<br>"));
    String firstone= separatestring[0];
    String secondtone= separatestring[1];
    System.out.println(firstone);
    System.out.println(secondtone);

Я сделал это с помощью Java, Здесь вы можете конвертировать его в C #. Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...