我正在尝试通过使用带有 phantomJS 1.7.0 的 CasperJS 模拟事件来从站点获取数据。
我能够模拟正常的点击事件并选择事件。但我的代码在以下情况下失败:
当我单击远程页面上的按钮/锚点等时,单击远程页面会启动 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);
}
);
});
});
};
更新:
我尝试使用 phantomJS 的远程调试选项来调试上面的脚本。它不工作。我在窗户上。我也会尝试在 Ubuntu 上运行远程调试。
请帮我。我将不胜感激这方面的任何帮助。
更新:
请查看以下代码作为示例。
https://gist.github.com/4441570
点击前和点击后的内容是一样的。
我点击标签下提供的排序选项(投票/活动等)。