2010-09-08 9 views
5

Sé que el selenio puede usar localizadores de css.Selenium CSS locator space in locator

sé que la sintaxis es algo como esto:

XPath = // div [@ id, 'topLeft') // lapso [contiene (@ clase, 'nombre')]
o css = # topLeft .name

Ahora, lo que si .name es así: // lapso [contiene (clase @ 'nombre con el espacio')]

Entonces sería un error ... ¿Cómo buscar un localizador que tiene espacio en él?

Gracias!

EDITAR Solución: css = span.name.with.space nombres

Respuesta

5

clase no puede tener espacios. Sin embargo, puede definir clases múltiples para un solo elemento colocando un espacio entre ellas. Eche un vistazo a id and class identifiers section in the HTML spec para más.

Debería poder usar el localizador CSS utilizando solo una de las clases.

Si eso no funciona, comprueba dos veces tu selector de CSS usando una herramienta como Firefinder for FireBug. Pude usar Selenium-IDE con un elemento que tenía dos clases. Para el HTML

<div class="c1 c2"> 
    <span class"s1">Test</span> 
</div> 

utilicé el selector

css=div.c1 span 
+0

Sí. Dígalo a los desarrolladores de mi empresa que tienen nombres de clase como este: button AddComment IntegrationButton. – Hannibal

+0

No digo que no haya espacios. Estoy señalando que esos no son todos de una sola clase. Esas son clases individuales. Si intentas identificar uno con un selector, solo elige una clase. – pnewhook

+0

Ahora soy el que es tonto ... ¿Nunca pensé que un elemento puede tener múltiples clases? Maldición ... aprendo algo nuevo todos los días. :) Eso significa que si veo un nombre de clase como este: "botón Something submitter" ... ¿Ese elemento tiene clase de botón Something class y submitter class? Y si busco la clase de botón, ¿también se encontrará esta? – Hannibal

-2

Con CSS es más fácil que usando un largo XPath:

span.class1.class2

Cuestiones relacionadas