Search code examples
ruby-on-railsphantomjspoltergeist

Using PhantomJS in Ruby on Rails application


I would like to use PhantomJS as part of my main application lifecycle to take screenshots of a remote URL submitted by the user.

I'm familiar with using Poltergeist in conjunction with Capybara/Rspec. But how would I go about initializing the page object manually?


Solution

  • To initialize a capybara session in your app you can just do something like

    session = Capybara::Session.new(:poltergeist)
    

    ( as documented here) and then rather than using page just call Capybara methods on session. One thing to note is that if you're going to test the app with Capybara too you will probably want to register a separate driver for the app and testing - https://github.com/jnicklas/capybara#configuring-and-adding-drivers . Also since Capybaras config is not thread-safe changing any of Capybaras setting would potentially affect both the test session and the in app session.