2015-12-08 3 views
0

У меня есть веб-приложение. Я тестирую его с помощью селена. У меня есть Узлаread value from textnode selenium

<span>Profile Run <span class="current">23</span> of 29</span> 

Я хочу читать "29"

Я использовал XPath

//span[contains(text(),'Profile Run')]/text()[last()] 

Но getAttribute("innerText"), getAttribute("innerHTML") даже getText() не работает.

Ошибка:

the result of xpath expression //span[contains(text(),'Profile Run')]/text()[last()] is: [object Text]. It should be an element.

+0

Вы пытались получить элемент first '// span [содержит (текст(),« Прогон прогона »)]' и оттуда легко получить текстовое содержимое? – dfsq

+0

@dsfq Он возвращает весь диапазон в виде веб-элемента. Я хочу только «из 29» –

+0

Я знаю, это то, что я говорю: получить весь диапазон, а затем получить последних детей. Легко. – dfsq

ответ

0
WebElement splitEnd = driver.findElement(By.xpath(("//span[contains(text(),'Profile Run')]"))); 
     splitEnd.toString().split("ADD VALUE THAT YOU WANT TO RETURN"); 

Что произойдет здесь он будет возвращать все значение вашего диапазона. Он будет весь диапазон и преобразование пяди в строке и используя функцию строки «Раскол» Вы можете принять значение, что вы точно хотите, чтобы извлечь из кода

Вот функция разделения документа: http://www.tutorialspoint.com/java/java_string_split.htm

+1

Хотя этот код может ответить на вопрос, предоставляя дополнительный контекст относительно того, почему и/или как этот код отвечает на вопрос, улучшает его долгосрочную ценность. – Ajean