1

我一直在使用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()接收一个选择器作为参数,我在这个站点上有非常通用的链接。似乎是一项非常微不足道的任务,但由于某种原因,我还没有找到一种方法来做到这一点。

4

1 回答 1

3

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

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

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

于 2014-06-04T22:13:44.340 回答