2016-10-21 6 views
0

私はCasperJSを使用して名前、住所、都市およびURLを収集するためにテーブルを掻き集める。情報を収集して配列に入れることができましたが、URLを開く際に問題があります。私は、一致するアドレスのURLを開こうとしています(アドレスをパーズしてストリート名と一致させ、URLを配列mLinkにプッシュします)。 mLinkをグローバル変数に設定しましたが、引数に渡す必要があるかどうかはわかりません。また、私はgetUnclaimedAmountをテストし、その関数が正しく動作しているようです。配列内のCasperJSオープンリンク

私は次のリンクを見てみましたが、それでも問題が生じています: CasperJS - How to open up all links in an array of links

casper.then(function() { 
    // Call functions and get name, address, city, URL into individual arrays 
    names = this.evaluate(getName); 
    addresses = this.evaluate(getAddress); 
    cities = this.evaluate(getCity); 
    links = this.evaluate(getLink); 

    // Merge name, address, city, URL arrays into 'info' array. 
    for(var i = 0, l = names.length; i < l; i++) { 
     info[i] = {}; 
     info[i].Name = names[i]; 
     info[i].Address = addresses[i]; 
     info[i].City = cities[i]; 
     info[i].URLs = links[i]; 

     //Parse the address to find the street that matches user's input 
     var parsed_address = info[i].Address.split(" ") 

     //Matching street name will return the URL and append an array of URLs 
     for(var ii = 0, plen = parsed_address.length; ii < plen; ii++){ 
      lowercase_name = parsed_address[ii].toLowerCase() 
      if (lowercase_name == street){ 
        mAddress.push(info[i].Address) 
        mLink.push(info[i].URLs) 
      }; 
     }; 
    }; 

}); 

Casper.then(function() { 
    //Open the URL for a matching address 
    for(var i = 0, len = mLink.length; i < len; i++){ 
     casper.thenOpen(mLink[i]); 

     //Get the unclaimed amount 
     amount = this.evaluate(getUnclaimedAmount); 
     this.echo('Unclaimed Amount: ' + amount); 
    }; 
}); 

答えて

0

はあなたがまた、待機する必要がリンクを開くときのように、この

casper.thenOpen(mLink[i]); 

casper.then(function() { 
     //Get the unclaimed amount 
     amount = this.evaluate(getUnclaimedAmount); 
     this.echo('Unclaimed Amount: ' + amount); 
}); 

を試してみてください!