casperjs jquery返回数据为空

casperjs jquery返回数据为空,jquery,return,Jquery,Return,我在casperjs中使用了jquery。 但返回数据为空 检查代码,但我不知道 html代码是 <table id="bd_lst" class="bd_lst"> <tr class="notice"> <td class="cate">aaaaa</td> <td class="title"><a href="11111.html">11111</a></td> </tr&

我在casperjs中使用了jquery。 但返回数据为空

检查代码,但我不知道

html代码是

<table id="bd_lst" class="bd_lst">
<tr class="notice">
    <td class="cate">aaaaa</td>
    <td class="title"><a href="11111.html">11111</a></td>
</tr>
<tr class="notice">
    <td class="cate">bbbb</td>
    <td class="title"><a href="22222.html">22222</a></td>
</tr>
......................
<tr>
    <td class="cate">cccc</td>
    <td class="title"><a href="aaa.html">3333</a></td> <== i want return data "aaa.html"
</tr>
<tr>
    <td class="cate">ddddd</td>
    <td class="title"><a href="bbbb.html">4444</a></td>
</tr>
</table>
var start_link = this.evaluate(function(){ 
    return $("#bd_list tr.notice").last().next().find(".title a").attr("href"); 
});
开始链接为空

$(“table tr.notice”).last().next().find(“.title a”).attr(“href”)在html javascript中返回“aaa.html”


怎么了?

如果只想检查第一个锚定标记的
href
值,请使用以下命令:

$('td.title > a').first().attr('href');

使用casperjs刮取示例DOM:

var casper = require('casper').create();

casper.start('http://my-site.com/examples/casperjs/sample.html', function() {
    var start_link = this.evaluate(function(){
        return document.querySelector('td.title > a').getAttribute('href');
    });
    this.echo(start_link);
});

casper.run();

如果要将jQuery与casperjs结合使用,则必须使用
clientScripts
选项使jQuery可用,如下所示:

var casper = require('casper').create({
    verbose: true,
    clientScripts: ['jquery-1.9.1.min.js']
});

casper.start('http://my-site.com/examples/casperjs/sample.html', function() {
    var start_link = this.evaluate(function(){
        return $('td.title > a').first().attr('href');
    });
    this.echo(start_link);
});

casper.run();

您使用的选择器:

$("#bd_lst tr.notice").last().next().find(".title a").attr("href"); 
工作正常。您刚刚在键入表id时犯了一个错误:它是
bd_lst
,而不是
bd_list


希望有用

谢谢。。你的评论。但html代码就是一个例子。问题不是jquery选择器,而是casperjs求值返回。我的jquery代码正在工作。。也但不返回casperjs中的值。@Kan:好的。您想使用casper进行刮片还是测试?@Kan:您的求值功能运行良好。您刚刚在表'id'中提交了一个键入错误:它是
bd_lst
而不是
bd_list