You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
2.1 KiB
60 lines
2.1 KiB
import time |
|
from datetime import date |
|
from time import sleep |
|
import numpy as np |
|
import logging as log |
|
|
|
def infinite_scoll(driver, module, log): |
|
print("Infinite scrolling...") |
|
"""A method for scrolling the page.""" |
|
|
|
last_height = driver.execute_script("return document.body.scrollHeight") |
|
|
|
while True: |
|
|
|
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") |
|
print("Scrolled a page") |
|
# Wait to load the page. |
|
rand_pause = np.random.normal(5.0, 1.0) |
|
time.sleep(rand_pause) |
|
print(rand_pause) |
|
# Calculate new scroll height and compare with last scroll height. |
|
new_height = driver.execute_script("return document.body.scrollHeight") |
|
|
|
if new_height == last_height: |
|
break |
|
|
|
last_height = new_height |
|
|
|
print("Infinite scroll finished, screen grabbed") |
|
driver.save_screenshot("%s-scroll.png" % (module)) |
|
|
|
|
|
def scroll_to_bottom(): |
|
"""Scroll to the bottom of the page |
|
Params: |
|
- scroll_pause_time {float}: time to wait (s) between page scroll increments |
|
- scroll_increment {int}: increment size of page scrolls (pixels) |
|
""" |
|
# NOTE: this starts scrolling from the current scroll position, not the top of the page. |
|
current_height = driver.execute_script("return document.documentElement.scrollTop") |
|
print(current_height) |
|
while True: |
|
# click_expandable_buttons() |
|
# Scroll down to bottom in increments of self.scroll_increment |
|
new_height = driver.execute_script( |
|
"return Math.min({}, document.body.scrollHeight)".format( |
|
current_height + scroll_increment |
|
) |
|
) |
|
if new_height == current_height: |
|
break |
|
# driver.execute_script( |
|
# "window.scrollTo(0, {});".format(new_height)) |
|
# JavascriptExecutor js = (JavascriptExecutor) driver; |
|
|
|
# js.executeScript("window.scrollTo(0, document.body.scrollHeight)"); |
|
current_height = new_height |
|
print(current_height) |
|
# Wait to load page |
|
time.sleep(scroll_pause)
|
|
|