开发者

Get all immediate children and nothing deeper

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开发者_StackOverflow中文版 over the documents and they vary greatly.


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

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


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

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


/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.


The child instead of descendant may helps someone.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜