4

問題を探している Web サイトでいくつかのテストを実行しようとしています。

記録のために、C#のセレンでゴーストドライバーでphantomjsを使用しています

すべてうまくいっていますが、スピードアップしたいと思います。フィドラーのヘッダーを確認すると、ソーシャルプラグインの外部サイト (facebook / twitter) への外部呼び出しに多くの時間が費やされています。最近ではすべてのサイトが良い考えだと考えているようです:-\

これらの機能をテストする必要はないので、外部サイトの呼び出しを無効にしようとしています。これにより、テストがいくらか高速化されるはずです。

noscript/ghostery が firefox で与える効果をファントムで得る方法はありますか?

4

1 に答える 1

2

無効なリクエストをフィルタリングするには、onResourceRequested コールバックを使用できます。これにより、不要な URL を中止できます。

以下は、stackoverflow の基本的な例です。

var system = require('system');
var page = require('webpage').create();
var domain = 'stackoverflow.com'
var url = 'http://www.stackoverflow.com';

page.onResourceRequested = function (requestData, networkRequest) {
    if (requestData.url.indexOf('.js')===-1 && requestData.url.indexOf(domain) === -1) {
        networkRequest.abort();
        console.log('aborted :'+ requestData.url)
    }
};

page.onResourceReceived = function (response) {
    console.log('Response (#' + response.url + ', stage "' + response.stage + '"): ');
};

if (system.args.length !== 1) {
    console.log("Usage: phantomjs filter.js url");
} else {
    page.open(url, function (status) {
        if (status = 'succeed') {
            console.log("status", status);
            phantom.exit(0);
        }
    });
}

ページで JavaScript エラーが発生する可能性があるため、js ファイルを中止することはお勧めしません。

テストを高速化する別の方法は、引数を使用してイメージを無効にすることです--load-images=false

于 2013-07-15T06:27:46.247 に答える