単純だが非効率的な方法は、リダイレクトの実行にかかるおおよその時間だけスリープを追加することです。
And I click the link Log out
And I wait for 5 seconds
Then I should see the login page
ステップ定義
When /^I wait for (\d+) seconds$/ do |time|
sleep time.to_i
end
ただし、このソリューションは、ネットワークの遅延に関しては非常に脆弱であり、待機が長すぎるか短すぎる可能性があります. 探しているコンテンツが表示されるまでスリープ状態にすることをお勧めします。
And I click the link Log out
Then within 30 seconds, I should see the login page
ステップ定義
Then /^within (\d+) seconds, I should see the login page$/ do |time|
sleep time.to_i until page.has_text? "Login"
page.should have_content "Login"
end
他のステップの待機を使用していることに気付いた場合は、コンマの後の残りのステップを一般化できます。