2016-04-20 59 views
0

我使用全局npm安装phantomJs。为什么这段代码不工作?PhantomJs:Spawn不打开任何应用程序

var page = require('webpage').create(); 
 
var spawn = require('child_process').spawn; 
 

 
page.open('http://google.com', function(status){ 
 
    if(status == 'success') { 
 
    page.render('/tmp/google-snapshot.jpg'); 
 
    spawn('/usr/bin/sensible-browser', 'file:///tmp/google-snapshot.jpg'); 
 
    phantom.exit(); 
 
    } 
 
})

林使用Linux薄荷。在终端键入命令/usr/bin/sensible-browser file:///example.png工作正常,但为什么这不通过脚本。

+0

如何运行此脚本? – Vaviloff

+0

事实证明,在spawn()可以完成之前,phantom.exit()被调用。 – Kumar

回答

1

事实证明phantom.exit()在spawn()可以完成之前被调用。下面的代码解决了问题。

var page = require('webpage').create(); 
var spawn = require('child_process').spawn; 

page.open('http://google.com', function(status){ 
    if(status == 'success') { 
    page.render('/tmp/google-snapshot.jpg'); 
    spawn('/usr/bin/sensible-browser', 'file:///tmp/google-snapshot.jpg'); 
    } 
    setTimeout(function(){ 
    phantom.exit(); 
    },2000); 
}); 

参考:https://github.com/ariya/phantomjs/pull/14220

相关问题