Capybaraで、読み込み中を表すコンポーネントが消えるのを待ってからスクショを撮りたいみたいな時に特定の要素が消えるのを待つ方法をMEMO
結論だけ言うと以下のようにスクリーンショットを習得する前にローダーが無くなることを判定すれば良い。
page.has_no_css?(".page-loader") page.save_screenshot("tmp/foo/bar.png")
RSpecのmatcherとして提供されているものはhas_link?
とかhas_content?
とかで大体page
から呼び出せる。
便利!
決まりきったローダーがあるならmoduleに切り出してhelperにしておくと便利そう。
module WaitLoadingComponentHelper def wait_loading_component(page) page.has_no_css?(".page-loader") end end
参考