¿Cómo puedo encontrar un elemento por clase CSS con XPath?

Resuelto Strawberry asked hace 14 años • 8 respuestas

En mi página web, hay un divcon un classnombre Test.

¿ Cómo puedo encontrarlo con XPath?

Strawberry avatar Oct 22 '09 07:10 Strawberry
Aceptado

Este selector debería funcionar, pero será más eficiente si lo reemplaza con el marcado adecuado:

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

O, como sabemos que el elemento buscado es div:

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

Pero como esto también coincidirá con casos como class="Testvalue"o class="newTest", la versión de @Tomalak proporcionada en los comentarios es mejor :

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

Si desea estar realmente seguro de que coincidirá correctamente, también puede usar la función normalize-space para limpiar los espacios en blanco perdidos alrededor del nombre de la clase (como lo menciona @Terry):

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

Tenga en cuenta que en todas estas versiones, es mejor reemplazar * por cualquier nombre de elemento que realmente desee hacer coincidir, a menos que desee buscar en todos y cada uno de los elementos del documento la condición dada.

meder omuraliev avatar Oct 22 '2009 01:10 meder omuraliev

La manera más fácil...

//div[@class="Test"]

Suponiendo que desea encontrar <div class="Test">como se describe.

Olli Puljula avatar Sep 23 '2014 11:09 Olli Puljula