2017-04-23 5 views
0

Typescriptで分度器のオートメーションスクリプトを書いています。 ElementArrayFinderとして返されたwebelementsの配列があります。 各要素の 'font-weight'を別の配列/マップに格納して戻す必要があります。 私のスクリプトは、Push文の後でも配列の長さが0であることを示しています。誰かがこれを達成するために助けてくださいできますか?Typescriptを使って分度器オートメーションのCssValuesを配列に格納する方法

public getFontWeightOfElements() : promise.Promise<string>[] 
{ 
    let array1 : promise.Promise<string>[] = []; 
    //taskList is array of WebElements 
    this.taskList.each((element) => 
    { 
     element.getCssValue('font-weight') 
      .then((value) => 
      { 
      array1.push(value); 
      }) 
    }) 
    console.log(array1.length); // getting 0 each time 
    return array1; 

答えて

1

問題は、非同期操作Promisesが解決される前に配列を返すことです。ここソリューション戻り値の型は、もはやPromiseの配列ではなく、むしろarrayためPromiseある

getFontWeightOfElements(): Promise<string[]> { 
    return this.taskList.map(element => element.getCssValue('font-weight')); 
} 

注意です。

この

getFontWeightOfElements().then(fontWieghts => { 
    fontWieghts.forEach(fontWieght => { 
    console.log(fontWeight); 
    }); 
}); 
+0

どうもありがとうAluanのように消費します。それは私のために働いた。ありがとうございました! –

+1

returnステートメントのマイナーチェンジ - getFontWeightOfElements():Promise { return this.taskList.map(element => element.getCssValue( 'font-weight'))); } Promise.Allは必須ではありません。 –

+0

@AjayPatilありがとう!一定 –

関連する問題