私はページを持っており、ページのヘッダーに通常のスクリプト タグがある一連のスクリプト (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 には、スクリプトのサイズ/複雑さに関するプラットフォーム固有の制限がありますか?