Please see the following element:
<div class="success"><button class="close" data-dismiss="alert" type="button">×</button>
User 'MyUser' deleted successfully</div>
Find my element:
driver.findElement(By.cssSelector("div.success")
So after found this div
and get the text using selenium with getText
or getAttribute("innerHTML")
the return:
×
User 'MyUser' deleted successfully
So my question is how to get only the last line without this x
We can get the text from a website using Selenium webdriver USING the getText method. It helps to obtain the text for a particular element which is visible or the inner text (which is not concealed from the page).
New Selenium IDE We can get the innerHTML attribute to get the source of the web element. The innerHTML is an attribute of a webelement which is equal to the text that is present between the starting and ending tag. The get_attribute method is used for this and innerHTML is passed as an argument to the method.
The text you want is present in a text node and cannot be retrieved directly with Selenium since it only supports element nodes.
You could remove the beginning :
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());
You could also extract the desired content from the innerHTML
with a regular expression:
String innerText = driver.findElement(By.cssSelector("div.success")).getAttribute("innerHTML");
String text = innerText.replaceFirst(".+?</button>([^>]+).*", "$1").trim();
Or with a piece of JavaScript:
String text = (String)((JavascriptExecutor)driver).executeScript(
"return document.querySelector('div.success > button').nextSibling.textContent;");
WebElement element = driver.findElement(By.className("div.success")
element.getText();
shall help you get the text of the div
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With