2017-01-04 3 views
1

私のテストケースでは、いくつかの項目を返す前に要素のチェック配列のヘルパーを実装しようとしています。配列に要素が含まれていない場合 - 私は待つ必要があります(アプリケーションのパフォーマンスに問題があり、リストの要素が長すぎて同期が機能しないことがあります)。私のヘルパーで分度器のbrowser.wait()からElementFinderを返す方法は?

機能:

getElementFromArray(array, elementIndex) { 
    return browser.wait(() => { 
     return array.count((count) => { 
      return count > elementIndex; 
     }); 
    }, 10000).then(() => { 
     return array.get(elementIndex); 
    },() => { 
     console.log("Element in array does not exist."); 
     return null; 
    }) 
} 

その後、私はそれを使用する:

let row = helper.getElementFromArray(rowsCatalog, indexRow); 
row.getText(); 

しかしのでbrowser.wait()リターンManagedPromiseの代わりElementFinder私は、エラーを取得しています。

ヘルパー関数を約束として使用したくないのは、コードが非常に複雑で、判読不能になるからです(上記の例は最も単純なケースです)。

答えて

0

ない、これはあなたのケースで適用されていますが、browser.wait()後に返すことができるかどうかを確認します。

getElementFromArray(array, elementIndex) { 
    browser.wait(() => { 
     return array.count((count) => { 
      return count > elementIndex; 
     }); 
    }, 10000); 

    return array.get(elementIndex); 
} 
+0

あなたは二度関数から何かを返すことはできません... – pitlis

+0

@pitlisああは、固定、タイプミスでした、ありがとう。 – alecxe

関連する問題