javascript
  • jquery
  • angularjs
  • protractor
  • 2017-02-02 8 views 1 likes 
    1

    5 ng-repeated要素のページがあり、正しい番号が表示されていることを確認しようとしています(self.assignmentQuestionsは、ng-repeatでWebページに表示される配列のサーバーのコピーを表します):分度器が間違った数の要素を見つけているのはなぜですか?

    browser.pause() 
    $$("[ng-repeat='task in newAssignment.questions track by task._id'] > omni-task").then(function(assignmentQuestions) { 
        expect(assignmentQuestions.length).toEqual(self.assignmentQuestions.length); 
    

    ブラウザが一時停止している間に、コンソールを開いて$("[ng-repeat='task in newAssignment.questions track by task._id'] > omni-task")を実行すると、jQueryは5つの要素を検出します。 ProtractorがElementArrayFinderの現在のセットを取得すると、6を見つけることができます(5つしかないはずです)。分度器は、ページの状態が同じでjQueryと同じCSSを検索し、同じ数の要素を見つけるべきではありませんか?

    +0

    が、これは、関連の音:これは動作するはずですhttp://stackoverflow.com/questions/39498021/getting-the-size-of-an-array-of-promisesprotractor。また、ng-repeatと組み合わせて分度器のいくつかの並べ替えができます。テンプレートとして要素を隠しているのでしょうか? – Michelangelo

    答えて

    0

    最初に:分度器にby.repeaterセレクタがあります。 次にcount()を使用して約束を返し、長さをチェクします。私にはわからない

    var elements = element.all(by.repeater('task in newAssignment.questions')); 
    expect(elements.count()).to.become(self.assignmentQuestions.length); 
    
    関連する問題