PhantomJS is a headless WebKit browser, often used via WebDriver for web system testing. It's based on WebKit, runs JavaScript, and allows to take screenshots.
This Dockerized version of PhantomJS is:
- Small: Using Debian image (below 100 MB, while Ubuntu is about 230 MB), and removing packages used during build.
- Simple: Exposes default port, easy to extend.
- Secure: Runs as non-root UID/GID
72379
(selected randomly to avoid mapping to an existing user) and uses dumb-init to reap zombie processes.
Start PhantomJS in REPL:
$ docker run --rm ideavate/phantomjs
>
Start as 'Remote WebDriver mode' (embedded GhostDriver):
$ docker run -d -p 8910:8910 ideavate/phantomjs phantomjs --webdriver=8910
To connect to it (some examples per language):
-
Java:
WebDriver driver = new RemoteWebDriver( new URL("http://127.0.0.1:8910"), DesiredCapabilities.phantomjs());
-
Python (after running
$ pip install selenium
):from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities driver = webdriver.Remote( command_executor='http://127.0.0.1:8910', desired_capabilities=DesiredCapabilities.PHANTOMJS) driver.get('http://example.com') driver.find_element_by_css_selector('a[title="hello"]').click() driver.quit()
Improvement ideas and pull requests are welcome via Github Issue Tracker.