我想通過使用PhantomJS 1.7.0使用CasperJS模擬事件從站點獲取數據。CasperJS點擊事件AJAX調用
我能夠模擬正常的點擊事件並選擇事件。但我的代碼在以下情況下失敗:
當我點擊遠程頁面上的按鈕/錨點等,點擊遠程頁面啓動AJAX調用/ JS調用(取決於程序員如何實現該頁面)。
在JS調用的情況下,我的代碼工作,我得到更改的數據。但對於啓動AJAX調用的點擊,我不會獲取更新的數據。
對於調試,我試圖獲取元素容器的頁面源代碼(之前和之後),但我看不到代碼中的更改。
我試圖設置等待時間從10秒到1毫秒的範圍,但這並不反映行爲的任何變化。
下面是我點擊的一段代碼。我正在使用一組CSS路徑,它代表要點擊的元素。
/*Click on array of clickable elements using CSS Paths.*/
fn_click = function(){
casper.each(G_TAGS,function(casper, cssPath, count1)
{
casper.then (function() {
casper.click(cssPath);
this.echo('DEBUG AFTER CLICKING -START HTML ');
//this.echo(this.getHTML("CONTAINER WHERE DETAILS CHANGE"));
this.echo('DEBUG AFTER CLICKING -START HTML');
casper.wait(5000, function()
{
casper.then(fn_getData);
}
);
});
});
};
UPDATE:
我嘗試使用遠程調試選項從phantomJS,調試上面的腳本。 它不工作。我在窗戶上。我也會嘗試在Ubuntu上運行遠程調試。
請幫幫我。我將不勝感激任何幫助。
更新:
請看下面的代碼作爲示例。
https://gist.github.com/4441570
點擊前和點擊後的內容相同。
我點擊標籤下的排序選項(投票/活動等)。
這是否有任何更新?我有類似的問題。 –
轉到GitHub鏈接。我所能想象出的是由於jQuery注入導致的錯誤。我在那裏發表了我的意見和問題,我仍在等待答覆。 –