在CasperJS's求值中向函数传递参数
Passing parameters to function in CasperJS's evaluate
如何将参数传递给CasperJS中的函数?
//Should be logged in at this point
casper.then(function() {
var counter = 0;
var cap = 500;
this.evaluate(function(counter) {
var children = $('.companies-using-service').children();
while (counter < children.length) {
child = children[counter];
console.log($(child).find('a').attr('data-hint'));
counter++;
}
}, counter);
});
};
var scrapeClients = function(counter) {
var children = $('.companies-using-service').children();
while (counter < children.length) {
child = children[counter];
console.log($(child).find('a').attr('data-hint'));
counter++;
}
}
上面,我可以使用未命名函数传递参数。但是,我希望将函数scrapeClients
传递给评估函数。在这种情况下,我尝试了以下this.evaluate(scrapeClients(counter), counter)
。然而,这不起作用,错误说它找不到$
变量。
函数是JavaScript中的一等公民。你可以像对待变量一样对待它们。你可以传阅。这意味着您不希望
this.evaluate(scrapeClients(counter), counter)
而是this.evaluate(scrapeClients, counter)
在第一种情况下,实际上是直接调用函数。由于该函数使用了一些仅在casper.evaluate
内部可用的页面属性,因此这将抛出错误并停止脚本。
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- AngularJS:我可以跳过函数参数回调吗
- 为什么不'我们在javascript中使用函数参数的数据类型
- 使用闭包共享构造函数参数
- 函数参数的值错误
- 当一个重要的构造函数参数丢失时应该发生什么
- 阻止ReSharper将JavaScript函数参数放到新行中
- 根据函数参数将CSS值存储在var中,然后对其进行操作
- 使构造函数参数具有ES6类方法的特权
- 当客户端将两个按钮的javascript函数参数修改为相同时,SQL/PHP会更新多行
- Windows.Networking.EndpointPair构造函数参数
- 是否可以使用Sinon.JS检查函数参数绑定是否正确
- 大括号中的Javascript函数参数
- jQuery 无法使用 AJAX 调用访问函数内部的函数参数
- 将JSON字符串转换为函数参数
- eval()读取函数参数有多糟糕
- Javascript不能在一个命令中使用函数参数
- 函数参数在内部不可见,返回新的Promise(函数(resolve,reject).传递给被promise化的函数的
- ES6类构造函数参数
- 是否可以在javascript函数参数列表中调用多个函数