CasperJS - 在完全加载document / jquery之后获取生成的源

时间:2014-01-10 23:05:55

标签: javascript jquery phantomjs casperjs

我在使用CasperJS解析页面时遇到问题。貌似this.evaluate()函数只处理源代码。但是,我正在查看的页面使用jQuery在文档完全加载后将类添加到特定元素。

如何在页面完全加载/准备好后使用CasperJS评估生成的源。

casper.start(url);

casper.userAgent('Mozilla/5.0 (Windows NT 6.1; WOW64) Chrome/30.0.1599.101');
casper.viewport(1920, 20000);

casper.on('load.finished', function(resource) {
    this.evaluate(getSelectedItems);
});

casper.run();

这是我目前在my.evaluate(getSelectedItems)函数中尝试使用的代码。我只想检测有多少选定项目,但源代码不包含 .selected-item 。该类是在使用jQuery加载整页后生成的。

function getSelectedItems() {
    return document.querySelector('.selected-item').length;
}

1 个答案:

答案 0 :(得分:0)

如果元素不可用,wait for them

casper.waitForSelector('.selected-item', function() {
    this.echo(this.evaluate(getSelectedItems));
});