Dockerfile
links
Supported tags and respective latest
built from the latest PhantomJS snapshot2
,2.1
,2.1.1
2.0
,2.0.0
1
,1.9
,1.9.7
What is PhantomJS
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.
Features of this image
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
52379
(selected randomly to avoid mapping to an existing user) and uses dumb-init to reap zombie processes.
Usage
JavaScript interactive shell
Start PhantomJS in REPL:
$ docker run -it --rm wernight/phantomjs
>
Remote WebDriver
Start as 'Remote WebDriver mode' (embedded GhostDriver):
$ docker run -d -p 8910:8910 wernight/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()
Feedbacks
Improvement ideas and pull requests are welcome via Github Issue Tracker.