一尘不染

通过exec将变量传递给PhantomJS

node.js

我开始使用Grunt,并希望将变量传递给我通过exec运行的PhantomJS脚本。我想要做的是为脚本传递URL,以从中获取屏幕截图。任何帮助将不胜感激,谢谢!

达伦

咕script声脚本

exec('phantomjs screenshot.js',
    function (error, stdout, stderr) {
        // Handle output
    }
);

screenshot.js

var page = require('webpage').create();
page.open('http://google.com', function () {
    page.render('google.png');
    phantom.exit();
});

阅读 251

收藏
2020-07-07

共1个答案

一尘不染

命令行参数可通过模块require('system').args(Module System)访问。第一个始终是脚本名称,然后是后续参数

该脚本将枚举所有参数,并将其写到控制台。

var args = require('system').args;
if (args.length === 1) {
    console.log('Try to pass some arguments when invoking this script!');
}
else {
    args.forEach(function(arg, i) {
        console.log(i + ': ' + arg);
    });
}

在您的情况下,解决方案是

咕unt声

exec('phantomjs screenshot.js http://www.google.fr',
    function (error, stdout, stderr) {
        // Handle output
    }
);

screenshot.js

var page = require('webpage').create();
var address = system.args[1];
page.open(address , function () {
    page.render('google.png');
    phantom.exit();
});
2020-07-07