Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Make capybara wait for an element to disappear

After a click on some element I expect a placeholder to disappear and another element to appear after an AJAX call is finished.

find(someLocator).click
expect(page).not_to have_css(disappearingPlaceholderLocator)
expect(page).to have_css(appearingElementLocator)

The first expectation fails though and the AJAX call is not executed.

I think this is somehow related to this SO question but I just can't figure out how.

like image 298
BassT Avatar asked Feb 10 '15 09:02

BassT


1 Answers

This works when the expectations are flipped.

find(someLocator).click
expect(page).to have_css(appearingElementLocator)
expect(page).not_to have_css(disappearingPlaceholderLocator)
like image 165
BassT Avatar answered Oct 18 '22 20:10

BassT