我在使用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;
}
答案 0 :(得分:0)
如果元素不可用,wait for them:
casper.waitForSelector('.selected-item', function() {
this.echo(this.evaluate(getSelectedItems));
});