Skip to content

Instantly share code, notes, and snippets.

@hjue
Forked from kmike/splash-scroll.lua
Created August 13, 2022 07:47
Show Gist options
  • Save hjue/a5912a6ab8137a4c0a9a2307ffa3a6ff to your computer and use it in GitHub Desktop.
Save hjue/a5912a6ab8137a4c0a9a2307ffa3a6ff to your computer and use it in GitHub Desktop.
function scroll_to(splash, x, y)
local js = string.format(
"window.scrollTo(%s, %s);",
tonumber(x),
tonumber(y)
)
return splash:runjs(js)
end
function get_doc_height(splash)
return splash:runjs([[
Math.max(
Math.max(document.body.scrollHeight, document.documentElement.scrollHeight),
Math.max(document.body.offsetHeight, document.documentElement.offsetHeight),
Math.max(document.body.clientHeight, document.documentElement.clientHeight)
)
]])
end
function scroll_to_bottom(splash)
local y = get_doc_height(splash)
return scroll_to(splash, 0, y)
end
function main(splash)
-- e.g. http://infiniteajaxscroll.com/examples/basic/page1.html
local url = splash.args.url
assert(splash:go(url))
assert(splash:wait(0.5))
splash:stop()
for i=1,10 do
scroll_to_bottom(splash)
assert(splash:wait(0.2))
end
splash:set_viewport("full")
return {
html = splash:html(),
png = splash:png{width=640},
har = splash:har(),
}
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment