Как вызвать функцию внутри 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 здесь:
spooky.then(function(){
clickMore.call(spooky);
})
Я просмотрел документы Spooky и знаю, что мне, вероятно, понадобится использовать кортеж функции, но я не уверен, как это реализовать. Как я могу сделать это?
ОБНОВИТЬ:
Попытка использовать кортеж функции из документации SpookyJS без удачи:
spooky.then([{
clickMore: clickMore
}, function(){
clickMore.call(spooky);
}]);
1 ответ
Решение
Функции переданы в spooky.then
будет выполняться в среде JavaScript Casper/PhantomJS. У них нет доступа к среде Spooky Node.js JS.
spooky.then([{
clickMore: clickMore
}, function(){
clickMore.call(spooky); // <- spooky is not defined here
}]);
Пожалуйста, взгляните еще раз на то, что говорит на вики-странице Введение о средах JavaScript и на то, что они изолированы.