375 votes

J’aimerai trouver un élément de classe CSS avec XPath.

Dans ma page Web, il y a un div avec une classe nommée Test. Comment puis-je trouver avec XPath ?

594voto

meder Points 81864

Ce sélecteur devrait fonctionner, mais sera plus efficace si vous la remplacez par votre balisage adapté:

//*[contains(@class, 'Test')]

Mais puisque cela correspond également à des cas comme class="Testvalue" ou class="newTest", @Tomalak la version fournie dans les commentaires, c'est mieux:

//*[contains(concat(' ', @class, ' '), ' Test ')]

Si vous souhaitez être vraiment certain qu'il va correspondre correctement, vous pouvez aussi utiliser le normalize-space fonction pour nettoyer les errants, les espaces autour de le nom de la classe (comme mentionné par @Terry):

//*[contains(concat(' ', normalize-space(@class), ' '), ' Test ')]

Noter que dans toutes ces versions, l' * doit être remplacé par ce que le nom de l'élément que vous souhaitez réellement faire correspondre, sauf si vous souhaitez rechercher tous les éléments dans le document de l'état de santé donné.

26voto

Alex Lyman Points 7480

Je suis juste fournir ceci comme une réponse, comme Jankowski fourni dans un commentaire sur la réponse de meder il y a longtemps

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X