2011-08-18 20 views
7

Estoy usando Capybara 1.0.0 con la configuración predeterminada.Capybara click_link a veces no funciona

click_link "texto existente" # --algunas veces-- no funciona. extraño.

find_link "algún texto existente" # siempre funciona

Esto puede ser un problema de tiempo; o tal vez no porque find_link funciona de maravilla.

He comprobado el archivo de salida producido a través de save_and_open_page, está bien también. Además, he aumentado el tiempo de espera, etc. Pero tampoco ayudó.

Antes de ir a la fuente de Capibara por completo. ¿Qué crees que ha ido mal?

Saludos

+0

Prolly el problema está en la forma en que la localización de los elementos con XPath o selectores CSS? –

Respuesta

0

Cada vez que estoy recibiendo problemas intermitentes con mis pruebas una de las primeras cosas que comprobar es la secuencia en que se ejecutan en.

Dependiendo de cómo se haya configurado Rspec, es probablemente Al azar el orden en que se ejecutan las especificaciones cada vez que ejecuta el conjunto. Esto significa que a veces todo pasa y otras veces no.

Rspec generará un valor inicial que puede usar para volver a ejecutar las pruebas en el mismo orden para fines de depuración.

0

Intente utilizar esta sintaxis click_link('', href: some_path).

0

El enlace se puede traslapar con otro elemento (como la ventana emergente), o Ayax lo activa después de un tiempo después de cargar la página. Depende fuertemente del tipo de página con la que opere.

Como consejos generales, yo recomendaría usar buscadores directamente, como:

# Note :visible => true, it will throw an error if element is overlapped 
    find(:xpath, "//a[.='some existing text']", visible: true).click 

    # Another approach 
    wait_until(15) { first(:xpath, "//a..", visible: true) }.click 
Cuestiones relacionadas