[英]How to get href attribute value in CasperJS?
这是我使用代码来获取元素内部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')+'"');
}
我在文档中找到了一些东西,可以使用以下代码解决问题:
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()
内部)。
跟着这些步骤:
首先获取路径
some variable = 'table#dgResults > tbody > tr:nth-child(1) > td > b a';
它会(这只是对“某些变量”的解释):
table[id="dgResults"] -> (couldn't add to the stupid gray box)
tbody
tr-> lst column
b
a -> all href tags are here
接下来使用getElementsAttribute
var nextStep = this.getElementsAttribute(elem, 'href');
然后将其转储:
utils.dump(nextStep);
转储时,您应该看到所有链接。 请记住, this.getElementAttribute()
返回标记之间的1值, this.getElementsAttribute()
返回标记之间的所有值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.