2014-02-25 17 views
2

我想在訪問頁面時只加載頁面骨架的應用程序上使用CasperJS。然後它將加載AJAX中的主要內容。訪問在AJAX中加載的HTML

基本上,我的代碼加載後會出現在以下的div

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

似乎CasperJS不能在初始加載後訪問該div的內容。這太糟糕了,因爲整個應用程序都在這個標籤內(不要責怪我,責備使用Backbone的開發者)。

經過大量的搜索後,我發現我可以使用evaluate函數來執行document.body.innerHTML來轉儲文檔中請求的HTML的內容,但它似乎不起作用。

任何想法?非常感謝提前。

回答

3

您應該能夠通過使用評估來獲取div內容,正如您發現的那樣。評估函數應該返回所需的值。

如果內容是通過AJAX加載的,您還應該等到它被加載。我建議使用這樣的:

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

希望這有助於

+0

非常感謝@gontrollez。我現在無法測試它是否能正常工作,但我會檢查並告訴您它是否有效。 – henritroyat