HTTPステータスコードの301や302を使ったリダイレクトなら、一応ちゃんと処理してくれるのですが。JavaScriptのlocation.href
なんかを使ったリダイレクトを書かれると、onLoadFinished
で謎のエラー終了を引き起こすことが、結構ある様子。
仕方ないので、万能ではないものの対応しておく。
function render_page(move_to) {
var page = require('webpage').create();
page.onNavigationRequested = function(url, type, willNavigate, main) {
if (main && url != move_to) {
page.close();
render_page(url);
};
});
page.open(move_to, function(status){
if (status == 'success') {
// do something
page.render('path/to/snapshot.png');
};
});
結構な苦肉の策です。