Javascript CasperJS点击按钮不会触发任何事件

Javascript CasperJS点击按钮不会触发任何事件,javascript,casperjs,Javascript,Casperjs,我正在努力学习CasperJS,首先我想创建一个小型的yummly.com scraper。我想粗略地列出100-1000种流行食谱 一切都进行得很顺利,直到我尝试点击触发更多食谱加载的元素。我已经尝试了各种方法,xpath、选择器、标签。我真的不知道有什么问题 这是我的密码: var utils=需要“utils”; var casper=require'casper'。创建{ 没错, 日志级别:“错误”, 页面设置:{ loadImages:false, loadPlugins:false,

我正在努力学习CasperJS,首先我想创建一个小型的yummly.com scraper。我想粗略地列出100-1000种流行食谱

一切都进行得很顺利,直到我尝试点击触发更多食谱加载的元素。我已经尝试了各种方法,xpath、选择器、标签。我真的不知道有什么问题

这是我的密码:

var utils=需要“utils”; var casper=require'casper'。创建{ 没错, 日志级别:“错误”, 页面设置:{ loadImages:false, loadPlugins:false, 用户代理:“Mozilla/5.0 Windows NT 6.2;WOW64 AppleWebKit/537.36 KHTML,如Gecko Chrome/29.0.1547.2 Safari/537.36” } }; 变量url=http://www.yummly.com/browse/popular-now; var x=require'casper'。选择XPath; 函数getLinks{ var links=document.queryselectoral'div.y-title a'; return Array.prototype.map.calllinks,functione{ 返回e.getAttribute'href'; }; } 卡斯珀·斯塔图尔,函数{ console.logthis.getTitle; }; //尝试使用xpath单击 casper.wait2000,函数{ casper.clickx'/*[@id=more]'; }; //尝试使用标签单击 casper.wait2000,函数{ 点击标签“查看更多”、“a”; }; //尝试用选择器单击 casper.wait2000,函数{ 单击“更多”; }; //尝试等待选择器 casper.waitForSelector'more',函数{ 这个。点击“更多”; casper.wait2000,函数{ links=this.evaluategetLinks; console.loglinks; }; }; casper.run;
我真的不知道是什么导致了这个问题。

您的代码在PhantomJS2上运行良好

点击对PhantomJS 1.x不起作用。我用PhantomJS版本1.9.7和1.9.8尝试了三种不同的点击方式:

使用JavaScript:el.dispatchEventev 使用PhantomJS:casper.page.sendEvent'click'。。。 使用jQuery:$el.click
他们都没有工作。因此,您需要更新您的版本。

请注册resource.error、page.error、remote.message和casper.page.onResourceTimeout事件。可能有错误。不幸的是,这些测试似乎一切正常。在我看来,问题可能在于在href中调用javascript。可能CasperJS没有正确加载Javascript。我真的不知道:假设它需要PhantomJS 1.8.2或更高版本,但小于2.0。@CiroSantilli是的,但可以使用PhantomJS 2.0.0。