import time from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import By from selenium.webdriver.chrome.service import Service from selenium.common.exceptions import NoSuchElementException from webdriver_manager.chrome import ChromeDriverManager ser = Service('/usr/lib/chromium-browser/chromedriver') chrome_options = Options() chrome_options.add_argument('--headless') chrome_options.add_argument('start-maximized') chrome_options.add_argument('--no-sandbox') driver = webdriver.Chrome(service=ser, options=chrome_options) driver.get('https://sensors.dns.t0.vc') time.sleep(3) driver.execute_script("return document.getElementsByClassName('menu')[0].remove();") graphs = [ 'Solar_Power', 'Living_Room_Air', 'Outside_Temperature', 'Bedroom_Temperature', 'Nook_Temperature', 'Misc_Temperature', 'Nook_Thermostat', 'Gas_Usage', 'Water_Usage', 'Living_Room_Lux', ] for graph in graphs: print('Capturing', graph, 'graph...') try: element = driver.find_element(By.ID, graph) except NoSuchElementException: print('Graph not found, skipping.') continue driver.execute_script('arguments[0].scrollIntoView({block: "center"});', element) with open('/home/tanner/sensors/export/data/{}.png'.format(graph), 'wb') as f: f.write(element.screenshot_as_png) driver.close() print('done.')