CasperJS - 按照页面上的所有链接进行操作

时间:2015-10-08 13:01:24

标签: javascript jquery automation phantomjs casperjs

我正在尝试自动检查附加在给定页面上所有链接上的参数。所以我的问题是如何执行所有链接的点击事件,按照他们的位置,然后运行我的支票?

我的链接看起来像这样:

<p:fileUpload>

我在点击事件上附加了一个参数,因此最终的网址变为:

<a href="http://google.com" class="track-me logo"></a>

我尝试了很多东西,但我认为以下解决方案最接近预期结果:

http://google.com?myParam=12345

1 个答案:

答案 0 :(得分:0)

我做了一点另一种方式,并使用这样的链接“casper.getElementsAttribute”:

links = casper.getElementsAttribute(selector, 'href');

要证明我在while循环中调用它们的链接:

while (links.length > 0) {
    link = links.pop();
    (function(link){
        casper.then(function(){
           casper.echo("Checking link " + link);
        });
        casper.thenOpen(link, function() {
            title = casper.getTitle();
        });
        casper.then(function() {
             casper.waitForText(title);
        });
        casper.then(function() {
             casper.test.assertHttpStatus(200, "link '" + title + "' (title) - returns Http Status 200!");
        });     
    })(link);
}

这肯定可以做得更好,但对我来说效果很好。如果有人有更好的方法,我也很感兴趣。 :) 希望它能帮到你。