[英]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.