我试图通过模拟使用CasperJS与phantomJS 1.7.0事件从一个网站抓取数据。
我能够模拟正常的单击事件并选择事件。 但我的代码失败在以下情形:
当我在按钮/锚等点击远程页面上,远程页面上点击启动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远程调试选项,调试上面的脚本。 这是行不通的。 我是在Windows上。 我会尝试在Ubuntu上运行远程调试,以及。
请帮我。 我希望有这方面的帮助。
更新:
请看看下面的代码作为样本。
https://gist.github.com/4441570
点击前和点击后内容相同。
我点击排序下标签(票/活动等)提供的选项。