After loading a page I have code that runs and hides and shows various items based on data returned by an xhr.
My integration test looks something like this:
it "should not show the blah" do
I think that the
find statement here is the one with the implicit wait, so Capybara will wait until the element is on the page, but won't wait for it to become visible.
Here, you would want Capybara to wait for the visible element to appear, which should be achievable by specifying the
expect(page).to have_selector('#blah', visible: true)
I haven't tried it, but the
ignore_hidden_elements configuration option might be useful here as well, if you wanted
find to always wait for visible elements.