The implementation of Firefox Driver has been changed in Selenium 3.0. Starting with Firefox version 47.0+, we need to use separate a driver that will interact with the Firefox browser similarly to ChromeDriver. The new driver for Firefox is called Geckodriver.
The Geckodriver provides the HTTP API described by the W3C WebDriver Protocol to communicate with Gecko browsers, such as Firefox. It translates calls into the Firefox Remote Protocol (Marionette) by acting as a proxy between the local and remote ends.