这是我使用代码来获取元素内的 href 值的操作:
var info = this.getElementsInfo(selector); // an array of object literals
for (var i = firstp; i < info.length; i=i+interval) {
if(i==0)
this.echo('"'+info[i].getAttribute('href')+'"');
else
this.echo(',"'+info[i].getAttribute('href')+'"');
}
最佳答案
我在 documentation 中找到了一些东西我可以用这样的代码解决我的问题:
var info = this.getElementsInfo(selector); // an array of object literals
for (var i = firstp; i < info.length; i=i+interval) {
if(i==0)
this.echo('"'+info[i].attributes.href+'"');
else
this.echo(',"'+info[i].attributes.href+'"');
}
现在可以使用了。
之前使用 getAttribute
不起作用的原因是 casper.getElementsInfo()
返回 DOM 节点的普通对象表示,而不是实际的 DOM 节点。由于 CasperJS(以及 PhantomJS)有两个上下文,因此 DOM 节点无法从页面上下文(在 casper.evaluate()
内)传递出去。
关于javascript - 如何在CasperJS中获取href属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27716112/