Switched to docker compose and wasted hours trying to have standalone firefox

This commit is contained in:
Remy Moll
2022-05-29 18:29:31 +02:00
parent 878a1dff5d
commit 54760abee4
13 changed files with 154 additions and 42 deletions

View File

@@ -2,7 +2,6 @@ import time
import datetime
import logging
import os
import sys
import base64
import requests
from selenium import webdriver
@@ -20,28 +19,34 @@ class PDFDownloader:
running = False
def start(self):
options=Options()
try:
self.finish()
except:
self.logger.info("gecko driver not yet running")
options = webdriver.FirefoxOptions()
options.profile = config["browser_profile_path"]
if "notheadless" in sys.argv:
self.logger.warning("Opening browser GUI because of Argument 'notheadless'")
else:
# should be options.set_preference("profile", config["browser_profile_path"]) as of selenium 4 but that doesn't work
if os.getenv("HEADLESS", "false") == "true":
options.add_argument('--headless')
else:
self.logger.warning("Opening browser GUI because of 'HEADLESS=true'")
# Print to pdf
options.set_preference("print_printer", "Mozilla Save to PDF")
options.set_preference("print.always_print_silent", True)
options.set_preference("print.show_print_progress", False)
options.set_preference('print.save_as_pdf.links.enabled', True)
# Just save if the filetype is pdf already, does not work!
options.set_preference("print.printer_Mozilla_Save_to_PDF.print_to_file", True)
options.set_preference("browser.download.folderList", 2)
# options.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/pdf")
# options.set_preference("pdfjs.disabled", True)
options.set_preference("browser.download.dir", config["default_download_path"])
self.logger.info("Now Starting gecko driver")
self.driver = webdriver.Firefox(options=options)
self.logger.info("Starting gecko driver")
self.driver = webdriver.Firefox(
options = options,
service = webdriver.firefox.service.Service(
log_path = f'{config["local_storage_path"]}/geckodriver.log'
))
residues = os.listdir(config["default_download_path"])
for res in residues:
@@ -54,6 +59,7 @@ class PDFDownloader:
self.start() # relaunch the dl util
def finish(self):
self.logger.info("Exiting gecko driver")
self.driver.quit()
self.running = False