2016-08-19 2 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(); 
    }); 
}); 

콘솔은없는 데이터를 Element의 배열 파인더를 보여줍니다.

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

답변

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')).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