4.4 KiB
layout | title | categories | permalink |
---|---|---|---|
post | Command Line Interface | docs docs-learn | api/command-line.html |
As the codebase is updated, we hope to keep these documents updated as well. Unless otherwise stated, this documentation currently applies to the latest PhantomJS release: PhantomJS 1.8.0
Assuming PhantomJS is built and its executable is place somewhere in the PATH, it can be invoked as follows:
phantomjs [options] somescript.js [arg1 [arg2 [...]]]
The script code will be executed as if it running in a web browser with an empty page. Since PhantomJS is headless, there will not be anything visible shown up on the screen.
If PhantomJS is invoked without any argument, it will enter the interactive mode (REPL).
Command-line Options
Supported command-line options are:
--help
or-h
lists all possible command-line options. Halts immediately, will not run a script passed as argument.--version
or-v
prints out the version of PhantomJS. Halts immediately, will not run a script passed as argument.--cookies-file=/path/to/cookies.txt
specifies the file name to store the persistent Cookies.--disk-cache=[true|false]
enables disk cache (at desktop services cache storage location, default isfalse
). Also accepted:[yes|no]
.--ignore-ssl-errors=[true|false]
ignores SSL errors, such as expired or self-signed certificate errors (default isfalse
). Also accepted:[yes|no]
.--load-images=[true|false]
load all inlined images (default istrue
). Also accepted:[yes|no]
.--local-storage-path=/some/path
path to save LocalStorage content and WebSQL content.--local-storage-quota=number
maximum size to allow for data.--local-to-remote-url-access=[true|false]
allows local content to access remote URL (default isfalse
). Also accepted:[yes|no]
.--max-disk-cache-size=size
limits the size of disk cache (in KB).--output-encoding=encoding
sets the encoding used for terminal output (default isutf8
).--remote-debugger-port
starts the script in a debug harness and listens on the specified port--remote-debugger-autorun
runs the script in the debugger immediately: 'yes' or 'no' (default)--proxy=address:port
specifies the proxy server to use (e.g.--proxy=192.168.1.42:8080
).--proxy-type=[http|socks5|none]
specifies the type of the proxy server (default ishttp
).--proxy-auth
specifies the authentication information for the proxy, e.g.--proxy-auth=username:password
).--script-encoding=encoding
sets the encoding used for the starting script (default isutf8
).--ssl-protocol=[sslv3|sslv2|tlsv1|any']
sets the SSL protocol for secure connections (default isSSLv3
).--ssl-certificates-path=<val>
Sets the location for custom CA certificates (if none set, uses system default).--web-security=[true|false]
enables web security and forbids cross-domain XHR (default istrue
). Also accepted:[yes|no]
.--webdriver
starts in 'Remote WebDriver mode' (embedded GhostDriver): '[[:]]' (default '127.0.0.1:8910')--webdriver-selenium-grid-hub
URL to the Selenium Grid HUB: 'URL_TO_HUB' (default 'none') (NOTE: works only together with '--webdriver')
Alternatively, since PhantomJS 1.3, you can also utilize a JavaScript Object Notation (JSON) configuration file instead of passing in multiple command-line options:
--config=/path/to/config.json
The contents of config.json
should be a standalone JavaScript object. Keys are de-dashed, camel-cased equivalents of the other supported command-line options (excluding --version
/-v
and --help
/-h
). Values are their JavaScript equivalents: 'true'/'false' (or 'yes'/'no') values translate into true
/false
Boolean values, numbers remain numbers, strings remain strings. For example:
{
/* Same as: --ignore-ssl-errors=true */
"ignoreSslErrors": true,
/* Same as: --max-disk-cache-size=1000 */
"maxDiskCacheSize": 1000,
/* Same as: --output-encoding=utf8 */
"outputEncoding": "utf8"
/* etc. */
}
There are some keys that do not translate directly:
* --disk-cache => diskCacheEnabled
* --load-images => autoLoadImages
* --local-storage-path => offlineStoragePath
* --local-storage-quota => offlineStorageDefaultQuota
* --local-to-remote-url-access => localToRemoteUrlAccessEnabled
* --web-security => webSecurityEnabled