使用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"
有没有理由不这样做?