我需要在cucumber步骤中等待加载栏(div#loading)消失(变为display: none)。我希望以下代码可以解决问题:
find('#loading').should_not be_visible
但是它似乎不会等待。有什么想法如何实现呢?
您需要使用wait_until
来等待条件的满足。
wait_until { !page.evaluate_script(%{$('#loading').is(':visible')}) }
可能有更好的检查可见性的方法,但上次我检查到page.has_no_css
不能与:visible
等内容一起使用。
(更新) 虽然 has_css
不支持像 :visible
这样的选择器,但 Capybara::Node::Element
有一些方法可以使上述过程更加美观。
wait_until { !find("#loading").visible? }