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.
精彩评论