我正在尝试在访问页面时仅加载页面骨架的应用程序上使用CasperJS。然后它在AJAX中加载主要内容。
基本上,我的代码在加载到以下div中后出现
<div class="content"></div>
似乎CasperJS在初始加载后无法访问此div的内容。这太糟糕了,因为整个应用程序都在这个标签内(不要责怪我,责怪使用Backbone的开发人员)。
经过广泛搜索后,我发现我可以使用evaluate
函数执行document.body.innerHTML
转储文档中所请求HTML的内容,但它似乎不起作用。
有什么想法吗?非常感谢提前。
答案 0 :(得分:3)
您应该能够通过使用evaluate获得div内容,如您所发现的那样。 eval'd函数应返回所需的值。
如果内容是通过AJAX加载的,您也应该等到它加载完毕。我建议使用这个:
var body_html;
this.waitForSelectorTextChange('div.content', function() {
body_html = this.evaluate(function() {
return document.body.innerHTML;
});
});
希望这会有所帮助