For Firefox support, there is SlimerJS, a PhantomJS alternative that is coming along very nicely for testing your websites on the Gecko rendering engine. It even supports WebGL. Try it as an alternative CasperJS engine:<p><a href="http://casperjs.org/" rel="nofollow">http://casperjs.org/</a>
Two questions from a none Python developer.<p>- If there are no Python bindings, could one invoke native bindings from with Python?
- Is it normal to add a base class for utility rather than use a field level instance?<p>Yours, curiously.
We tried phantomjs for a while but it was very unstable (regularly crashed and since it's open source, bug reports often go ignored, even with stack traces), undocumented behavior, and fairly unusual ecosystem. I believe phantom made a fundamental mistake of not being nodejs based in the first place. Phantom has some really nice features though, like being able to read the console output. Selenium is kind of a joke in terms of features, but at least it's stable. I would choose selenium unless you get a specific benefit out of phantomjs.
Selenium is awesome. I'm using it in Java and PHP. I had a run in with it in its 1.x days and it was too unreliable to maintain the tests. Now it's fantastic.
Easiest acceptance testing framework I've used is Splinter. It's an abstraction layer over Selenium that practically makes writing tests similar to plain English: <a href="http://splinter.cobrateam.info/" rel="nofollow">http://splinter.cobrateam.info/</a>
PhantomJS is awesome for speed, but I noticed that it sometimes doesn't render iframe elements, ajaxed elements properly while using just Firefox does render all elements correctly.