tengo HTML que se ve básicamente como el siguiente:Selección de un elemento con XPath y selenio
...
<a class="btnX btnSelectedBG" href="#"><span>Sign in</span></a>
...
La siguiente XPath en selenio no encuentra un elemento :
//a[contains(text(), 'Sign in') and contains(@class,'btnX')]
Los siguientes XPaths en Selenium tienen éxito, pero no son lo suficientemente específicos para mí.
//a[contains(text(), 'Sign in')]
//a[contains(@class, 'btnX')]
¿Por qué el xpath no encuentra un elemento y qué puedo hacer para que funcione?
'// a [contiene (texto() , 'Iniciar sesión')] 'no debería seleccionar ese elemento –
Sí, de las dos opciones que funcionan, estoy de acuerdo en que la primera debería * no * funcionar, a menos que esté buscando el texto() de los subelementos y unirlos , como lo hace JavaScript. Sin embargo, estaba teniendo problemas para conciliar eso con el hecho de que no funcionó junto con la otra prueba * excepto * cuando inventé una especie de lógica difusa que una vez que utilicé un elemento de "contexto" particular para la expresión, no pudo evaluar el resto de la expresión fuera de ese contexto. – cgp
Funcionará porque también recoge el texto de subelementos. Esto puede ser un dolor y una bendición :) – Ardesco