【发布时间】:2014-07-09 04:53:58
【问题描述】:
我正在做一个 UI 测试项目。 casperjs 提供了 captureSelector 方法来仅捕获网页上的特定元素。我在互联网上搜索过,找不到合适的解决方案。到目前为止我能收集到的最好的就是给定的代码。另外我必须假设网站没有包含 jquery 脚本。
function getElementPath(element)
{
return "//" + $(element).parents().andSelf().map(function() {
var $this = $(this);
var tagName = this.nodeName;
if ($this.siblings(tagName).length > 0) {
tagName += "[" + $this.prevAll(tagName).length + "]";
}
return tagName;
}).get().join("/").toUpperCase();
}
var casper = require('casper').create({verbose: true});
casper.start("http://www.google.com/");
var images;
casper.then(function() {
var x = require('casper').selectXPath;
images = this.evaluate(function() {
return document.getElementsByTagName("img");
});
for(var i=0;i<images.length;i++){
this.captureSelector('img%D%.png'.replace('%D%',i),x(getElementPath(images[i])));
}
});
casper.run();
【问题讨论】:
标签: jquery unit-testing dom casperjs