2

デフォルトの Rack ドライバーに支えられた Capybara から、Poltergeist に支えられた Capybara に移行しています。

苛立たしい理由から、ページをロードする前にセッション データを操作する必要があります。しかし、Rack ドライバーでセッションを直接操作する方法がわかりませんでした。

Capybara.current_session.driver.submit :post, "/current_search", {:session => :data }

残念ながら、ポルターガイストdriverオブジェクトにはsubmit、Rack ドライバーのようなメソッドがありません。

次の 3 つの可能性があります。

  • poltergeist/phantomjs で POST リクエストを送信するにはどうすればよいですか? (これを実装するのが最も簡単なようです)
  • poltergeist/phantomjs でセッション データを直接操作するにはどうすればよいですか?
  • セッション データを直接操作する必要がなくなるように、コードを再構築できます。これには時間がかかり、優先度が低くなります。

PS: Ruby 1.8 を使用しているため、Poltergeist v1.0.2で立ち往生しています。

4

1 に答える 1

1

カピバラのアイデアは、ユーザーの操作をテストすることです。そのため、ユーザーが行うのと同じ方法で POST リクエストを実行できます。

あなたの場合、次のようになります。

visit '/search'
fill_in '.search-box', :with => "search query"
click_on "Submit"

このようにしない理由はありますか?

于 2013-06-03T20:19:45.540 に答える