繁体   English   中英

单击CasperJS网页上的每个链接

[英]Click every link on a web page with CasperJS

我一直在使用PhantomCSS编写带有网站截图的视觉回归测试。 我想模拟与点击CasperJS每上a页面上的元素。 我能够检索每个href并使用open来访问每个链接,但我想模拟一个click事件以进行JavaScript交互等等。由于某种原因,我无法找到一种方法来执行此操作。

我可以在页面上获得所有链接:

  links = casper.evaluate(function(){
    var tags = __utils__.findAll('a');
    return Array.prototype.map.call(tags, function(elem){
      return elem.href;
    });
  });

但是casper.click()接收选择器作为参数,我在这个站点上有非常通用的链接。 看起来像一个非常简单的任务,但由于某种原因,我还没有找到办法做到这一点。

您可以通过已收集的href选择特定a元素,但是您应该记住要如何构建测试,因为您需要从每个链接的网页开始。

var url = "",   // some url
    links = []; // collected by your snippet
casper.eachThen(links, function(link){
    casper.thenOpen(url);
    casper.thenClick("a[href='"+link.data+"']"); // what you are looking for
    casper.then(function(){
        // your tests
    });
});

为此,我假设链接相对独特:并非所有href填充了javascript:void(0)# 如果这不成立,你应该澄清。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM