aboutsummaryrefslogtreecommitdiffstats
path: root/python/download_scotia.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/download_scotia.py')
-rw-r--r--python/download_scotia.py132
1 files changed, 59 insertions, 73 deletions
diff --git a/python/download_scotia.py b/python/download_scotia.py
index a25c445c..9b5f2af8 100644
--- a/python/download_scotia.py
+++ b/python/download_scotia.py
@@ -1,92 +1,78 @@
+import os
+import time
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 selenium.webdriver.support import expected_conditions as EC
+from selenium.webdriver.support.ui import WebDriverWait
from serenitas.utils.env import DAILY_DIR
-# # create Firefox options object
-# options = Options()
-# # set headless mode
-# options.add_argument("--headless")
-
-
-def wait():
+def wait(driver):
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()
+def download_report(account_username, password, report_dir):
+ driver = create_driver()
+ driver.get("https://web1.mail.scotiabank.com/webmail/do/Home")
+ wait(driver)
+ username_element = driver.find_element_by_id("username")
+ username_element.send_keys(account_username)
+ password_element = driver.find_element_by_id("passwordid")
+ password_element.send_keys(password)
+ login_button = driver.find_element_by_id("loginbutton")
+ login_button.click()
+ wait(driver)
+ 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]
+ 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 in {report_dir}")
+ driver.quit()
-wait()
-time.sleep(1)
-login_button = driver.find_element_by_id("leftNavFolderLink")
-login_button.click()
-time.sleep(1)
+def create_driver():
+ options = Options()
+ options.add_argument("--headless")
+ fp = webdriver.FirefoxProfile()
+ fp.set_preference("browser.download.folderList", 2)
+ 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.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)
+ return webdriver.Firefox(firefox_profile=fp, options=options)
-login_button = driver.find_element_by_id("leftNavInboxFolderLink")
-login_button.click()
-time.sleep(1)
+def main():
-elements = driver.find_elements_by_class_name("zfolder-msg-clickable")[0]
-elements.click()
+ scotia_login = {"selene-ops@lmcg.com": "oeujG*UF!53o"}
+ for username, password in scotia_login.items():
+ REPORT_DIR = DAILY_DIR / "Selene" / "Scotia_reports"
+ download_report(username, password, REPORT_DIR)
-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}")
+if __name__ == "__main__":
+ main()