from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.firefox.options import Options import time import os from serenitas.utils.env import DAILY_DIR # # create Firefox options object # options = Options() # # set headless mode # options.add_argument("--headless") def wait(): WebDriverWait(driver, 10).until( lambda driver: driver.execute_script("return document.readyState") == "complete" ) report_dir = "/home/serenitas/Daily/Selene/Scotia_reports" options = Options() options.add_argument("--headless") fp = webdriver.FirefoxProfile() fp.set_preference("browser.download.folderList", 2) fp.set_preference("browser.download.dir", report_dir) fp.set_preference("browser.download.useDownloadDir", True) fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream") fp.set_preference("browser.download.manager.showWhenStarting", False) fp.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream") fp.set_preference("browser.download.manager.useWindow", False) fp.set_preference("browser.download.manager.focusWhenStarting", False) fp.set_preference("browser.download.manager.alertOnEXEOpen", False) fp.set_preference("browser.download.manager.closeWhenDone", True) fp.set_preference("browser.download.manager.showAlertOnComplete", False) fp.set_preference("browser.download.manager.scanWhenDone", False) fp.set_preference("browser.download.manager.skipSchedule", True) driver = webdriver.Firefox(firefox_profile=fp, options=options) # navigate to Google.com driver.get("https://web1.mail.scotiabank.com/webmail/do/Home") wait() # locate the username element username_element = driver.find_element_by_id("username") # set the value of the username element username_element.send_keys("selene-ops@lmcg.com") # locate the password element password_element = driver.find_element_by_id("passwordid") # set the value of the password element password_element.send_keys("oeujG*UF!53o") # locate the login button element login_button = driver.find_element_by_id("loginbutton") # click the login button login_button.click() wait() time.sleep(1) login_button = driver.find_element_by_id("leftNavFolderLink") login_button.click() time.sleep(1) login_button = driver.find_element_by_id("leftNavInboxFolderLink") login_button.click() time.sleep(1) elements = driver.find_elements_by_class_name("zfolder-msg-clickable")[0] elements.click() time.sleep(1) elements = driver.find_elements_by_class_name("zmessage-attachment-link")[0] REPORT_DIR = DAILY_DIR / "Selene" / "Scotia_reports" fname = elements.text.split()[0] # check if the file exists in the directory if not os.path.exists(os.path.join(report_dir, fname)): elements.click() else: print(f"{fname} exists already {report_dir}")