4

次の非常に単純な PhantomJS スクリプトを実行しようとすると、解析エラーが発生します。

var page = require('webpage').create();
page.open('http://compare.nissanusa.com/nissan_compare/NNAComparator/TrimSelect.jsp', function (status) {});

なぜこれが起こっているのか誰にも分かりますか?エラーメッセージはまったく役に立ちません...「解析エラー」とだけ表示されます。

これは PhantomJS のバグでしょうか?

PhantomJS バージョン 1.9 を使用しています。上記のスクリプトを他の URL で実行することはできますが、何らかの理由で特定の URL が解析エラーを返します...

どんな助けでも大歓迎です!

4

1 に答える 1

3

Web サイトに JavaScript エラーがあるためですhttp://compare.nissanusa.com/nissan_compare/NNAComparator/TrimSelect.jspParse Errorあなたのコードが原因ではありません。

Phantomjs は、ページ読み込み時の js エラーをあまり好みません。そのため、エラー ハンドラを追加することが重要です。

Web ページで発生したエラーを簡単にキャッチするには、それが構文エラーであろうと他のスローされた例外であろうと、page.onErrorを使用します。

基本的な例を次に示します。

page.onError = function(msg, trace) {
    var msgStack = ['ERROR: ' + msg];
    if (trace && trace.length) {
        msgStack.push('TRACE:');
        trace.forEach(function(t) {
            msgStack.push(' -> ' + t.file + ': ' + t.line + (t.function ? ' (in function "' + t.function + '")' : ''));
        });
    }
    console.error(msgStack.join('\n'));
};
于 2013-07-25T20:24:38.453 に答える