访问在AJAX中加载的HTML

时间:2014-02-25 04:08:34

标签: ajax casperjs

我正在尝试在访问页面时仅加载页面骨架的应用程序上使用CasperJS。然后它在AJAX中加载主要内容。

基本上,我的代码在加载到以下div中后出现

    <div class="content"></div>

似乎CasperJS在初始加载后无法访问此div的内容。这太糟糕了,因为整个应用程序都在这个标签内(不要责怪我,责怪使用Backbone的开发人员)。

经过广泛搜索后,我发现我可以使用evaluate函数执行document.body.innerHTML转储文档中所请求HTML的内容,但它似乎不起作用。

有什么想法吗?非常感谢提前。

1 个答案:

答案 0 :(得分:3)

您应该能够通过使用evaluate获得div内容,如您所发现的那样。 eval'd函数应返回所需的值。

如果内容是通过AJAX加载的,您也应该等到它加载完毕。我建议使用这个:

var body_html;
this.waitForSelectorTextChange('div.content', function() {
   body_html = this.evaluate(function() {
       return document.body.innerHTML;
   });
});

希望这会有所帮助