From c693d30394f4a27ccf709897e014621c73e92f3c Mon Sep 17 00:00:00 2001 From: Tanner Collin Date: Tue, 18 Apr 2023 21:18:55 +0000 Subject: [PATCH] Handle errors, remove menu bar, centre graphs --- export/main.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/export/main.py b/export/main.py index 3cebca3..4233a97 100644 --- a/export/main.py +++ b/export/main.py @@ -4,16 +4,20 @@ 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', @@ -29,9 +33,16 @@ graphs = [ for graph in graphs: print('Capturing', graph, 'graph...') - element = driver.find_element(By.ID, graph) - with open('data/{}.png'.format(graph), 'wb') as f: + 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()