summaryrefslogtreecommitdiff
path: root/downloader.py
diff options
context:
space:
mode:
authorRosyid Haryadi <rosyid_haryadi@protonmail.com>2024-07-26 20:47:47 +0700
committerRosyid Haryadi <rosyid_haryadi@protonmail.com>2024-07-26 20:47:47 +0700
commitca16de589479995a9ceb9874d9dc8e6a043ac2bd (patch)
tree76793a72d4bf685a54255d29d694517c532eba49 /downloader.py
init
Diffstat (limited to 'downloader.py')
-rw-r--r--downloader.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/downloader.py b/downloader.py
new file mode 100644
index 0000000..8b74611
--- /dev/null
+++ b/downloader.py
@@ -0,0 +1,58 @@
+"""
+Ini nanti periodik
+"""
+import os
+import time
+
+from dotenv import load_dotenv
+from selenium import webdriver
+from selenium.webdriver import ActionChains
+from selenium.webdriver.support import expected_conditions as EC
+from selenium.webdriver.support.wait import WebDriverWait
+
+load_dotenv()
+
+
+def driverSetup(url):
+ op = webdriver.ChromeOptions()
+ op.add_experimental_option('prefs', {
+ 'download.default_directory': os.getenv('DOWNLOAD_PATH')
+ })
+ op.add_argument('--headless')
+ op.add_argument("--no-sandbox")
+ op.add_argument("--disable-dev-shm-usage")
+ driver = webdriver.Chrome(options=op)
+ driver.get(url)
+ return driver
+
+
+def downloadCsv():
+ driver = driverSetup(os.getenv('URL'))
+ action = ActionChains(driver)
+
+ try:
+ reportArea = WebDriverWait(driver, 10).until(
+ EC.visibility_of_element_located((os.getenv('REPORT_AREA_SELECTOR_TYPE'), os.getenv('REPORT_AREA')))
+ )
+ action.move_to_element(reportArea).perform()
+ action.context_click(reportArea).perform()
+
+ exportButton = WebDriverWait(driver, 10).until(
+ EC.element_to_be_clickable((os.getenv('EXPORT_BUTTON_SELECTOR_TYPE'), os.getenv('EXPORT_BUTTON')))
+ )
+ exportButton.click()
+
+ downloadButton = WebDriverWait(driver, 10).until(
+ EC.element_to_be_clickable(
+ (os.getenv('DOWNLOAD_BUTTON_SELECTOR_TYPE'), os.getenv('DOWNLOAD_BUTTON')))
+ )
+ downloadButton.click()
+
+ time.sleep(5)
+
+ finally:
+ driver.quit()
+
+
+if __name__ == '__main__':
+ downloadCsv()