I Need to get XPath for the following, to get the text after the <b> tags

<li class="SpacedOut">
<b>Name 6:</b> 
<b>Name 1:</b>
<b>Name 2:</b>
<b>Name 3:</b>
 <b>Name 4:</b>
 <b>Name 5:</b>

I need to get the following texts from the above HTML, please help how to set XPath to get the following text

Required output: "ABC" "BCD" "EFG" "HIJ" "KLM" "NOP"


I'm not sure if this is possible using just XPath, but there may be some advanced stuff I'm unaware of.

This is fairly simple using regular expression matching though:


        WebElement list = driver.findElement(By.className("SpacedOut"));
        Pattern pattern = Pattern.compile("\"\\w+\"");
        Matcher matcher = pattern.matcher(list.getText());

        while(matcher.find()) {

The regex may need adjusting if your real text is substantially different from what you supplied. I would suggest researching Java regular expressions in that case.


Try this: //li[@class='SpacedOut']/text() You'll be able to return it into a list if you're using Selenium


You can try this XPath, this should make it:


Good luck!

  • 1
    Also, you can get the specified text(inner html content) instead of using WebElement list //li[@class="SpacedOut"]/text()[normalize-space()][2] This will get the text "BCD" for Other text content change the position from [1] to [5] Feb 24 '20 at 4:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.