You can
- use a Firefox in a virtual framebuffer:
xvfb-run -a firefox - use SlimerJS (a embedded Gecko/rendering engine from Firefox) with xcfb,
- use PhantomJS as embedded WebKit without the need for a display and selenium support via GhostDriver - if WebKit is OK for you.