1

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

<li class="SpacedOut">
<b>Name 6:</b> 
    "ABC" 
<b>Name 1:</b>
    "BCD"
<b>Name 2:</b>
    "EFG" 
<b>Name 3:</b>
    "HIJ" 
 <b>Name 4:</b>
    "KLM"
 <b>Name 5:</b>
    "NOP"    
 <br>

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"

0

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:

        driver.get("https://1a9f9143-5107-46d6-85df-3b5fc765cd60.htmlpasta.com");

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

        while(matcher.find()) {
            System.out.println(matcher.group());
        }

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.

|improve this answer|||||
0

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

|improve this answer|||||
0

You can try this XPath, this should make it:

"//li[@class='SpacedOut']/text()[normalize-space()]"

Good luck!

|improve this answer|||||
  • 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] – Mohamed Sulaimaan Sheriff Feb 24 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.