我有一个名为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);
}]);
答案 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 Environments和the fact that they are isolated的内容。