2016-04-20 3 views
0

グローバルにnpmを使用してphantomJをインストールしました。なぜこのコードが機能していないのですか? Linuxのミントを使用して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(); 
 
    } 
 
})

イム。ターミナルのコマンド/usr/bin/sensible-browser file:///example.pngを入力しても問題ありませんが、なぜこれがスクリプトではうまくいかないのですか?

+0

? – Vaviloff

+0

phantom.exit()はspawn()が完了する前に呼び出されていました。 – Kumar

答えて

1

spawn()が完了する前にphantom.exit()が呼び出されていたことが判明しました。コードの下に問題が修正されました。

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