Almost a year ago, on a complete whim, I decided to try to hook up the headless browser PhantomJS with Ruby’s full-stack acceptance testing framework, Capybara.
After some furious prototyping I decided that the idea was a goer, but my initial progress towards a usable driver was dogged by segfaults and oddities coming from within WebKit.
- before this, any error generated inside PhantomJS would be a mystery, since there was no stack trace to follow.
In January, I finally announced to project and started encouraging people to give it a try. Some time soon after we switch the Loco2 codebase onto it, pretty much halving our test time compared to Selenium. This provided some invaluable real-world feedback to help iron out bugs.
Since then, many many bugs have been fixed, and the user base has grown. The community around PhantomJS has also grown, and this has been a great benefit to Poltergeist because other people have been adding features to PhantomJS that we can then make use of.
Over the months I’ve seen lots of tweets from people who are using Poltergeist and liking it. This is probably my favourite thing about the project: just hearing about people’s successes feels awesome.
But the work isn’t over. Not everybody has a pain-free time. PhantomJS does sometimes crash, and I’m sure there are still bugs lurking in the Poltergeist codebase.
My aim from the start has always been to make Poltergeist the driver that fails as helpfully as possible.
One thing I should have done a long time ago is provide good documentation about troubleshooting. This also comes under the remit of failing helpfully, and so I’ve finally done that.
Thanks to everyone who has given Poltergeist a try, and especially to those who have contributed code. Tell all your friends, let’s make this thing even better!
Dr Nic Williams
"In January, I finally announced".... links to localhost:3000.
Fixed it! Thanks
Fixed it! Thanks
I've been using it for a couple of months and it's really awesome, thanks for the hard work!
Would love to see a comparison to capybara-webkit. Is it faster? More stable? Handles more edge cases?
A number of people have reported faster test times after switching from c-w to Poltergeist. Also being based on PhantomJS is a huge asset for Poltergeist, as PhantomJS is an active project getting new releases every 3 months. And you don't have to compile anything to install PhantomJS. At this stage Poltergeist also sees a lot more active development than c-w.
Thank you very much for the hard work. Tools like these make my everyday life a little better