我一直在使用PhantomCSS编写带有网站截图的视觉回归测试。我想在页面上的每个a
元素上模拟点击CasperJS。我能够检索每个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()
接收选择器作为参数,我在此站点上有非常通用的链接。看起来像是一项非常简单的任务,但出于某种原因,我还没有办法做到这一点。
答案 0 :(得分: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
});
});
为此,我认为链接相对独特:并非所有href
都填充了javascript:void(0)
或#
。如果这不成立,你应该澄清。