Полагаю, вы используете огурец с капибарой. В этом случае капибара имеет функцию resynchronize
. "Capybara can block and wait for Ajax requests to finish after you’ve interacted with the page." - from capybara documentation
Вы можете включить его в features/support/env.rb
Capybara.register_driver :selenium do |app|
Capybara::Driver::Selenium.new(app, :browser => browser.to_sym, :resynchronize => true)
end
Но я видел, что это вызывает проблемы с тайм-аутом. Поэтому, если это не сработает, я бы рекомендовал ввести шаг ожидания вручную, прежде чем утверждать результаты запроса ajax.
...
When I follow "Remove from cart"
And I wait for 5 seconds
Then I should see "Test Product removed from cart"
Вы можете определить шаг ожидания в step_definitions/web_steps.rb
как
When /^I wait for (\d+) seconds?$/ do |secs|
sleep secs.to_i
end