使用poltergeist和capybara创建一个post请求

我正在从由默认Rack驱动程序支持的Capybara过渡到由Poltergeist支持的Capybara。

出于令人沮丧的原因,我需要在加载页面之前操作会话数据。 但我无法弄清楚如何直接使用Rack驱动程序操作会话,所以我

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

不幸的是,Poltergeist driver对象没有submit方法,就像Rack驱动程序一样。

有三种可能性:

  • 如何使用poltergeist / phantomjs提交POST请求? (实现这似乎是最简单的)
  • 如何使用poltergeist / phantomjs直接操作会话数据?
  • 我可以重构代码,以便不再需要直接操作会话数据。 这将是耗时的并且是低优先级的。

PS:由于使用Ruby 1.8,我们仍然坚持使用Poltergeist v1.0.2

capybara的想法是测试用户交互,因此您可以像用户一样执行POST请求。

在你的情况下,它将是这样的:

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

有没有理由不这样做?