Use config.yaml to define environment URLs and browser settings. Use firefox_options.py to set Firefox preferences like headless mode, download folder, and disable notifications.
Example snippet from firefox_options.py:
from selenium.webdriver.firefox.options import Options
def get_firefox_options(headless: bool = False) -> Options:
options = Options()
if headless:
options.headless = True
# Disable notifications
options.set_preference("dom.webnotifications.enabled", False)
# Set download folder
options.set_preference("browser.download.folderList", 2)
options.set_preference("browser.download.dir", "/tmp/downloads")
options.set_preference("browser.helperApps.neverAsk.saveToDisk", "application/pdf")
return options
In webdriver_factory.py, create Firefox driver with these options:
from selenium import webdriver
from utils.firefox_options import get_firefox_options
def create_firefox_driver(headless: bool = False):
options = get_firefox_options(headless)
driver = webdriver.Firefox(options=options)
driver.implicitly_wait(10)
return driver