2013-10-21 31 views
0

我是初学者程序员。我发现很好的脚本 http://planzero.org/blog/2013/03/07/spidering_the_web_with_casperjsCasperJS在链接网站上寻找404错误

我试图用CasperJS测试框架重写这个脚本。 我会从这个代码

var startUrl = 'http://yoursite.foo'; 

var visitedUrls = [], pendingUrls = []; 

var casper = require('casper').create({ 
      pageSettings: { 
        loadImages: false,   
        loadPlugins: false   
      }}); 
var utils = require('utils') 
var helpers = require('helpers') 

// Spider from the given URL 
casper.test.begin('href' , function(test) { 
    casper.start(startUrl, function() { 
     function spider(url) { 

      // Add the URL to the visited stack 
      visitedUrls.push(url); 

      // Open the URL 
      casper.open(url).then(function() { 

       test.assertHttpStatus(200, ":" + url); 
       // Find links present on this page 
       var links = this.evaluate(function() { 
        var links = []; 
        Array.prototype.forEach.call(__utils__.findAll('a'), function(e) { 
         links.push(e.getAttribute('href')); 
        }); 
        return links; 
       }); 

       // Add newly found URLs to the stack 
       var baseUrl = this.getGlobal('location').origin; 
       Array.prototype.forEach.call(links, function(link) { 
        var newUrl = helpers.absoluteUri(baseUrl, link); 
         if (pendingUrls.indexOf(newUrl) == -1 && visitedUrls.indexOf(newUrl) == -1 && !(link.search(startUrl) == -1)) { 
          pendingUrls.push(newUrl); 
         } 
       }); 

       // If there are URLs to be processed 
       if (pendingUrls.length > 0) { 
        var nextUrl = pendingUrls.shift(); 
        spider(nextUrl); 
       } 
       else { 
        console.log('links ended'); 
        this.break; 
       } 

      }); 

     } 
     spider(startUrl); 
    }).run(function(){ 
     test.done(); 
    }); 
}); 

脚本运行,但是当他和工作我不能让报告得到的xUnit报告。

回答

0

如果你想学习如何使用CasperJS,你需要从一个比这个更小的例子开始。该脚本是一个乱七八糟的网站名称yoursite.foo(也许你把那个名字?)

我会采取小步骤。我有一段视频可以帮助解释如何使用CasperJS。

http://www.youtube.com/watch?v=Kefil5tCL9o