Как заставить Capybara проверять видимость после выполнения JS?

После загрузки страницы у меня есть код, который запускается, скрывает и показывает различные элементы на основе данных, возвращаемых xhr.

Мой интеграционный тест выглядит примерно так:

it "should not show the blah" do
    page.find('#blah').visible?.should be_true
end 

Когда я вручную перехожу на страницу в контексте, в котором выполняется этот тест, #blah не виден, как я ожидаю. Я подозреваю, что Capybara смотрит на начальное состояние страницы (невидимая в данном случае), оценивает состояние DOM и проваливает тест до запуска JS.

Да, я установил :js => true на содержащем блоке describe :)

Любые идеи будут высоко оценены! Я надеюсь, что мне не придется ставить здесь намеренную задержку, это кажется зыбким и будет замедлять работу.

79
задан Boris Stitnicky 19 September 2016 в 12:00
поделиться