簡體   English   中英

如何使用casperJS簡潔地檢查404的網頁資源?

[英]How can I concisely check a webpage's resources for 404s using casperJS?

我剛剛開始使用Phantom / Casper。

到目前為止,我可以使用以下代碼列出頁面擁有的所有資源:

casper.on('resource.received', function (resource) {
        casper.echo(resource.url);
   });

到現在為止還挺好。

現在,我試圖將其與我從文檔中收集並混搭的大量代碼合並。 我想加載每個資源,如果缺少則打印出URL:

casper.on('resource.received', function (resource) {
    //        casper.echo(resource.url);
    casper.Open(resource.url, function (resource) {
        this.on('http.status.404', function (resource) {
            this.echo('missing:' + resource.url);
        });
    });
});

雜亂無章,但這就是我所擁有的。 它無法打開資源(ln 3),並且控制台未顯示任何活動。

如何重寫此代碼以遍歷資源並檢查它們的404?

(在我的示例中,我知道我沒有遍歷資源,我很想使用eachthen(),但是尚不清楚我是否可以在“測試”原型中使用通用的casperJS方法。對不起,我希望這不是時間不長)

CasperJS的resource.received基於PhantomJS的onResourceReceived 從文檔中可以看到,您只需訪問resource.status 無需顯式加載資源。

casper.on('resource.received', function (resource) {
    if (resource.stage === "end" && resource.status === 404) {
        this.echo('missing:' + resource.url);
    };
});

順便說一句,您可能是說casper.open而不是casper.Open

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM