casper js如何将变量从一个自制函数传递给另一个函数

时间:2014-03-24 22:15:08

标签: javascript phantomjs casperjs

好吧所以我已经开始构建我自己的模块以在casperjs中使用我已经到了一个点,我想将变量从一个函数传递到另一个函数,这就是我在下面的内容

我的模块 - 功能

exports.accdata = function(accnum, amnum) {
    var accountnumber = casper.fetchText('div.arabic:nth-child(2) > table:nth-child(1) > tbody:nth-child(1) > tr:nth-child(' + accnum + ') > td:nth-child(2) > a:nth-child(1)');
    var amountwithtype =casper.fetchText('div.arabic:nth-child(2) > table:nth-child(1) > tbody:nth-child(1) > tr:nth-child(' + amnum + ') > td:nth-child(4) > div:nth-child(1)');
    var redir = accountnumber.substr(1);
    var split = amountwithtype.split (' '); 
    var amount = split[0];
    var type = split[1];
};

exports.job = function (in1, in2){
    console.log(in1);
    console.log(in2);
};

然后我试图传递的是我的casperjs脚本

casper.then(function(){
   universe.accdata("3", "3");
   universe.job(amount, type);
});

我很新,真的需要帮助来设置如何设置从on和另一个

传递数据的函数

1 个答案:

答案 0 :(得分:0)

你的accdata函数只是设置一堆变量然后不使用它们。最简单的解决方案是将两个函数合二为一,但另一个解决方案可能是从第一个函数返回一个对象,并将其作为参数传递给第二个函数。

exports.accdata = function(accnum, amnum) {
    return {
        accountnumber: casper.fetchText('div.arabic:nth-child(2) > table:nth-child(1) > tbody:nth-child(1) > tr:nth-child(' + accnum + ') > td:nth-child(2) > a:nth-child(1)'),
        amountWithType: casper.fetchText('div.arabic:nth-child(2) > table:nth-child(1) > tbody:nth-child(1) > tr:nth-child(' + amnum + ') > td:nth-child(4) > div:nth-child(1)'),
        ...
    };
};

exports.job = function(data) {
    console.log(data);
};

然后像这样使用它:

casper.then(function() {
    universe.job(universe.accdata("3", "3"));
});