Je veux lire le prix de la taxe en utilisant le concept des frères et sœurs, j'ai donc écrit sous XPath, mais cela ne fonctionne pas

Mon code:

//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"> $10.50</label> 
</div>
1
Smart coder 20 nov. 2018 à 12:40

3 réponses

Meilleure réponse

Pour lire le Prix de la taxe , c'est-à-dire 10,50 $ en utilisant le texte Tax dans le nœud ancêtre, vous devez localiser le nœud <label> avec le texte comme Taxe: d'abord. Ensuite, en ce qui concerne ce nœud, vous devez localiser le nœud <div> suivant qui a un nœud décédé contenant le texte requis, c'est-à-dire 10,50 $ et pour y parvenir, vous pouvez utiliser la solution suivante:

  • XPath:

    //label[@class='m-confirmation-modal-print-detail-capgrey' and contains(.,'Tax')]//following::div[1]/label
    
1
DebanjanB 20 nov. 2018 à 11:14

Le second <div> est un frère du premier, pas de l'enfant <label>. Vous devez revenir au parent <div> d'abord en utilisant .. ou parent::div

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

Comme suggéré dans les commentaires, vous pouvez le simplifier en commençant le xpath par le "Tax" <label>

//label[contains(text(), 'Tax')]/parent::div[@class='grid_3 d-grid_10']/following-sibling::div
0
Guy 20 nov. 2018 à 09:58

Vous pouvez utiliser ceci:

//label[contains(text(), 'Tax')]/../following-sibling::div
0
Mahsa kia-rad 20 nov. 2018 à 10:30