我使用以下代码获取第一个表行中的所有表格单元格。我想检查每个表格单元格的innerHTML。但是在此函数返回的对象中,只有第一个表格单元格实际存在,所有其他属性都为null:
firstRow = this.evaluate(function () {
return __utils__.getElementsByXPath('//tbody/tr[1]/td');
});
utils.dump(firstRow);
utils.dump的输出是:
[
{
"abbr": "",
"align": "",
"attributes": {...}
},
null,
null,
null
]
我也试过 utils .findAll,它也是一样的。如何获得所有匹配的元素?
答案 0 :(得分:4)
使用Casper / PhantomJS evaluate()
函数,您必须将本机DOM元素和元素列表映射到JSON可序列化的东西:
var firstRow = this.evaluate(function () {
var elements = __utils__.getElementsByXPath('//tbody/tr[1]/td');
return [].map.call(elements, function(element) {
return element.outerHTML;
});
});
utils.dump(firstRow);