はあなたがここに行けばE2Eテストジャスミン/分度器でシミュレートタイプ:$0.scrollIntoView()
イオンは3無限スクロールは
無限スクロールは実行されません。
プログラム上、分度器のコンテキストで無限スクロールをトリガーする方法はありますか?
はあなたがここに行けばE2Eテストジャスミン/分度器でシミュレートタイプ:$0.scrollIntoView()
イオンは3無限スクロールは
無限スクロールは実行されません。
プログラム上、分度器のコンテキストで無限スクロールをトリガーする方法はありますか?
あなたの例のスクロールの実装は、scrollIntoView
が呼び出されたときに予想される範囲から離れていると思われるスクロールの速度/速度に依存しています。
1つの回避策は、妥当な時間に複数のスクロールイベントを発生させることによって円滑なスクロールをシミュレートすることです。アイデアは、実際のユーザーの行動を可能な限り再現することです。私の場合、私は、引数として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'));
}
おかげで:より多くのコンテンツがイオンにロードされているかどうかを確認するために
完全なテスト!テスト目的のために完全に動作します。 –