2016-08-19 9 views
2

私はProtractorを使用していますが、データが入力されていることを確認するためにng-repeat値を取得する方法が見つかりません。分度器でng-repeat配列を引き出す

HTML

<div ng-repeat="product in products></div> 

分度器TEST

it('should load product data.', function() { 
    auth(); //log in as user 
    browser.get(server.dev + '/path').then(function(){ 
    var products = element.all(by.repeater('product in products')); 
    console.log('products',products); 
    expect(products.length >= 1) 
     .toBeTruthy(); 
    }); 
}); 

コンソールは、素子アレイファインダーではないデータを示しています。

ElementArrayFinder { 
    browser_: 
    ProtractorBrowser { 
    actions: [Function], 
    wait: [Function], 
    sleep: [Function], 
... 
... 

答えて

2

element.allが最初に解決することを約束する必要があります。

HERE分度器のドキュメントで発見
it('should load product data.', function() { 
    auth(); //log in as user 
    browser.get(server.dev + '/path').then(function(){ 
    var products = element.all(by.repeater('product in products')).then(function(products){ 
     console.log('products',products); 
     expect(products.length >= 1).toBeTruthy(); 
     }); 
    }); 
}); 

http://www.protractortest.org/#/api?view=ElementArrayFinder

2

また)(element.allを使用することができ、以下のコード

を見て、指定されたセレクタが見つかり要素の数を取得するために)(カウント。
it('should load product data.', function() { 
    auth(); //log in as user 
    browser.get(server.dev + '/path').then(function(){ 
    var products = element.all(by.repeater('product in products')) 
    expect(products.count()).toBeGreaterThan(0); 
    }); 
}); 
}); 
+0

これは実際に受け入れられる回答です。明示的にここで約束を解決する必要はありません。 – alecxe