开发者

Get all immediate children and nothing deeper

开发者 https://www.devze.com 2023-02-02 23:11 出处:网络
WebElement body = browser.findElement(By.xpath(\"//body\")); body.findElement(By.xpath(\"\")); // I want to get all child elements
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

精彩评论

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

关注公众号