繁体   English   中英

如何在CasperJS中获取href属性值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM