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