From 0f1381238cda120667b6829d675569ee1feb0ad6 Mon Sep 17 00:00:00 2001 From: Yann Date: Mon, 24 Aug 2020 01:06:54 -0300 Subject: [PATCH 1/2] added webdriver_manager support to auto-install gecko webdriver --- selenium_firefox/Firefox.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/selenium_firefox/Firefox.py b/selenium_firefox/Firefox.py index 6530c3e..53853ab 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 @@ -127,7 +129,7 @@ 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) + self.driver = webdriver.Firefox(executable_path=GeckoDriverManager().install(), firefox_profile=profile, firefox_options=options) if full_screen: self.driver.fullscreen_window() From fdd9f3b7f5b295cfd4563175257db9bb5e1e3255 Mon Sep 17 00:00:00 2001 From: Yann Date: Thu, 27 Aug 2020 12:54:54 -0300 Subject: [PATCH 2/2] added auto-install as optional and default_path as default --- selenium_firefox/Firefox.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/selenium_firefox/Firefox.py b/selenium_firefox/Firefox.py index 53853ab..5c75390 100644 --- a/selenium_firefox/Firefox.py +++ b/selenium_firefox/Firefox.py @@ -54,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' @@ -129,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(executable_path=GeckoDriverManager().install(), 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()