通过其XPath获取HTML元素的子元素

罗伯特·雷诺兹

我有一个非常简单的问,我有一个div在HTML页面中,我可以通过自己的XPath存取权限是://div[2]/div/div[2]/div[2]/div[2]

我想要一个XPath可以给这个div的所有子元素,但是我找不到它。我需要使用Selenium的findElements方法获取元素,但是我测试过的方法不起作用:

我的HTML代码如下所示:

<div>
    <input/>
    <span/>
    <p></p>
</div>

和我想这样使用的XPath:

//div[2]/div/div[2]/div[2]/div[2]/child

我的Java Selenium脚本是这样的:

List<WebElement> listElement = driver.findElements(By.xpath(xpath));

for(WebElement element : listElement) {
    System.out.println(element.getAttribute("id"));
}

我应该使用什么XPath来获取的子级div

编辑1:我确实使用了*,并且可以正常工作,但是当我计算它打印出的元素数量6时,*是否将他的孩子的孩子视为自己的孩子?

克休斯

如果div您问题中的HTML片段中的位于

//div[2]/div/div[2]/div[2]/div[2]

那么input子元素将在这里:

//div[2]/div/div[2]/div[2]/div[2]/input

所有的子元素都在这里:

//div[2]/div/div[2]/div[2]/div[2]/*

更新:

编辑1:我确实使用了*,并且可以正常工作,但是当我计算它打印出的元素数量6时,*是否将他的孩子的孩子视为自己的孩子?

不,div/*仅选择parent的直接子元素div

如果您对子级数量超出预期感到惊讶,则可能是基础XPath选择了多个元素,然后您选择的对象不只是目标div元素。


更新2:

如果您无法发布MCVE,但仍然对返回的孩子数感到困惑,

//div[2]/div/div[2]/div[2]/div[2]/*

尝试在您作为基础提供的XPath上挑战自己:

//div[2]/div/div[2]/div[2]/div[2]/

第一次尝试

//div[2]

它是否真的div如您所愿地选择了单曲

然后尝试

//div[2]/div

再一次,看看这是否真的选择了div您期望的单曲

以这种方式继续,直到到达所选元素的实际情况偏离您的期望的地方。那里的答案很明显,或者您有更具体的问题要问。

在没有看到您的XML / HTML的情况下,这与建议所获得的效果差不多。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过其XPath获取HTML元素的子元素

来自分类Dev

XSLT,XPath:如何通过引用其子元素的属性来获取父元素的属性?

来自分类Dev

XPath通过同级HTML元素获取文本

来自分类Dev

在bash中通过XPath获取HTML元素

来自分类Dev

如何通过XPath在HTML元素中获取注释?

来自分类Dev

通过HTML字符串上的xpath获取元素

来自分类Dev

通过Xpath搜索html元素

来自分类Dev

获取 HTML 元素的正确 Xpath

来自分类Dev

NodeJS Puppeteer从XPath获取子元素的InnerText

来自分类Dev

使用XPath硒Python获取子元素

来自分类Dev

通过xpath循环获取所有元素

来自分类Dev

使用XPath获取子元素值,其中date是元素值

来自分类Dev

XPath:通过纯文本查找HTML元素

来自分类Dev

使用PHP DOM文档,通过其类选择HTML元素并获取其文本

来自分类Dev

Xpath从平面HTML层次结构获取元素

来自分类Dev

使用xpath获取html元素的文本内容

来自分类Dev

如何通过 Puppeteer 获取父元素和子元素?

来自分类Dev

jQuery通过其data-id获取元素

来自分类Dev

如何通过其部分类名称CSS获取元素

来自分类Dev

如何在Jquery中通过其样式值获取元素

来自分类Dev

如何通过其索引获取jQuery UI Tabs DOM元素?

来自分类Dev

是否有通过其DOM地址获取元素的功能?

来自分类Dev

通过其值获取特定选项元素的ID

来自分类Dev

获取父元素html以及子内容

来自分类Dev

通过id获取元素并通过php中的Value xpath获取元素

来自分类Dev

复选框元素的Xpath通过按值定位其跟随的标签元素

来自分类Dev

获取元素的XPath列表

来自分类Dev

获取元素的XPath列表

来自分类Dev

如何获取元素的xPath