diff --git a/selenium_firefox/Firefox.py b/selenium_firefox/Firefox.py index 6530c3e..5c75390 100644 --- a/selenium_firefox/Firefox.py +++ b/selenium_firefox/Firefox.py @@ -5,6 +5,8 @@ import pickle, os, time, json # Pip +from webdriver_manager.firefox import GeckoDriverManager + from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.keys import Keys @@ -52,7 +54,8 @@ def __init__( manual_set_timezone: bool = False, user_agent: Optional[str] = None, load_proxy_checker_website: bool = False, - disable_images: bool = False + disable_images: bool = False, + geckodriver_path: Optional[str] = 'geckodriver' ): '''EITHER PROVIDE 'cookies_id' OR 'cookies_folder_path'. IF 'cookies_folder_path' is None, 'cokies_id', will be used to calculate 'cookies_folder_path' @@ -127,7 +130,11 @@ def __init__( options.add_argument("--width=" + str(screen_size[0])) options.add_argument("--height=" + str(screen_size[1])) - self.driver = webdriver.Firefox(firefox_profile=profile, firefox_options=options) + if not (geckodriver_path and os.path.exists(geckodriver_path)): + print('GeckoDriver not found at "', geckodriver_path, '". It will be installed') + geckodriver_path = GeckoDriverManager().install() + + self.driver = webdriver.Firefox(executable_path=geckodriver_path, firefox_profile=profile, firefox_options=options) if full_screen: self.driver.fullscreen_window()