让所有直接的孩子,没有更深层次

hey*_*ona 29 xpath webdriver

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

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

示例文档.

<html>
  <body>
    <div>
    </div>
    <span>
      <table>
      </table>
    </span>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

预期的结果是divspan.我无法控制文件,而且差异很大.

pet*_*ust 34

("*")给出上下文节点的所有子元素.所以使用:

body.findElement(By.xpath("*"));
Run Code Online (Sandbox Code Playgroud)


Tom*_*pin 9

这是获取元素的直接子元素的另一种方法:

element.findElement(By.xpath("./*"));
Run Code Online (Sandbox Code Playgroud)


Fla*_*ack 6

/html/body/*
Run Code Online (Sandbox Code Playgroud)

将只选择直接的子元素body.

请记住,如果复制所有这些选定节点,则还要复制其内容.因此,如果您这样做copy-of,table也将生成到生成的文档中.

另外,我建议至少阅读XPath基础知识,你会问太多类似的问题.