他のページから悪いアドバイスを受け取ったことが判明しました。これは、実際にはポルターガイストの自然な動作を妨げていました。
私はそのがらくたを取り除きました、そしてポルターガイストは働きました。それ以来、テストで Cookie を設定するより良い代替方法を実装しましたが、すべて問題ありません。
一般的な要求により、テスト ステップの Cookie セッター コードは次のとおりです。
case Capybara.current_session.driver
when Capybara::Poltergeist::Driver
page.driver.set_cookie(k,v)
when Capybara::RackTest::Driver
headers = {}
Rack::Utils.set_cookie_header!(headers,k,v)
cookie_string = headers['Set-Cookie']
Capybara.current_session.driver.browser.set_cookie(cookie_string)
when Capybara::Selenium::Driver
page.driver.browser.manage.add_cookie(:name=>k, :value=>v)
else
raise "no cookie-setter implemented for driver #{Capybara.current_session.driver.class.name}"
end
重要な警告:上記のコードを使用してテスト ステップで Cookie を設定すると、ページの Javascript で上書きが許可されない可能性があります。テストでページで Cookie を変更する必要がある場合、Cookie が変更されないことがあります。