2017-07-19 5 views
0

PhantomJSがインストールされていて、the official Phantom websiteのサンプルスクリプトが正常に動作しています。PhantomJS screenshot always blank

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

を私は入れません全ては582Kb

任意のアイデアを計量空白github.pngファイルです:

私はthis screenshot exampleが動作するように取得しようとしていますか?

+1

pngファイルをどこかにアップロードできますか?それが大きければ、おそらく空白ではありません。 – phihag

+1

GitHubが安全に提供されているので、URLは 'https:// github.com /'である必要があります。 –

+1

このような推測を避けるために、私はちょうど最新のPhantomJSでこの正確なコードを試してみました。 – smarx

答えて

0

ページが実際に読み込まれてレンダリングされるのを待つ必要があります。タイムアウトを追加してみてください:CED-B @

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

ced-b:まだ動作しません。 –

1

の提案が賢明ですが、本当の問題は、SSL/TLSで最も可能性が高いですので、私はタイムアウトを使用して、問題が解決されるとは思いません。 GitHubはHTTPSウェブサイトです。したがって、スクリーンショットを取得する場合は、PhantomJSスクリプトを実行するときに--ignore-ssl-errors=trueオプションを追加する必要があります。デフォルトでは、狭いスクリーンショットを受ける必要がありますが、あなたはもちろん、より大きなビューポートを設定することができます(「どの」)は、固定sslCertificatesPathを設定https://github.com/juliangruber/url-to-screenshot

:このライブラリと同じ問題を持っていた

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

page.viewportSize = { 
    width: 1920, 
    height: 1080 
}; 

page.open('https://github.com/', function() { 
    page.render('github.png'); 
    phantom.exit(); 
}); 
+0

Badacadabra:--ignore-ssl-errors = trueを追加しようとしましたが、 –

+0

このスクリプトは私のコンピュータ上で正常に動作しています(私は同じPhantomJSバージョンを使用しています)。あなたの環境は何ですか? – Badacadabra

0

を問題

new Screenshot('https://somerandomsite.com/') 
    .width(320) 
    .height(320) 
    .sslCertificatesPath('any') 
    .capture() 
    .then(img => { 
    // do stuff with img 
    })