diff --git a/WebBasedCrawler/base/baseclasses.py b/WebBasedCrawler/base/baseclasses.py index bfe2ab5..7b92c28 100644 --- a/WebBasedCrawler/base/baseclasses.py +++ b/WebBasedCrawler/base/baseclasses.py @@ -114,7 +114,7 @@ class Browser: elif name == "opera": return self.new_opera_browser(driver_exec="operadriver.exe") elif name == "firefox": - return self.new_firefox_browser() + return self.new_firefox_browser(executable_path="geckodriver.exe") else: return None else: @@ -123,7 +123,7 @@ class Browser: elif name == "opera": return self.new_opera_browser(driver_exec="operadriver") elif name == "firefox": - return self.new_firefox_browser() + return self.new_firefox_browser(executable_path="geckodriver") else: return None @@ -152,11 +152,22 @@ class Browser: self.driver = webdriver.Ie(self.ie_driver_path) return self.driver - def new_firefox_browser(self): + def new_firefox_browser(self, executable_path=None): self.info = "firefox" caps = DesiredCapabilities.FIREFOX + + if executable_path is not None: + self.firefox_driver_path = executable_path + self.firefox_basename = os.path.basename(executable_path) + if self.is_server_executed(self.firefox_basename): + port = self.port(self.firefox_basename) + self.driver = webdriver.Remote(command_executor="http://127.0.0.1:"+port, + desired_capabilities=caps) + else: + self.driver = webdriver.Firefox(desired_capabilities=caps, + executable_path=self.firefox_driver_path) + #caps["marionette"] = True - self.driver = webdriver.Firefox(capabilities=caps) return self.driver def new_opera_browser(self, driver_exec=None):