如何使用 Sibling 为 next Div 编写 Xpath

How to write Xpath for next Div using Sibling

我想使用兄弟概念读取税价,所以我已经在 XPath 下编写,但它不起作用

我的代码:

//div[@class='grid_3 d-grid_10']//label[contains(text(), 'Tax')]/following-sibling::div

HTML:

<div class="grid_3 d-grid_10"> 
    <label class="m-confirmation-modal-print-detail-capgrey"> Tax:</label>
</div> 
<div class="grid_1 d-grid_2"> 
    <label class="m-confirmation-modal-print-price text-align-right"> .50</label> 
</div>

第二个 <div> 是第一个的兄弟,而不是 child <label>。您需要先使用 ..parent::div

返回 parent <div>
//div[@class='grid_3 d-grid_10']//label[contains(text(), 'Tax')]/parent::div/following-sibling::div

如评论中所建议,您可以通过使用 "Tax" <label>

开始 xpath 来简化它
//label[contains(text(), 'Tax')]/parent::div[@class='grid_3 d-grid_10']/following-sibling::div

你可以使用这个:

//label[contains(text(), 'Tax')]/../following-sibling::div

要在祖先节点中使用文本 Tax 读取 Tax Price$10.50,您需要首先找到文本为 Tax:<label> 节点。然后关于此节点,您需要找到以下 <div> 节点,该节点具有包含所需文本的已故节点,即 $10.50 并为此可以使用以下解决方案:

  • XPath:

    //label[@class='m-confirmation-modal-print-detail-capgrey' and contains(.,'Tax')]//following::div[1]/label