3

私はページを持っており、ページのヘッダーに通常のスクリプト タグがある一連のスクリプト (jQuery など) と、index.js というコンパイル済みスクリプトを参照しています。後者は大きなもので、約 1.2M です (理由は聞かないでください)。

私のindex.htmlは次のようです:

<html>
<head>
<title>Cool</title>
<script src='jQuery.js'></script>
<!-- more scripts -->
<script src='index.js'></script>
<!-- more stuff -->

問題は、PhantomJS エンジンを使用すると、スクリプトがどのプラットフォームでも実行されないことです。SlimerJS/XUL を使用すると、Windows では実行されますが、OSX では実行されません。私は通常のwaitForでそれを検証しており、グローバル変数の値を評価していますが、特別なことは何もありません:

casper.test.begin('index.js executes', 1, function (test) {
    casper.start(host);

    casper.waitFor(
        function () {
            return casper.evaluate(function () {
                return !!window.ENV;
            });
        },
        function () {
            test.pass('index.js run');
        },
        function () {
            test.fail('index.js did not run');
        });

    casper.run(function () {
        test.done();
    });
});

一方、jQuery はどちらの環境でも初期化されます。jQuery コードを評価コンテキストでうまく実行できるので、これはパスします。

casper.test.begin('jQuery works', 1, function suite(test) {
    casper.start(host);

    casper.waitFor(
        function () {
            return casper.evaluate(function () {
                try {
                    return !!$('html').length;
                }
                catch (e) {
                    return false;
                }
            });
        },
        function () {
            test.pass('jQuery works');
        },
        function () {
            test.fail('jQuery did not init');
        });

    casper.run(function () {
        test.done();
    });
});

ページ イベントをログアウトすると、index.js が HTTP 結果 200 でロードされ、実行されないことがわかります。

誰かが以前にこれを経験しましたか?PhantomJS または SlimeJS には、スクリプトのサイズ/複雑さに関するプラットフォーム固有の制限がありますか?

4

0 に答える 0