Cucumber + WatirWebdriver を使用して受け入れテストを行っていますが、要素がクリックされた後、基になる Web ドライバーが新しいページの読み込みを待っていると常に考えていました。Firefox の Web ドライバーが動作しているように見えるので、私はそう思いました。このテストは FF では問題なく機能しますが、(たとえば) ゴーストドライバー (phantomjs webdriver) では機能しません。
Scenario: Follow a link on Amazon
When I visit Amazon
And click your account link
Then the title should include "Recommended"
When /^I visit Amazon$/ do
@browser.goto "http://amazon.com"
end
When /^click your account link$/ do
@browser.link(:id, 'nav-your-amazon').click
end
Then /^the title should include "([^"]*)"$/ do |arg1|
@browser.title.should include arg1
end
最終的に、ゴーストドライバーのgithubページで問題を開き、Selenium Webドライバーはクリック後にページロードを待つことを意図していないと言われました。
http://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebElement.html#click ()
だから今私の質問は、クリックのようなアクションの後にページがロードされるのを待つためのベストプラクティスがあるかどうかです?