2016-05-18 4 views
4

Пожалуйста, см следующий элемент:Как получить WebElement текст с селеном

<div class="success"><button class="close" data-dismiss="alert" type="button">×</button> 
User 'MyUser' deleted successfully</div> 

Найти мой элемент:

driver.findElement(By.cssSelector("div.success") 

Таким образом, после нашли это div и получить текст, используя селен с getText или getAttribute("innerHTML") в Возврат:

× 
User 'MyUser' deleted successfully 

Так что мой вопрос заключается в том, чтобы получить только последнюю строку без этого x

+1

Пожалуйста, разместите поиск элемента (например, 'by.id (" ")') –

+0

См. Мой обновленный файл e –

+0

@ davidhol: не могли бы вы попробовать: '.getAttribute (" textContent ")' и ответить – nullpointer

ответ

4

Текст, который вы хотите присутствует в текстовом узле и не может быть получен непосредственно с помощью Selenium, поскольку он поддерживает только узлы элементов.

Вы можете удалить начало:

String buttonText = driver.findElement(By.cssSelector("div.success > button")).getText(); 
String fullText = driver.findElement(By.cssSelector("div.success")).getText(); 
String text = fullText.substring(buttonText.length()); 

Вы также мог бы извлечь нужный контент из innerHTML с регулярным выражением:

String innerText = driver.findElement(By.cssSelector("div.success")).getAttribute("innerHTML"); 
String text = innerText.replaceFirst(".+?</button>([^>]+).*", "$1").trim(); 

Или с кусочком JavaScript:

String text = (String)((JavascriptExecutor)driver).executeScript(
    "return document.querySelector('div.success > button').nextSibling.textContent;"); 
0
WebElement element = driver.findElement(By.className("div.success") 
element.getText(); 

должен помочь вам получить текст DIV

+0

Return null .... –

+1

мой плохо отредактированный @davidhol – nullpointer

-1

Попробуйте это:

driver.findElement(By.cssSelector("div.success").getText().replace("x","");