How to pass a variable as an argument to a CasperJS script through the command line?
The documentation says you can pass command-line parameters.
CasperJS ships with a built-in command line parser on top of PhantomJS’ one, located in the
cli
module; it exposes passed arguments as positional ones and named optionsBut no worries for manipulating the cli module parsing API, a Casper instance always contains a ready to use
cli
property, allowing easy access of all these parameters.
Example code:
var casper = require("casper").create();
casper.echo("Casper CLI passed args:");
require("utils").dump(casper.cli.args);
casper.echo("Casper CLI passed options:");
require("utils").dump(casper.cli.options);
casper.exit();
Execution results:
$ casperjs test.js arg1 arg2 arg3 --foo=bar --plop anotherarg Casper
CLI passed args: [
"arg1",
"arg2",
"arg3",
"anotherarg" ]
Casper CLI passed options: {
"casper-path": "/Users/niko/Sites/casperjs",
"cli": true,
"foo": "bar",
"plop": true }
on the command prompt say:
casperjs test file_name.js --port='123' --username='batman'
in the test script say:
casper.cli.get('port');
casper.cli.get('username');
Complete Intuitive Solution:
Consider the following command:
casperjs example.js true --foo=false
The string true
is a command line argument, while the name foo
is a command line option.
The value assigned to the name (variable) foo
is the string false
.
Command line arguments are positional and must be accessed via the index of the argument.
Command line options are named and must be accessed via the name of the option.
In other words, you could look at arguments as similar to values in a numeric array, while options are similar to key/value pairs in an associative array.
Command Line Arguments
You can access the arguments using one of the following methods:
casper.cli.get(0) // Returns Boolean true ; Slowest / Most Readable (Opinion)
casper.cli.args[0] // Returns Boolean true
casper.cli.raw.get(0) // Returns String "true"
casper.cli.raw.args[0] // Returns String "true" ; Fastest / Least Readable (Opinion)
Command Line Options
You can access the options using one of the following methods:
casper.cli.get('foo') // Returns Boolean false ; Slowest / Most Readable (Opinion)
casper.cli.options['foo'] // Returns Boolean false
casper.cli.raw.get('foo') // Returns String "false"
casper.cli.raw.options['foo'] // Returns String "false" ; Fastest / Least Readable (Opinion)
For other inquiries about CasperJS command line arguments or options, see the documentation: http://docs.casperjs.org/en/latest/cli.html