casperjs 如何使用 space 传递参数?

How casperjs passing arguments with space?

casperjs script.js "myurl" "myemail" "my name"

这是脚本:

url = (casper.cli.get(0));
email = (casper.cli.get(1));
name = (casper.cli.get(2));

this.echo(name);
console.log(name);

结果是:my(而不是 my name)。

我也试过用单引号。

您可以只用反斜杠转义空格,不要使用引号,例如:

 casperjs test.js myurl myemail my\ name

我不确定它是否依赖于您使用的控制台,在 ubuntu (docker) 下对我有用:

var casper = require('casper').create();
var targetUrl = 'http://www.test.com/';

casper.start(targetUrl, function() {
  url = (casper.cli.get(0));
  email = (casper.cli.get(1));
  name = (casper.cli.get(2));
  this.echo(url);
  this.echo(email);
  this.echo(name);
  console.log(name);
});

casper.run();

结果是:

myurl
myemail
my name
my name

对于有效的 windows 命令行:

casperjs test.js myurl myemail \"my name\"