Capivara sincronizar com has_no_css?
Desde a atualização para o Capybara 2.4, eu tenho encontrado esse problema. Anteriormente, esse bloco funcionava bem:
page.document.synchronize do
page.should have_no_css('#ajax_indicator', :visible => true)
end
Ele deve forçar a espera até o indicador ajax desaparecer antes de prosseguir com a próxima etapa.
Como o acima mencionado retornaRSpec::Expectations::ExpectationNotMetError
, a sincronização não executa novamente o bloco e apenas gera o erro. Não sei por que isso estava funcionando na versão que eu estava usando antes (acredito que 2.1).
osynchronize
block apenas executa novamente os blocos que retornam algo como:
Capybara::ElementNotFound
Capybara::ExpectationNotMet
E o que um determinado driver adicionar a essa lista.
Veja a resposta de Justin para uma explicação mais abrangente e exemplos que não usamsynchronize
, ou veja minha resposta para a solução direta.