Skip to content

Commit

Permalink
Added example of handling lazy loading lists
Browse files Browse the repository at this point in the history
  • Loading branch information
ziflex committed Sep 20, 2021
1 parent 2f399c6 commit 0c4a18c
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 0 deletions.
5 changes: 5 additions & 0 deletions e2e/tests/examples/lazy-loading.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@

query:
ref: ../../../examples/lazy-loading.fql
assert:
text: RETURN T::LEN(@lab.data.query.result, 50)
29 changes: 29 additions & 0 deletions examples/lazy-loading.fql
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
LET doc = DOCUMENT('https://soundcloud.com/charts/top', { driver: "cdp" })

LET endSelector = ''
LET listSelector = '.chartTracks ul'

WAIT_ELEMENT(doc, listSelector)

LET list = ELEMENT(doc, listSelector)
LET initialCount = ELEMENTS_COUNT(list, 'li')
LET lastItem = 50

LET preload = (
FOR i DO WHILE !ELEMENT_EXISTS(doc, '.chartTracksEnd')
LET initial = i > 0 ? SCROLL_BOTTOM(doc) && WAIT(500) && SCROLL_TOP(doc) && false : true

RETURN NONE
)

WAIT_ELEMENT(list, FMT('li:nth-child({})', lastItem))

FOR track, i IN ELEMENTS(list, 'li')
RETURN {
num: i + 1,
artist: TRIM(INNER_TEXT(track, '.chartTrack__details .chartTrack__username')),
track: TRIM(INNER_TEXT(track, '.chartTrack__details .chartTrack__title'))
}



0 comments on commit 0c4a18c

Please sign in to comment.