¿Cómo escribir una consulta XPath para que coincida con dos atributos?

143

Siguiente pregunta:

<div id="id-74385" class="guest clearfix" style="z-index: 999;">

Dado anteriormente,

Si quiero una expresión XPath con controles tanto id como class, ¿podemos hacerlo con 'y' condición LIKE:

//div[@id='id-74385'] and div[@class='guest clearfix']

¿Es esta la forma correcta? Mi ejecución falla aquí ... ¡Por favor ayuda!

shola
fuente

Respuestas:

211
//div[@id='..' and @class='...]

debería hacer el truco. Eso es seleccionar los divoperadores que tienen ambos atributos del valor requerido.

Vale la pena usar uno de los bancos de pruebas XPath en línea para probar cosas.

Brian Agnew
fuente
99

o //div[@id='id-74385'][@class='guest clearfix']

zhangyangyu
fuente
22

Agregando a la respuesta de Brian Agnew.

También puede hacer //div[@id='..' or @class='...]y puede tener expresiones entre paréntesis dentro //div[@id='..' and (@class='a' or @class='b')].

CodeMonkey
fuente