Carpincho sincronizar con has_no_css?
Desde que actualicé a Capybara 2.4, me he encontrado con este problema. Anteriormente, este bloque funcionaba bien:
page.document.synchronize do
page.should have_no_css('#ajax_indicator', :visible => true)
end
Está destinado a forzar la espera hasta que desaparezca el indicador ajax antes de continuar con el siguiente paso.
Como lo anterior devuelve unRSpec::Expectations::ExpectationNotMetError
, la sincronización no vuelve a ejecutar el bloque y en su lugar solo arroja el error. No estoy seguro de por qué esto funcionaba en la versión que estaba usando antes (creo que 2.1).
lossynchronize
block solo vuelve a ejecutar bloques que devuelven algo como:
Capybara::ElementNotFound
Capybara::ExpectationNotMet
Y lo que sea que un determinado controlador agregue a esa lista.
Vea la respuesta de Justin para una explicación más completa y ejemplos que no usansynchronize
, o mira mi respuesta para la solución directa.