당신이 여기 가면 E2E 테스트 자스민/각도기에서 시뮬레이션 유형 : $0.scrollIntoView()
이온 3 무한 스크롤
무한 스크롤이 실행되지 않습니다.
각도기 컨텍스트에서 프로그래밍 방식으로 무한 스크롤을 트리거하는 방법이 있습니까?
당신이 여기 가면 E2E 테스트 자스민/각도기에서 시뮬레이션 유형 : $0.scrollIntoView()
이온 3 무한 스크롤
무한 스크롤이 실행되지 않습니다.
각도기 컨텍스트에서 프로그래밍 방식으로 무한 스크롤을 트리거하는 방법이 있습니까?
예에서 스크롤의 구현은 scrollIntoView
이 호출 될 때 예상되는 범위에서 멀리 떨어진 것으로 추측되는 스크롤의 속도/속도에 의존합니다.
한 가지 해결 방법은 적당한 시간에 여러 스크롤 이벤트를 방출하여 부드러운 스크롤을 시뮬레이트하는 것입니다. 아이디어는 가능한 한 실제 사용자의 행동을 재생산하는 것입니다. 내 경우에는, 내가 인수로 ion-infinite-scroll
을 사용
$0.scrollIntoView({behavior: "smooth", block: "end"});
허용 대답을 사용하여 :
일부 브라우저는 이미 (크롬 62에서 지원) scrollIntoView
를 통해 옵션을 제공합니다. 더 많은 콘텐츠가 이온에로드 된 경우
전체 테스트 확인 :
describe('Scroll',() => {
it('should load more when reached end', async() => {
let list = getList();
let currentCount = await list.count();
const refresher = element(by.tagName('ion-infinite-scroll')).getWebElement();
let count = 0;
while(true){
browser.executeScript(`arguments[0].scrollIntoView({behavior: "smooth", block: "end"});`, refresher);
browser.sleep(1000); // wait for data to be loaded from api
list = getList();
let newCount = await list.count();
expect(newCount).toBeGreaterThanOrEqual(currentCount)
expect(newCount).toBeLessThanOrEqual(currentCount * 2)
if(newCount === currentCount){
break;
}
currentCount = newCount;
count++;
}
expect(count).toBeGreaterThan(0);
})
});
function getList() {
return element(by.className(pageId + ' list')).all(by.tagName('ion-item'));
}
감사합니다! 테스트 목적으로 완벽하게 작동합니다. –