HTML xpath选择父元素的前同级



下面是我正在处理的应用程序的html:

<td class="ui-selection-column" ng-reflect-ng-class="[object Object]" ng-reflect-ng-style="[object Object]" style="width: 38px; display: table-cell;">
<td ng-reflect-ng-class="[object Object]" style="display: table-cell;">
    <span class="ui-column-title">NAME</span>
    <span class="ui-cell-data">Name1</span>
</td>

我能够编写 xpath 来使用 text()=Name1 在 td 元素中选择跨度。

//td[@style='display: table-cell;']/span[text()='Name1']

现在,如何在与较低的 td 元素的上下文中选择上面的第一个 td 元素。我在 Xpath 下面写了选择 td 元素的前兄弟姐妹,但不起作用。

//td[@style='display: table-cell;']/span[text()='VendorContact_Name1']/preceding-sibling::td[@class='ui-selection-column']

我错过了什么吗?有什么建议吗?

这是

根据你的第一个xpath:

//td[@style='display: table-cell;']/span[text()='Name1']/../preceding-sibling::td[@class='ui-selection-column'][1]

因为在 XPath 中您正在选择一个span节点,而不是 td ,如果要选择包含spantd,它将如下所示:

//td[@style='display: table-cell;' and span[text()='Name1']]/preceding-sibling::td[@class='ui-selection-column'][1]

最新更新