Капибара / селен: подождите, пока элемент не станет скрытым - PullRequest
4 голосов
/ 26 сентября 2011

Мне нужно дождаться, пока полоса загрузки (div # loading) исчезнет (станет отображаться: нет) на шаге огурца.Я ожидал, что следующее сделает трюк

find('#loading').should_not be_visible

Но это, похоже, не ждет.Есть идеи как этого добиться?

1 Ответ

9 голосов
/ 26 сентября 2011

Вы можете использовать wait_until для ожидания выполнения вашего условия.

wait_until { !page.evaluate_script(%{$('#loading').is(':visible')}) } 

Возможно, лучше подождать, чтобы проверить видимость, но в последний раз я проверял page.has_no_css не работает с такими вещами, как :visible.

( Обновление ) Хотя has_css не видит селекторы, такие как :visible, *У 1017 * есть несколько способов сделать сказанное немного красивее.

wait_until { !find("#loading").visible? }
...