0

我是初学者程序员。我找到了不错的脚本 http://planzero.org/blog/2013/03/07/spidering_the_web_with_casperjs

我试图用 CasperJS 测试框架重写这个脚本。我想从此代码中获取 xunit 报告

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();
    });
});

脚本正在运行,但是当他和 Job 我无法得到报告时。

4

1 回答 1

0

如果你想学习如何使用 CasperJS,你需要从一个比这更小的例子开始。该脚本在一个名为 yoursite.foo 的站点之后是一团糟(也许你把那个名字放在那里?)

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

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

于 2013-10-21T19:26:33.550 回答