Pregunta

Estoy tratando de golpear un enlace de una tabla fila que contiene varios enlaces. Este patrón se utiliza en toda la tabla.

Esto funciona:

browser.wait_for(:element => "css=tr:nth-child(1) li:nth-child(2) > a")

Esto no es así:

browser.click "css=tr:nth-child(1) li:nth-child(2) > a"

Cualquier idea por qué esto podría ser? Estoy usando el rubygem selenio-cliente.

¿Fue útil?

Solución

Sospecho que esto se debe a un error en cssQuery, que Selenio utiliza actualmente para localizar elementos de CSS. Los detalles de la emisión y un parche se pueden encontrar en los comentarios de la siguiente cuestión: http: // jira.openqa.org/browse/SEL-698

Esperamos que ayuda - Creo Selenio 2 estará usando una biblioteca diferente para localizadores CSS - posiblemente de jQuery Arden ( http: // sizzlejs.com/ ), lo que debería solucionar este problema.

a Dave.

Otros consejos

Para evitar problemas de CSS dolorosos como este, me he instalado jQuery como una extensión de usuario. Se da la capacidad de definir una cadena localizador similar a CSS ( "jquery = td.dt-col-status div.dt-liner: contiene ( 'Complete')") que es mucho más potente. Puedo ampliar sobre cómo lo hice para Java RC si lo desea.

Esto es un error en el selenio 1 Me gustaría tratar de escribir todo el camino en su ruta de CSS y ver si eso ayuda.

ex si está utilizando el siguiente código HTML que puede utilizar el siguiente CSS localizador
    

    <table>
        <tr>
            <td>
                <li>
                    <a href="/yourlink" >
</li> </td> </tr> </table>

"css=tr:nth-child(1) > td > li:nth-child(2) > a"

Si eso no funciona, siempre se puede utilizar XPath. Es tan expresiva como localizadores de CSS, pero tiende a tener un menor número de problemas técnicos. Lo único que hay que tener en cuenta cuando se utiliza XPaths es que son por lo general más lento que los localizadores css.

"xpath=//tr/td//li[2]/a" 
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top