Question

WebElement body = browser.findElement(By.xpath("//body"));

body.findElement(By.xpath("")); // I want to get all child elements 
                                // inside body, but nothing deeper.

Example document.

<html>
  <body>
    <div>
    </div>
    <span>
      <table>
      </table>
    </span>
  </body>
</html>

Expected result is div and span. I have no controll over the documents and they vary greatly.

Was it helpful?

Solution

("*") gives all the child elements of the context node. So use:

body.findElement(By.xpath("*"));

OTHER TIPS

/html/body/*

Will select only immediate children elements of body.

Do remember that if you copy all these selected nodes, you also copy their content. So, if you do copy-of, table will also be produced to the resulting document.

Also, I would recommend to read at least XPath basics, you ask too many similar questions.

Here's another way to get the direct children of an element:

element.findElement(By.xpath("./*"));

The child instead of descendant may helps someone.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top