如何调用SpookyJS中的函数?

时间:2014-07-15 22:23:49

标签: node.js phantomjs casperjs spookyjs

我有一个名为clickMore的函数:

function clickMore(max, i){
   i = i || 0;
   if ((max == null || i < max) && this.visible(moreButton)) { // synchronous
      // asynchronous steps...
      this.thenClick(moreButton);  // sometimes the click is not properly dispatched
      this.echo('click');
      this.waitUntilVisible(loadingButton);
      this.waitUntilVisible(moreButton, null, function onTimeout(){
         // only placeholder so that the script doesn't "die" here if the end is reached
      });
      this.then(function(){

         //this.capture("business_"+i+".png");   //captures a screenshot of the page
         clickMore.call(this, max, i+1); // recursion
      });
   }
}

我想在这里搞怪这个函数:

spooky.then(function(){
              clickMore.call(spooky);
          })

我查看了Spooky文档,并知道我可能需要使用函数元组,但不知道如何实现。我怎么能这样做呢?

更新

尝试使用SpookyJS文档中的函数元组而没有运气:

spooky.then([{
   clickMore: clickMore
}, function(){
    clickMore.call(spooky);
}]);

1 个答案:

答案 0 :(得分:1)

传递给spooky.then的函数将在Casper / PhantomJS JavaScript环境中执行。他们无法访问Spooky的Node.js JS环境。

spooky.then([{
   clickMore: clickMore
}, function(){
    clickMore.call(spooky); // <- spooky is not defined here
}]);

请再看看简介维基页面中有关JavaScript Environmentsthe fact that they are isolated的内容。