Firefox is basically the first port of call for running web tests on buildservers. Run Firefox headlessly in xvfb, then throw Selenium or similar at it. It's a pretty mature setup.
Even better, selenium has preconfigured containers for Firefox and Chrome and that use Xvfb. At the start of a web automation project I worked on, I spent a lot of time trying to get various versions of browser, selenium and pyvirtualbuffer installed and running with mixed results. These containers are well tested and work very well.
I would think PhantomJS, being a headless, scriptable browser (plus built on WebKit so closer rendering to the most popular browser), would be the "first port of call."